From 812f8cb2507ccf7c5138cfde8932885aa781e49a Mon Sep 17 00:00:00 2001 From: Teo Mrnjavac Date: Wed, 22 May 2013 18:49:14 +0200 Subject: [PATCH] Load Account credentials from CredentialsManager. --- src/libtomahawk/accounts/Account.cpp | 14 ++++++++--- src/libtomahawk/accounts/AccountManager.h | 3 ++- .../accounts/CredentialsManager.cpp | 25 +++++++++++++++++++ src/libtomahawk/accounts/CredentialsManager.h | 3 +++ 4 files changed, 41 insertions(+), 4 deletions(-) diff --git a/src/libtomahawk/accounts/Account.cpp b/src/libtomahawk/accounts/Account.cpp index 9cbd30870..9c168c85c 100644 --- a/src/libtomahawk/accounts/Account.cpp +++ b/src/libtomahawk/accounts/Account.cpp @@ -20,6 +20,8 @@ #include "Account.h" #include "TomahawkSettings.h" +#include "AccountManager.h" +#include "CredentialsManager.h" namespace Tomahawk { @@ -134,12 +136,14 @@ Account::syncConfig() s->beginGroup( "accounts/" + m_accountId ); s->setValue( "accountfriendlyname", m_accountFriendlyName ); s->setValue( "enabled", m_enabled ); - s->setValue( "credentials", m_credentials ); s->setValue( "configuration", m_configuration ); s->setValue( "acl", m_acl ); s->setValue( "types", m_types ); s->endGroup(); s->sync(); + + CredentialsManager* c = AccountManager::instance()->credentialsManager(); + c->setCredentials( m_accountId, m_credentials ); } @@ -151,11 +155,13 @@ Account::loadFromConfig( const QString& accountId ) s->beginGroup( "accounts/" + m_accountId ); m_accountFriendlyName = s->value( "accountfriendlyname", QString() ).toString(); m_enabled = s->value( "enabled", false ).toBool(); - m_credentials = s->value( "credentials", QVariantHash() ).toHash(); m_configuration = s->value( "configuration", QVariantHash() ).toHash(); m_acl = s->value( "acl", QVariantMap() ).toMap(); m_types = s->value( "types", QStringList() ).toStringList(); s->endGroup(); + + CredentialsManager* c = AccountManager::instance()->credentialsManager(); + m_credentials = c->credentials( m_accountId ); } @@ -166,12 +172,14 @@ Account::removeFromConfig() s->beginGroup( "accounts/" + m_accountId ); s->remove( "accountfriendlyname" ); s->remove( "enabled" ); - s->remove( "credentials" ); s->remove( "configuration" ); s->remove( "acl" ); s->remove( "types" ); s->endGroup(); s->remove( "accounts/" + m_accountId ); + + CredentialsManager* c = AccountManager::instance()->credentialsManager(); + c->setCredentials( m_accountId, QVariantHash() ); } diff --git a/src/libtomahawk/accounts/AccountManager.h b/src/libtomahawk/accounts/AccountManager.h index 598591f06..42a87eded 100644 --- a/src/libtomahawk/accounts/AccountManager.h +++ b/src/libtomahawk/accounts/AccountManager.h @@ -86,9 +86,10 @@ public: Account* zeroconfAccount() const; bool isConnected() const { return m_connected; } - bool isReadyForSip() const { return m_readyForSip; } + CredentialsManager* credentialsManager() const { return m_creds; } + public slots: void connectAll(); void disconnectAll(); diff --git a/src/libtomahawk/accounts/CredentialsManager.cpp b/src/libtomahawk/accounts/CredentialsManager.cpp index 7217f5fbc..3952b63e3 100644 --- a/src/libtomahawk/accounts/CredentialsManager.cpp +++ b/src/libtomahawk/accounts/CredentialsManager.cpp @@ -66,6 +66,31 @@ CredentialsManager::keys() const } +QVariantHash +CredentialsManager::credentials( const QString& key ) const +{ + return m_credentials.value( key ); +} + + +void +CredentialsManager::setCredentials( const QString& key, const QVariantHash& value ) +{ + if ( value.isEmpty() ) + { + m_credentials.remove( key ); + + //TODO: delete job + } + else + { + m_credentials.insert( key, value ); + + //TODO: write job + } +} + + void CredentialsManager::keychainJobFinished( QKeychain::Job* j ) { diff --git a/src/libtomahawk/accounts/CredentialsManager.h b/src/libtomahawk/accounts/CredentialsManager.h index c0b19e533..bf653a070 100644 --- a/src/libtomahawk/accounts/CredentialsManager.h +++ b/src/libtomahawk/accounts/CredentialsManager.h @@ -57,6 +57,9 @@ public: QStringList keys() const; + QVariantHash credentials( const QString& key ) const; + void setCredentials( const QString& key, const QVariantHash& value ); + signals: void ready();