diff --git a/include/tomahawk/collection.h b/include/tomahawk/collection.h index e5bfc8d15..0d947fc9f 100644 --- a/include/tomahawk/collection.h +++ b/include/tomahawk/collection.h @@ -69,9 +69,8 @@ public slots: virtual void removeTracks( const QList<QVariant> &olditems ) = 0; void setPlaylists( const QList<Tomahawk::playlist_ptr>& plists ); + void setDynamicPlaylists( const QList< Tomahawk::dynplaylist_ptr >& dynplists ); void setTracks( const QList<Tomahawk::query_ptr>& tracks, Tomahawk::collection_ptr collection ); - - void setDynamicPlaylistS( const QList< Tomahawk::dynplaylist_ptr >& dynplists ); protected: QString m_name; unsigned int m_lastmodified; // unix time of last change to collection diff --git a/src/collection.cpp b/src/collection.cpp index df0d93684..63674c51c 100644 --- a/src/collection.cpp +++ b/src/collection.cpp @@ -131,7 +131,7 @@ Collection::setPlaylists( const QList<Tomahawk::playlist_ptr>& plists ) } void -Collection::setDynamicPlaylistS( const QList< Tomahawk::dynplaylist_ptr >& plists ) +Collection::setDynamicPlaylists( const QList< Tomahawk::dynplaylist_ptr >& plists ) { qDebug() << Q_FUNC_INFO << plists.count(); diff --git a/src/database/databasecommand_loadalldynamicplaylists.cpp b/src/database/databasecommand_loadalldynamicplaylists.cpp index b37f30d50..b980f672f 100644 --- a/src/database/databasecommand_loadalldynamicplaylists.cpp +++ b/src/database/databasecommand_loadalldynamicplaylists.cpp @@ -27,7 +27,7 @@ void DatabaseCommand_LoadAllDynamicPlaylists::exec( DatabaseImpl* dbi ) { TomahawkSqlQuery query = dbi->newquery(); - query.exec( QString( "SELECT playlist.guid as guid, title, info, creator, lastmodified, shared, currentrevision, dynamic_playlist.pltype " + query.exec( QString( "SELECT playlist.guid as guid, title, info, creator, lastmodified, shared, currentrevision, dynamic_playlist.pltype, dynamic_playlist.plmode " "FROM playlist, dynamic_playlist WHERE source %1 AND dynplaylist AND playlist.guid = dynamic_playlist.guid" ) .arg( source()->isLocal() ? "IS NULL" : QString( "=%1" ).arg( source()->id() ) @@ -42,6 +42,7 @@ void DatabaseCommand_LoadAllDynamicPlaylists::exec( DatabaseImpl* dbi ) query.value(2).toString(), //info query.value(3).toString(), //creator query.value(7).toString(), // dynamic type + static_cast<GeneratorMode>(query.value(7).toInt()), // dynamic mode query.value(5).toBool(), //shared query.value(4).toInt(), //lastmod query.value(0).toString() //GUID diff --git a/src/database/databasecommand_loaddynamicplaylist.cpp b/src/database/databasecommand_loaddynamicplaylist.cpp index 2b7273e5e..c3756a6f9 100644 --- a/src/database/databasecommand_loaddynamicplaylist.cpp +++ b/src/database/databasecommand_loaddynamicplaylist.cpp @@ -21,10 +21,10 @@ DatabaseCommand_LoadDynamicPlaylist::exec( DatabaseImpl* dbi ) // now load the controls etc TomahawkSqlQuery controlsQuery = dbi->newquery(); - controlsQuery.prepare("SELECT controls, plmode, pltype" + controlsQuery.prepare("SELECT controls, plmode, pltype " "FROM dynamic_playlist_revision " - "WHERE guid = :guid"); - controlsQuery.bindValue( ":guid", guid() ); + "WHERE guid = ?"); + controlsQuery.addBindValue( guid() ); controlsQuery.exec(); QList< dyncontrol_ptr > controls; diff --git a/src/dynamic/dynamicplaylist.cpp b/src/dynamic/dynamicplaylist.cpp index f6f851a5e..69965ef7b 100644 --- a/src/dynamic/dynamicplaylist.cpp +++ b/src/dynamic/dynamicplaylist.cpp @@ -45,6 +45,7 @@ DynamicPlaylist::DynamicPlaylist ( const Tomahawk::source_ptr& src, const QString& info, const QString& creator, const QString& type, + GeneratorMode mode, bool shared, int lastmod, const QString& guid ) @@ -53,6 +54,7 @@ DynamicPlaylist::DynamicPlaylist ( const Tomahawk::source_ptr& src, qDebug() << "Creating Dynamic Playlist 1"; // TODO instantiate generator m_generator = geninterface_ptr( GeneratorFactory::create( type ) ); + m_generator->setMode( mode ); } diff --git a/src/dynamic/dynamicplaylist.h b/src/dynamic/dynamicplaylist.h index 2aaf336bc..1e2a0545d 100644 --- a/src/dynamic/dynamicplaylist.h +++ b/src/dynamic/dynamicplaylist.h @@ -135,6 +135,7 @@ private: const QString& info, const QString& creator, const QString& type, + GeneratorMode mode, bool shared, int lastmod, const QString& guid = "" ); // populate db @@ -149,7 +150,6 @@ private: bool shared ); private: - Q_DISABLE_COPY(DynamicPlaylist) geninterface_ptr m_generator; }; diff --git a/src/tomahawkapp.cpp b/src/tomahawkapp.cpp index 7a9a11ce2..b8dd10232 100644 --- a/src/tomahawkapp.cpp +++ b/src/tomahawkapp.cpp @@ -135,7 +135,9 @@ TomahawkApp::TomahawkApp( int& argc, char *argv[] ) m_settings = new TomahawkSettings( this ); m_audioEngine = new AudioEngine; setupDatabase(); - + + GeneratorFactory::registerFactory( "echonest", new EchonestFactory ); + #ifndef NO_LIBLASTFM m_scrobbler = new Scrobbler( this ); m_nam = new lastfm::NetworkAccessManager( this ); @@ -217,8 +219,6 @@ TomahawkApp::TomahawkApp( int& argc, char *argv[] ) m_mainwindow->showSettingsDialog(); } #endif - - GeneratorFactory::registerFactory( "echonest", new EchonestFactory ); } @@ -288,6 +288,7 @@ TomahawkApp::registerMetaTypes() qRegisterMetaType< Tomahawk::result_ptr >("Tomahawk::result_ptr"); qRegisterMetaType< Tomahawk::source_ptr >("Tomahawk::source_ptr"); qRegisterMetaType< QList<Tomahawk::playlist_ptr> >("QList<Tomahawk::playlist_ptr>"); + qRegisterMetaType< QList<Tomahawk::dynplaylist_ptr> >("QList<Tomahawk::dynplaylist_ptr>"); qRegisterMetaType< QList<Tomahawk::plentry_ptr> >("QList<Tomahawk::plentry_ptr>"); qRegisterMetaType< QList<Tomahawk::query_ptr> >("QList<Tomahawk::query_ptr>"); qRegisterMetaType< QList<Tomahawk::result_ptr> >("QList<Tomahawk::result_ptr>"); @@ -295,6 +296,7 @@ TomahawkApp::registerMetaTypes() qRegisterMetaType< QList<Tomahawk::album_ptr> >("QList<Tomahawk::album_ptr>"); qRegisterMetaType< QMap< QString, Tomahawk::plentry_ptr > >("QMap< QString, Tomahawk::plentry_ptr >"); qRegisterMetaType< Tomahawk::PlaylistRevision >("Tomahawk::PlaylistRevision"); + qRegisterMetaType< Tomahawk::DynamicPlaylistRevision >("Tomahawk::DynamicPlaylistRevision"); qRegisterMetaType< Tomahawk::QID >("Tomahawk::QID"); qRegisterMetaType< AudioErrorCode >("AudioErrorCode");