mirror of
https://github.com/tomahawk-player/tomahawk.git
synced 2025-08-06 06:07:37 +02:00
Move qdatastream registration to before settings init
This commit is contained in:
@@ -32,42 +32,8 @@
|
|||||||
// #include "database/databasecommand_updatesearchindex.h"
|
// #include "database/databasecommand_updatesearchindex.h"
|
||||||
// #include "database/database.h"
|
// #include "database/database.h"
|
||||||
|
|
||||||
#define VERSION 5
|
|
||||||
|
|
||||||
using namespace Tomahawk;
|
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*
|
||||||
TomahawkSettingsGui::instanceGui()
|
TomahawkSettingsGui::instanceGui()
|
||||||
{
|
{
|
||||||
@@ -78,8 +44,6 @@ TomahawkSettingsGui::instanceGui()
|
|||||||
TomahawkSettingsGui::TomahawkSettingsGui( QObject* parent )
|
TomahawkSettingsGui::TomahawkSettingsGui( QObject* parent )
|
||||||
: TomahawkSettings( parent )
|
: TomahawkSettings( parent )
|
||||||
{
|
{
|
||||||
qRegisterMetaType< AtticaManager::StateHash >( "AtticaManager::StateHash" );
|
|
||||||
qRegisterMetaTypeStreamOperators<AtticaManager::StateHash>("AtticaManager::StateHash");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
36
src/main.cpp
36
src/main.cpp
@@ -36,6 +36,38 @@
|
|||||||
#include "breakpad/BreakPad.h"
|
#include "breakpad/BreakPad.h"
|
||||||
#endif
|
#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
|
int
|
||||||
main( int argc, char *argv[] )
|
main( int argc, char *argv[] )
|
||||||
{
|
{
|
||||||
@@ -60,6 +92,10 @@ main( int argc, char *argv[] )
|
|||||||
|
|
||||||
TomahawkApp a( argc, 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>("AtticaManager::StateHash");
|
||||||
|
|
||||||
#ifdef ENABLE_HEADLESS
|
#ifdef ENABLE_HEADLESS
|
||||||
new TomahawkSettings( &a );
|
new TomahawkSettings( &a );
|
||||||
#else
|
#else
|
||||||
|
Reference in New Issue
Block a user