diff --git a/src/libtomahawk/accounts/ResolverAccount.h b/src/libtomahawk/accounts/ResolverAccount.h index 59b8ef162..b115d8fc4 100644 --- a/src/libtomahawk/accounts/ResolverAccount.h +++ b/src/libtomahawk/accounts/ResolverAccount.h @@ -44,7 +44,7 @@ public: // Used to create a new resolver from a script on disk, either chosen by // the user, or installed from synchrotron - virtual bool acceptsPath( const QString& path ) const { return true; } // This is the catch-all filesystem account + virtual bool acceptsPath( const QString& ) const { return true; } // This is the catch-all filesystem account virtual Account* createFromPath( const QString& path ); // Internal use diff --git a/src/libtomahawk/tomahawksettings.cpp b/src/libtomahawk/tomahawksettings.cpp index 8b93906dd..8a7da5509 100644 --- a/src/libtomahawk/tomahawksettings.cpp +++ b/src/libtomahawk/tomahawksettings.cpp @@ -361,6 +361,41 @@ TomahawkSettings::doUpgrade( int oldVersion, int newVersion ) setValue( "accounts/allaccounts", accounts ); } + else if ( oldVersion == 7 ) + { + // Upgrade spotify resolver to standalone account, if one exists + beginGroup( "accounts" ); + QStringList allAccounts = value( "allaccounts" ).toStringList(); + foreach ( const QString& account, allAccounts ) + { + if ( account.startsWith( "resolveraccount_" ) && value( QString( "%1/accountfriendlyname" ).arg( account ) ).toString() == "spotify_tomahawkresolver" ) + { + // This is a spotify resolver, convert! + const QVariantHash configuration = value( QString( "%1/configuration" ).arg( account ) ).toHash(); + const bool enabled = value( QString( "%1/enabled" ).arg( account ) ).toBool(); + const bool autoconnect = value( QString( "%1/autoconnect" ).arg( account ) ).toBool(); + + qDebug() << "Migrating Spotify resolver from legacy resolver type, path is:" << configuration[ "path" ].toString(); + + remove( account ); + + // Create new account + QString newAccount = account; + newAccount.replace( "resolveraccount_", "spotifyaccount_" ); + beginGroup( newAccount ); + setValue( "enabled", enabled ); + setValue( "autoconnect", autoconnect ); + setValue( "types", QStringList() << "ResolverType" ); + setValue( "configuration", configuration ); + endGroup(); + + allAccounts.replace( allAccounts.indexOf( account ), newAccount ); + } + } + + setValue( "allaccounts", allAccounts ); + endGroup(); + } } diff --git a/src/libtomahawk/tomahawksettings.h b/src/libtomahawk/tomahawksettings.h index 1a1d67100..578f8a3cc 100644 --- a/src/libtomahawk/tomahawksettings.h +++ b/src/libtomahawk/tomahawksettings.h @@ -27,7 +27,7 @@ #include "dllmacro.h" -#define TOMAHAWK_SETTINGS_VERSION 7 +#define TOMAHAWK_SETTINGS_VERSION 8 /** * Convenience wrapper around QSettings for tomahawk-specific config