From a8991f62b8459c0a6e77a5f129038d137aaca305 Mon Sep 17 00:00:00 2001 From: "Uwe L. Korn" Date: Tue, 15 Apr 2014 19:08:01 +0100 Subject: [PATCH] Add Qt5 variant for qobject2qvariant --- .../DatabaseCommand_CreateDynamicPlaylist.cpp | 2 +- .../DatabaseCommand_CreatePlaylist.cpp | 2 +- .../database/DatabaseCommand_CreatePlaylist.h | 1 - ...baseCommand_SetDynamicPlaylistRevision.cpp | 2 +- .../DatabaseCommand_SetPlaylistRevision.cpp | 2 +- .../DatabaseCommand_SetPlaylistRevision.h | 1 - src/libtomahawk/database/DatabaseWorker.cpp | 2 +- src/libtomahawk/database/DatabaseWorker.h | 2 -- src/libtomahawk/utils/TomahawkUtils.cpp | 24 +++++++++++++++++-- src/libtomahawk/utils/TomahawkUtils.h | 1 + 10 files changed, 28 insertions(+), 11 deletions(-) diff --git a/src/libtomahawk/database/DatabaseCommand_CreateDynamicPlaylist.cpp b/src/libtomahawk/database/DatabaseCommand_CreateDynamicPlaylist.cpp index c1934e6b1..b2d3f659b 100644 --- a/src/libtomahawk/database/DatabaseCommand_CreateDynamicPlaylist.cpp +++ b/src/libtomahawk/database/DatabaseCommand_CreateDynamicPlaylist.cpp @@ -59,7 +59,7 @@ QVariant DatabaseCommand_CreateDynamicPlaylist::playlistV() const { if( m_v.isNull() ) - return QJson::QObjectHelper::qobject2qvariant( (QObject*)m_playlist.data() ); + return TomahawkUtils::qobject2qvariant( (QObject*)m_playlist.data() ); else return m_v; } diff --git a/src/libtomahawk/database/DatabaseCommand_CreatePlaylist.cpp b/src/libtomahawk/database/DatabaseCommand_CreatePlaylist.cpp index 8024b5522..ddcacc366 100644 --- a/src/libtomahawk/database/DatabaseCommand_CreatePlaylist.cpp +++ b/src/libtomahawk/database/DatabaseCommand_CreatePlaylist.cpp @@ -61,7 +61,7 @@ QVariant DatabaseCommand_CreatePlaylist::playlistV() const { if( m_v.isNull() ) - return QJson::QObjectHelper::qobject2qvariant( (QObject*)m_playlist.data() ); + return TomahawkUtils::qobject2qvariant( (QObject*)m_playlist.data() ); else return m_v; } diff --git a/src/libtomahawk/database/DatabaseCommand_CreatePlaylist.h b/src/libtomahawk/database/DatabaseCommand_CreatePlaylist.h index 0c9b8fc32..dd2345bba 100644 --- a/src/libtomahawk/database/DatabaseCommand_CreatePlaylist.h +++ b/src/libtomahawk/database/DatabaseCommand_CreatePlaylist.h @@ -21,7 +21,6 @@ #include "Typedefs.h" #include "DatabaseCommandLoggable.h" -#include "qjson/qobjecthelper.h" #include "DllMacro.h" diff --git a/src/libtomahawk/database/DatabaseCommand_SetDynamicPlaylistRevision.cpp b/src/libtomahawk/database/DatabaseCommand_SetDynamicPlaylistRevision.cpp index 9cfb7af59..2ba4f2307 100644 --- a/src/libtomahawk/database/DatabaseCommand_SetDynamicPlaylistRevision.cpp +++ b/src/libtomahawk/database/DatabaseCommand_SetDynamicPlaylistRevision.cpp @@ -80,7 +80,7 @@ DatabaseCommand_SetDynamicPlaylistRevision::controlsV() { foreach ( const dyncontrol_ptr& control, m_controls ) { - m_controlsV << QJson::QObjectHelper::qobject2qvariant( control.data() ); + m_controlsV << TomahawkUtils::qobject2qvariant( control.data() ); } } diff --git a/src/libtomahawk/database/DatabaseCommand_SetPlaylistRevision.cpp b/src/libtomahawk/database/DatabaseCommand_SetPlaylistRevision.cpp index 9448075ee..8926d86c6 100644 --- a/src/libtomahawk/database/DatabaseCommand_SetPlaylistRevision.cpp +++ b/src/libtomahawk/database/DatabaseCommand_SetPlaylistRevision.cpp @@ -301,7 +301,7 @@ DatabaseCommand_SetPlaylistRevision::addedentriesV() const if ( !pe->isValid() ) continue; - QVariant v = QJson::QObjectHelper::qobject2qvariant( pe.data() ); + QVariant v = TomahawkUtils::qobject2qvariant( pe.data() ); vlist << v; } return vlist; diff --git a/src/libtomahawk/database/DatabaseCommand_SetPlaylistRevision.h b/src/libtomahawk/database/DatabaseCommand_SetPlaylistRevision.h index 684ebdc05..45e61df76 100644 --- a/src/libtomahawk/database/DatabaseCommand_SetPlaylistRevision.h +++ b/src/libtomahawk/database/DatabaseCommand_SetPlaylistRevision.h @@ -21,7 +21,6 @@ #include "DatabaseCommandLoggable.h" #include "Playlist.h" -#include "qjson/qobjecthelper.h" #include "DllMacro.h" diff --git a/src/libtomahawk/database/DatabaseWorker.cpp b/src/libtomahawk/database/DatabaseWorker.cpp index efc1ec952..c025b48e9 100644 --- a/src/libtomahawk/database/DatabaseWorker.cpp +++ b/src/libtomahawk/database/DatabaseWorker.cpp @@ -279,7 +279,7 @@ DatabaseWorker::logOp( DatabaseCommandLoggable* command ) oplogquery.prepare( "INSERT INTO oplog(source, guid, command, singleton, compressed, json) " "VALUES(?, ?, ?, ?, ?, ?)" ); - QVariantMap variant = QJson::QObjectHelper::qobject2qvariant( command ); + QVariantMap variant = TomahawkUtils::qobject2qvariant( command ); QByteArray ba = TomahawkUtils::toJson( variant ); // qDebug() << "OP JSON:" << ba.isNull() << ba << "from:" << variant; // debug diff --git a/src/libtomahawk/database/DatabaseWorker.h b/src/libtomahawk/database/DatabaseWorker.h index 9a82ff422..2de81d5e0 100644 --- a/src/libtomahawk/database/DatabaseWorker.h +++ b/src/libtomahawk/database/DatabaseWorker.h @@ -25,8 +25,6 @@ #include #include -#include - #include "DatabaseCommand.h" namespace Tomahawk diff --git a/src/libtomahawk/utils/TomahawkUtils.cpp b/src/libtomahawk/utils/TomahawkUtils.cpp index fdfbbe956..4bf619f06 100644 --- a/src/libtomahawk/utils/TomahawkUtils.cpp +++ b/src/libtomahawk/utils/TomahawkUtils.cpp @@ -848,6 +848,27 @@ compareVersionStrings( const QString& first, const QString& second ) } +QVariantMap +qobject2qvariant( const QObject* object ) +{ +#if QT_VERSION >= QT_VERSION_CHECK( 5, 0, 0 ) + const QMetaObject* metaObject = object->metaObject(); + QVariantMap map; + for ( int i = 0; i < metaObject->propertyCount(); ++i ) + { + QMetaProperty metaproperty = metaObject->property( i ); + if ( metaproperty.isReadable() ) + { + map[ QLatin1String( metaproperty.name() ) ] = object->property( metaproperty.name() ); + } + } + return map; +#else + return QJson::QObjectHelper::qobject2qvariant( object ); +#endif +} + + void qvariant2qobject( const QVariantMap& variant, QObject* object ) { @@ -869,9 +890,8 @@ qvariant2qobject( const QVariantMap& variant, QObject* object ) } } #else - QJson::QObjectHelper::qvariant2qobject( variant, objects ); + QJson::QObjectHelper::qvariant2qobject( variant, object ); #endif - } diff --git a/src/libtomahawk/utils/TomahawkUtils.h b/src/libtomahawk/utils/TomahawkUtils.h index 3c807b587..3f33f7804 100644 --- a/src/libtomahawk/utils/TomahawkUtils.h +++ b/src/libtomahawk/utils/TomahawkUtils.h @@ -208,6 +208,7 @@ namespace TomahawkUtils */ /* QJson */ + DLLEXPORT QVariantMap qobject2qvariant( const QObject* object ); DLLEXPORT void qvariant2qobject( const QVariantMap& variant, QObject* object ); DLLEXPORT QVariant parseJson( const QByteArray& jsonData, bool* ok = 0 ); DLLEXPORT QByteArray toJson( const QVariant &variant, bool* ok = 0 );