diff --git a/src/libtomahawk/TomahawkSettings.cpp b/src/libtomahawk/TomahawkSettings.cpp index 706707347..0b9540fdb 100644 --- a/src/libtomahawk/TomahawkSettings.cpp +++ b/src/libtomahawk/TomahawkSettings.cpp @@ -1546,10 +1546,54 @@ QMap TomahawkSettings::lastChartIds(){ } +inline QDataStream& +operator<<( QDataStream& out, const AtticaManager::StateHash& states ) +{ + out << TOMAHAWK_SETTINGS_VERSION; + out << (quint32)states.count(); + foreach( const QString& key, states.keys() ) + { + AtticaManager::Resolver resolver = states[ key ]; + out << key << resolver.version << resolver.scriptPath << (qint32)resolver.state << resolver.userRating << resolver.binary; + } + return out; +} + + +inline QDataStream& +operator>>( QDataStream& in, AtticaManager::StateHash& states ) +{ + quint32 count = 0, configVersion = 0; + in >> configVersion; + in >> count; + for ( uint i = 0; i < count; i++ ) + { + QString key, version, scriptPath; + qint32 state, userRating; + bool binary = false; + in >> key; + in >> version; + in >> scriptPath; + in >> state; + in >> userRating; + if ( configVersion > 10 ) + { + // V11 includes 'bool binary' flag + in >> binary; + } + states[ key ] = AtticaManager::Resolver( version, scriptPath, userRating, (AtticaManager::ResolverState)state, binary ); + } + return in; +} + + void TomahawkSettings::registerCustomSettingsHandlers() { qRegisterMetaType< Tomahawk::SerializedUpdater >( "Tomahawk::SerializedUpdater" ); qRegisterMetaType< Tomahawk::SerializedUpdaters >( "Tomahawk::SerializedUpdaters" ); qRegisterMetaTypeStreamOperators< Tomahawk::SerializedUpdaters >( "Tomahawk::SerializedUpdaters" ); + + qRegisterMetaType< AtticaManager::StateHash >( "AtticaManager::StateHash" ); + qRegisterMetaTypeStreamOperators< AtticaManager::StateHash >( "AtticaManager::StateHash" ); } diff --git a/src/libtomahawk/TomahawkSettings.h b/src/libtomahawk/TomahawkSettings.h index ce2805a92..d74ea4891 100644 --- a/src/libtomahawk/TomahawkSettings.h +++ b/src/libtomahawk/TomahawkSettings.h @@ -21,11 +21,12 @@ #ifndef TOMAHAWK_SETTINGS_H #define TOMAHAWK_SETTINGS_H -#include "network/Enums.h" - #include "DllMacro.h" #include "Typedefs.h" +#include "network/Enums.h" +#include "AtticaManager.h" + #include #include #include @@ -241,6 +242,7 @@ private: static TomahawkSettings* s_instance; }; -Q_DECLARE_METATYPE( TomahawkSettings::PrivateListeningMode ); +Q_DECLARE_METATYPE( TomahawkSettings::PrivateListeningMode ) +Q_DECLARE_METATYPE( AtticaManager::StateHash ) #endif diff --git a/src/libtomahawk/TomahawkSettingsGui.cpp b/src/libtomahawk/TomahawkSettingsGui.cpp index 7db806613..6ee3b9831 100644 --- a/src/libtomahawk/TomahawkSettingsGui.cpp +++ b/src/libtomahawk/TomahawkSettingsGui.cpp @@ -26,44 +26,6 @@ using namespace Tomahawk; -inline QDataStream& operator<<(QDataStream& out, const AtticaManager::StateHash& states) -{ - out << TOMAHAWK_SETTINGS_VERSION; - out << (quint32)states.count(); - foreach( const QString& key, states.keys() ) - { - AtticaManager::Resolver resolver = states[ key ]; - out << key << resolver.version << resolver.scriptPath << (qint32)resolver.state << resolver.userRating << resolver.binary; - } - return out; -} - - -inline QDataStream& operator>>(QDataStream& in, AtticaManager::StateHash& states) -{ - quint32 count = 0, configVersion = 0; - in >> configVersion; - in >> count; - for ( uint i = 0; i < count; i++ ) - { - QString key, version, scriptPath; - qint32 state, userRating; - bool binary = false; - in >> key; - in >> version; - in >> scriptPath; - in >> state; - in >> userRating; - if ( configVersion > 10 ) - { - // V11 includes 'bool binary' flag - in >> binary; - } - states[ key ] = AtticaManager::Resolver( version, scriptPath, userRating, (AtticaManager::ResolverState)state, binary ); - } - return in; -} - TomahawkSettingsGui* TomahawkSettingsGui::instanceGui() @@ -143,11 +105,3 @@ TomahawkSettingsGui::removeAtticaResolverState ( const QString& resolver ) resolvers.remove( resolver ); setValue( "script/atticaresolverstates", QVariant::fromValue< AtticaManager::StateHash >( resolvers ) ); } - - -void -TomahawkSettingsGui::registerCustomSettingsHandlers() -{ - qRegisterMetaType< AtticaManager::StateHash >( "AtticaManager::StateHash" ); - qRegisterMetaTypeStreamOperators("AtticaManager::StateHash"); -} diff --git a/src/libtomahawk/TomahawkSettingsGui.h b/src/libtomahawk/TomahawkSettingsGui.h index d016dd815..ce704ccc8 100644 --- a/src/libtomahawk/TomahawkSettingsGui.h +++ b/src/libtomahawk/TomahawkSettingsGui.h @@ -47,11 +47,7 @@ public: void setAtticaResolverState( const QString& resolver, AtticaManager::ResolverState state ); void removeAtticaResolverState( const QString& resolver ); - - static void registerCustomSettingsHandlers(); }; -Q_DECLARE_METATYPE(AtticaManager::StateHash); - #endif