From ddb4bd4563c0ed1f297efa8bd976eb98a5d17a8e Mon Sep 17 00:00:00 2001 From: Leo Franchi Date: Sun, 29 Jan 2012 13:38:22 -0500 Subject: [PATCH] Move qdatastream registration to before settings init --- src/libtomahawk/TomahawkSettingsGui.cpp | 36 ------------------------- src/main.cpp | 36 +++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 36 deletions(-) diff --git a/src/libtomahawk/TomahawkSettingsGui.cpp b/src/libtomahawk/TomahawkSettingsGui.cpp index b9b95bfc1..4337d030b 100644 --- a/src/libtomahawk/TomahawkSettingsGui.cpp +++ b/src/libtomahawk/TomahawkSettingsGui.cpp @@ -32,42 +32,8 @@ // #include "database/databasecommand_updatesearchindex.h" // #include "database/database.h" -#define VERSION 5 - using namespace Tomahawk; -inline QDataStream& operator<<(QDataStream& out, const AtticaManager::StateHash& states) -{ - out << 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; - } - return out; -} - - -inline QDataStream& operator>>(QDataStream& in, AtticaManager::StateHash& states) -{ - quint32 count = 0, version = 0; - in >> version; - in >> count; - for ( uint i = 0; i < count; i++ ) - { - QString key, version, scriptPath; - qint32 state, userRating; - in >> key; - in >> version; - in >> scriptPath; - in >> state; - in >> userRating; - states[ key ] = AtticaManager::Resolver( version, scriptPath, userRating, (AtticaManager::ResolverState)state ); - } - return in; -} - TomahawkSettingsGui* TomahawkSettingsGui::instanceGui() { @@ -78,8 +44,6 @@ TomahawkSettingsGui::instanceGui() TomahawkSettingsGui::TomahawkSettingsGui( QObject* parent ) : TomahawkSettings( parent ) { - qRegisterMetaType< AtticaManager::StateHash >( "AtticaManager::StateHash" ); - qRegisterMetaTypeStreamOperators("AtticaManager::StateHash"); } diff --git a/src/main.cpp b/src/main.cpp index b561d21f8..7d8516b9a 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -36,6 +36,38 @@ #include "breakpad/BreakPad.h" #endif +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; + } + return out; +} + + +inline QDataStream& operator>>(QDataStream& in, AtticaManager::StateHash& states) +{ + quint32 count = 0, version = 0; + in >> version; + in >> count; + for ( uint i = 0; i < count; i++ ) + { + QString key, version, scriptPath; + qint32 state, userRating; + in >> key; + in >> version; + in >> scriptPath; + in >> state; + in >> userRating; + states[ key ] = AtticaManager::Resolver( version, scriptPath, userRating, (AtticaManager::ResolverState)state ); + } + return in; +} + int main( int argc, char *argv[] ) { @@ -60,6 +92,10 @@ main( int argc, char *argv[] ) TomahawkApp a( argc, argv ); + // MUST register StateHash ****before*** initing TomahawkSettingsGui as constructor of settings does upgrade before Gui subclass registers type + qRegisterMetaType< AtticaManager::StateHash >( "AtticaManager::StateHash" ); + qRegisterMetaTypeStreamOperators("AtticaManager::StateHash"); + #ifdef ENABLE_HEADLESS new TomahawkSettings( &a ); #else