void CredentialsManager::keychainJobFinished( QKeychain::Job* j ) { tDebug() << Q_FUNC_INFO; if ( QKeychain::ReadPasswordJob* readJob = qobject_cast< QKeychain::ReadPasswordJob* >( j ) ) { if ( readJob->error() == QKeychain::NoError ) { tDebug() << "QtKeychain readJob for" << readJob->service() << "/" << readJob->key() << "finished without errors"; QVariant creds; QJson::Parser parser; bool ok; creds = parser.parse( readJob->textData().toLatin1(), &ok ); QVariantMap map = creds.toMap(); QVariantHash hash; for ( QVariantMap::const_iterator it = map.constBegin(); it != map.constEnd(); ++it ) { hash.insert( it.key(), it.value() ); } creds = QVariant( hash ); if ( !ok || creds.toHash().isEmpty() ) { creds = QVariant( readJob->textData() ); } m_credentials.insert( CredentialsStorageKey( readJob->service(), readJob->key() ), creds ); } else { tDebug() << "QtKeychain readJob for" << readJob->service() << "/" << readJob->key() << "finished with error:" << j->error() << j->errorString(); } m_readJobs[ readJob->service() ].removeOne( readJob ); if ( m_readJobs[ readJob->service() ].isEmpty() ) { emit serviceReady( readJob->service() ); } } else if ( QKeychain::WritePasswordJob* writeJob = qobject_cast< QKeychain::WritePasswordJob* >( j ) ) { tLog() << Q_FUNC_INFO << "QtKeychain writeJob for" << writeJob->service() << "/" << writeJob->key() << "finished" << ( ( j->error() == QKeychain::NoError ) ? "without error" : j->errorString() ); } else if ( QKeychain::DeletePasswordJob* deleteJob = qobject_cast< QKeychain::DeletePasswordJob* >( j ) ) { tLog() << Q_FUNC_INFO << "QtKeychain deleteJob for" << deleteJob->service() << "/" << deleteJob->key() << "finished" << ( ( j->error() == QKeychain::NoError ) ? "without error" : j->errorString() ); } j->deleteLater(); }
void CredentialsManager::keychainJobFinished( QKeychain::Job* j ) { #ifndef Q_OS_MAC tDebug() << Q_FUNC_INFO; if ( QKeychain::ReadPasswordJob* readJob = qobject_cast< QKeychain::ReadPasswordJob* >( j ) ) { if ( readJob->error() == QKeychain::NoError ) { tDebug() << "QtKeychain readJob for" << readJob->service() << "/" << readJob->key() << "finished without errors"; QVariant creds; bool ok; creds = TomahawkUtils::parseJson( readJob->textData().toLatin1(), &ok ); QVariantMap map = creds.toMap(); creds = QVariant( map ); if ( !ok || creds.toMap().isEmpty() ) { creds = QVariant( readJob->textData() ); } m_credentials.insert( CredentialsStorageKey( readJob->service(), readJob->key() ), creds ); } else { tDebug() << "QtKeychain readJob for" << readJob->service() << "/" << readJob->key() << "finished with ERROR:" << j->error() << j->errorString(); } m_readJobs[ readJob->service() ].removeOne( readJob ); if ( m_readJobs[ readJob->service() ].isEmpty() ) { tDebug() << Q_FUNC_INFO << "all done and emitting serviceReady()."; emit serviceReady( readJob->service() ); } } else if ( QKeychain::WritePasswordJob* writeJob = qobject_cast< QKeychain::WritePasswordJob* >( j ) ) { tLog() << Q_FUNC_INFO << "QtKeychain writeJob for" << writeJob->service() << "/" << writeJob->key() << "finished" << ( ( j->error() == QKeychain::NoError ) ? "without error" : QString( "with ERROR: %1 %2" ).arg( j->error() ).arg( j->errorString() ) ); } else if ( QKeychain::DeletePasswordJob* deleteJob = qobject_cast< QKeychain::DeletePasswordJob* >( j ) ) { tLog() << Q_FUNC_INFO << "QtKeychain deleteJob for" << deleteJob->service() << "/" << deleteJob->key() << "finished" << ( ( j->error() == QKeychain::NoError ) ? "without error" : QString( "with ERROR: %1 %2" ).arg( j->error() ).arg( j->errorString() ) ); } j->deleteLater(); #endif //Q_OS_MAC }
void Service::setName(const QString &name) { d->name = name; // now reset the config, which may be based on our name delete d->config; d->config = 0; delete d->dummyConfig; d->dummyConfig = 0; registerOperationsScheme(); emit serviceReady(this); }