From 9e3aab1e3838bd3a3bb94478a92fc526fb872f7b Mon Sep 17 00:00:00 2001 From: Leo Franchi Date: Sat, 8 Jan 2011 19:02:13 -0500 Subject: [PATCH] fix static mode dynamic playlists --- src/dynamic/widgets/DynamicWidget.cpp | 6 +++++- src/dynamic/widgets/DynamicWidget.h | 2 +- .../databasecommand_setdynamicplaylistrevision.cpp | 4 ++-- src/libtomahawk/dynamic/DynamicPlaylist.cpp | 14 +++++++++----- src/libtomahawk/dynamic/DynamicPlaylist.h | 2 +- src/playlist/playlistmodel.cpp | 1 + src/sourcetree/sourcetreeitem.cpp | 2 +- 7 files changed, 20 insertions(+), 11 deletions(-) diff --git a/src/dynamic/widgets/DynamicWidget.cpp b/src/dynamic/widgets/DynamicWidget.cpp index fc6ed4acc..7cf71fbdb 100644 --- a/src/dynamic/widgets/DynamicWidget.cpp +++ b/src/dynamic/widgets/DynamicWidget.cpp @@ -93,6 +93,7 @@ void DynamicWidget::loadDynamicPlaylist(const Tomahawk::dynplaylist_ptr& playlis { if( !m_playlist.isNull() ) { disconnect( m_playlist->generator().data(), SIGNAL( generated( QList ) ), this, SLOT( tracksGenerated( QList ) ) ); + disconnect( m_playlist.data(), SIGNAL( dynamicRevisionLoaded( Tomahawk::DynamicPlaylistRevision) ), this, SLOT(onRevisionLoaded( Tomahawk::DynamicPlaylistRevision) ) ); } m_playlist = playlist; @@ -109,12 +110,15 @@ void DynamicWidget::loadDynamicPlaylist(const Tomahawk::dynplaylist_ptr& playlis m_headerLayout->removeWidget(m_generateButton); } connect( m_playlist->generator().data(), SIGNAL( generated( QList ) ), this, SLOT( tracksGenerated( QList ) ) ); + connect( m_playlist.data(), SIGNAL( dynamicRevisionLoaded( Tomahawk::DynamicPlaylistRevision) ), this, SLOT(onRevisionLoaded( Tomahawk::DynamicPlaylistRevision) ) ); + } void -DynamicWidget::setPlaylist( const Tomahawk::DynamicPlaylistRevision& rev ) +DynamicWidget::onRevisionLoaded( const Tomahawk::DynamicPlaylistRevision& rev ) { + qDebug() << "DynamicWidget::onRevisionLoaded"; loadDynamicPlaylist( m_playlist ); } diff --git a/src/dynamic/widgets/DynamicWidget.h b/src/dynamic/widgets/DynamicWidget.h index ea7c927ac..33f4a6433 100644 --- a/src/dynamic/widgets/DynamicWidget.h +++ b/src/dynamic/widgets/DynamicWidget.h @@ -51,7 +51,7 @@ public: PlaylistInterface* playlistInterface() const; public slots: - void setPlaylist( const DynamicPlaylistRevision& rev ); + void onRevisionLoaded( const DynamicPlaylistRevision& rev ); private slots: void generate(); diff --git a/src/libtomahawk/database/databasecommand_setdynamicplaylistrevision.cpp b/src/libtomahawk/database/databasecommand_setdynamicplaylistrevision.cpp index 86c30572f..e06b97cbd 100644 --- a/src/libtomahawk/database/databasecommand_setdynamicplaylistrevision.cpp +++ b/src/libtomahawk/database/databasecommand_setdynamicplaylistrevision.cpp @@ -128,10 +128,10 @@ DatabaseCommand_SetDynamicPlaylistRevision::exec( DatabaseImpl* lib ) query.exec(); // delete all the old controls, replace with new onws - qDebug() << "Deleting controls with playlist id" << m_currentRevision; + qDebug() << "Deleting controls with playlist id" << m_playlistguid; TomahawkSqlQuery delQuery = lib->newquery(); delQuery.prepare( "DELETE FROM dynamic_playlist_controls WHERE playlist = ?" ); - delQuery.addBindValue( m_currentRevision ); + delQuery.addBindValue( m_playlistguid ); if( !delQuery.exec() ) qWarning() << "Failed to delete controls from dynamic playlist controls table"; diff --git a/src/libtomahawk/dynamic/DynamicPlaylist.cpp b/src/libtomahawk/dynamic/DynamicPlaylist.cpp index b744e5daa..3bcf1d1eb 100644 --- a/src/libtomahawk/dynamic/DynamicPlaylist.cpp +++ b/src/libtomahawk/dynamic/DynamicPlaylist.cpp @@ -309,9 +309,10 @@ DynamicPlaylist::setRevision( const QString& rev, if( applied ) setCurrentrevision( rev ); + qDebug() << "EMITTING REVISION LOADED 1!"; // meh :-( emit both, one for PlaylistModel, the other for DynamicWidget emit revisionLoaded( pr ); - emit revisionLoaded( dpr ); + emit dynamicRevisionLoaded( dpr ); } // ondemand version @@ -341,13 +342,16 @@ DynamicPlaylist::setRevision( const QString& rev, m_generator->setControls( controls ); m_generator->setMode( OnDemand ); - DynamicPlaylistRevision pr; + PlaylistRevision pr; pr.oldrevisionguid = currentrevision(); pr.revisionguid = rev; - pr.controls = controls; - pr.type = type; - pr.mode = OnDemand; + DynamicPlaylistRevision dpr = pr; + dpr.controls = controls; + dpr.type = type; + dpr.mode = OnDemand; + qDebug() << "EMITTING REVISION LOADED 2!"; emit revisionLoaded( pr ); + emit revisionLoaded( dpr ); } diff --git a/src/libtomahawk/dynamic/DynamicPlaylist.h b/src/libtomahawk/dynamic/DynamicPlaylist.h index 9a3f9e63b..c4d3b2a92 100644 --- a/src/libtomahawk/dynamic/DynamicPlaylist.h +++ b/src/libtomahawk/dynamic/DynamicPlaylist.h @@ -100,7 +100,7 @@ public: signals: /// emitted when the playlist revision changes (whenever the playlist changes) - void revisionLoaded( Tomahawk::DynamicPlaylistRevision ); + void dynamicRevisionLoaded( Tomahawk::DynamicPlaylistRevision ); public slots: // want to update the playlist from the model? diff --git a/src/playlist/playlistmodel.cpp b/src/playlist/playlistmodel.cpp index 34605fcb2..b287c7753 100644 --- a/src/playlist/playlistmodel.cpp +++ b/src/playlist/playlistmodel.cpp @@ -171,6 +171,7 @@ PlaylistModel::onDataChanged() void PlaylistModel::onRevisionLoaded( Tomahawk::PlaylistRevision revision ) { + qDebug() << "PLAYLIST::onRevisionLoaded"; qDebug() << Q_FUNC_INFO; if ( m_waitForUpdate ) diff --git a/src/sourcetree/sourcetreeitem.cpp b/src/sourcetree/sourcetreeitem.cpp index 234e5d4e1..7610b73db 100644 --- a/src/sourcetree/sourcetreeitem.cpp +++ b/src/sourcetree/sourcetreeitem.cpp @@ -157,7 +157,7 @@ void SourceTreeItem::onDynamicPlaylistsAdded( const QList< dynplaylist_ptr >& pl m_dynplaylists.append( p ); qlonglong ptr = reinterpret_cast( &m_dynplaylists.last() ); qDebug() << "Setting dynamic ptr to:" << ptr; - connect( p.data(), SIGNAL( revisionLoaded( Tomahawk::DynamicPlaylistRevision ) ), + connect( p.data(), SIGNAL( dynamicRevisionLoaded( Tomahawk::DynamicPlaylistRevision) ), SLOT( onDynamicPlaylistLoaded( Tomahawk::DynamicPlaylistRevision ) ), Qt::QueuedConnection);