From e1d5d8ec22c2f1a571d52b7c6bc77325d5c55aee Mon Sep 17 00:00:00 2001 From: Christian Muehlhaeuser Date: Wed, 16 Feb 2011 05:52:17 +0100 Subject: [PATCH] * Fixed DbCmds for offline sources. Well hopefully. --- src/libtomahawk/database/databasecommand_addfiles.cpp | 5 +++++ .../database/databasecommand_createdynamicplaylist.cpp | 6 ++++++ .../database/databasecommand_createplaylist.cpp | 5 +++++ .../database/databasecommand_deletedynamicplaylist.cpp | 5 +++++ .../database/databasecommand_deleteplaylist.cpp | 7 ++++++- src/libtomahawk/database/databasecommand_logplayback.cpp | 7 ++++++- .../database/databasecommand_renameplaylist.cpp | 7 ++++++- .../databasecommand_setdynamicplaylistrevision.cpp | 5 +++++ .../database/databasecommand_setplaylistrevision.cpp | 7 ++++++- src/libtomahawk/database/databaseworker.cpp | 1 - 10 files changed, 50 insertions(+), 5 deletions(-) diff --git a/src/libtomahawk/database/databasecommand_addfiles.cpp b/src/libtomahawk/database/databasecommand_addfiles.cpp index dda4f3812..0036e671d 100644 --- a/src/libtomahawk/database/databasecommand_addfiles.cpp +++ b/src/libtomahawk/database/databasecommand_addfiles.cpp @@ -33,6 +33,11 @@ void DatabaseCommand_AddFiles::postCommitHook() { qDebug() << Q_FUNC_INFO; + if ( source().isNull() || source()->collection().isNull() ) + { + qDebug() << "Source has gone offline, not emitting to GUI."; + return; + } // make the collection object emit its tracksAdded signal, so the // collection browser will update/fade in etc. diff --git a/src/libtomahawk/database/databasecommand_createdynamicplaylist.cpp b/src/libtomahawk/database/databasecommand_createdynamicplaylist.cpp index aa88a24d6..b906e3077 100644 --- a/src/libtomahawk/database/databasecommand_createdynamicplaylist.cpp +++ b/src/libtomahawk/database/databasecommand_createdynamicplaylist.cpp @@ -79,6 +79,12 @@ void DatabaseCommand_CreateDynamicPlaylist::postCommitHook() { qDebug() << Q_FUNC_INFO; + if ( source().isNull() || source()->collection().isNull() ) + { + qDebug() << "Source has gone offline, not emitting to GUI."; + return; + } + if( report() == false ) return; diff --git a/src/libtomahawk/database/databasecommand_createplaylist.cpp b/src/libtomahawk/database/databasecommand_createplaylist.cpp index 80811359c..7d703b668 100644 --- a/src/libtomahawk/database/databasecommand_createplaylist.cpp +++ b/src/libtomahawk/database/databasecommand_createplaylist.cpp @@ -38,6 +38,11 @@ void DatabaseCommand_CreatePlaylist::postCommitHook() { qDebug() << Q_FUNC_INFO; + if ( source().isNull() || source()->collection().isNull() ) + { + qDebug() << "Source has gone offline, not emitting to GUI."; + return; + } if( m_report == false ) return; diff --git a/src/libtomahawk/database/databasecommand_deletedynamicplaylist.cpp b/src/libtomahawk/database/databasecommand_deletedynamicplaylist.cpp index 72502b9aa..e59e55ff9 100644 --- a/src/libtomahawk/database/databasecommand_deletedynamicplaylist.cpp +++ b/src/libtomahawk/database/databasecommand_deletedynamicplaylist.cpp @@ -46,6 +46,11 @@ void DatabaseCommand_DeleteDynamicPlaylist::postCommitHook() { qDebug() << Q_FUNC_INFO << "..reporting..:" << m_playlistguid; + if ( source().isNull() || source()->collection().isNull() ) + { + qDebug() << "Source has gone offline, not emitting to GUI."; + return; + } dynplaylist_ptr playlist = source()->collection()->dynamicPlaylist( m_playlistguid ); Q_ASSERT( !playlist.isNull() ); diff --git a/src/libtomahawk/database/databasecommand_deleteplaylist.cpp b/src/libtomahawk/database/databasecommand_deleteplaylist.cpp index 2f85a5a0e..424c90df8 100644 --- a/src/libtomahawk/database/databasecommand_deleteplaylist.cpp +++ b/src/libtomahawk/database/databasecommand_deleteplaylist.cpp @@ -34,7 +34,12 @@ void DatabaseCommand_DeletePlaylist::postCommitHook() { qDebug() << Q_FUNC_INFO << "..reporting.."; - + if ( source().isNull() || source()->collection().isNull() ) + { + qDebug() << "Source has gone offline, not emitting to GUI."; + return; + } + playlist_ptr playlist = source()->collection()->playlist( m_playlistguid ); Q_ASSERT( !playlist.isNull() ); diff --git a/src/libtomahawk/database/databasecommand_logplayback.cpp b/src/libtomahawk/database/databasecommand_logplayback.cpp index 4c6d3b2be..d93e50ce5 100644 --- a/src/libtomahawk/database/databasecommand_logplayback.cpp +++ b/src/libtomahawk/database/databasecommand_logplayback.cpp @@ -15,7 +15,12 @@ void DatabaseCommand_LogPlayback::postCommitHook() { qDebug() << Q_FUNC_INFO; - + if ( source().isNull() || source()->collection().isNull() ) + { + qDebug() << "Source has gone offline, not emitting to GUI."; + return; + } + connect( this, SIGNAL( trackPlaying( Tomahawk::query_ptr ) ), source().data(), SIGNAL( playbackStarted( Tomahawk::query_ptr ) ), Qt::QueuedConnection ); connect( this, SIGNAL( trackPlayed( Tomahawk::query_ptr ) ), diff --git a/src/libtomahawk/database/databasecommand_renameplaylist.cpp b/src/libtomahawk/database/databasecommand_renameplaylist.cpp index 9b3737ae9..52ae79558 100644 --- a/src/libtomahawk/database/databasecommand_renameplaylist.cpp +++ b/src/libtomahawk/database/databasecommand_renameplaylist.cpp @@ -37,7 +37,12 @@ void DatabaseCommand_RenamePlaylist::postCommitHook() { qDebug() << Q_FUNC_INFO << "..reporting.."; - + if ( source().isNull() || source()->collection().isNull() ) + { + qDebug() << "Source has gone offline, not emitting to GUI."; + return; + } + playlist_ptr playlist = source()->collection()->playlist( m_playlistguid ); Q_ASSERT( !playlist.isNull() ); diff --git a/src/libtomahawk/database/databasecommand_setdynamicplaylistrevision.cpp b/src/libtomahawk/database/databasecommand_setdynamicplaylistrevision.cpp index 4dded864a..3ed5f49a7 100644 --- a/src/libtomahawk/database/databasecommand_setdynamicplaylistrevision.cpp +++ b/src/libtomahawk/database/databasecommand_setdynamicplaylistrevision.cpp @@ -60,6 +60,11 @@ void DatabaseCommand_SetDynamicPlaylistRevision::postCommitHook() { qDebug() << Q_FUNC_INFO; + if ( source().isNull() || source()->collection().isNull() ) + { + qDebug() << "Source has gone offline, not emitting to GUI."; + return; + } QStringList orderedentriesguids; foreach( const QVariant& v, orderedguids() ) diff --git a/src/libtomahawk/database/databasecommand_setplaylistrevision.cpp b/src/libtomahawk/database/databasecommand_setplaylistrevision.cpp index 536b13f33..4f2ee99ed 100644 --- a/src/libtomahawk/database/databasecommand_setplaylistrevision.cpp +++ b/src/libtomahawk/database/databasecommand_setplaylistrevision.cpp @@ -37,7 +37,12 @@ void DatabaseCommand_SetPlaylistRevision::postCommitHook() { qDebug() << Q_FUNC_INFO; - + if ( source().isNull() || source()->collection().isNull() ) + { + qDebug() << "Source has gone offline, not emitting to GUI."; + return; + } + if ( m_localOnly ) return; diff --git a/src/libtomahawk/database/databaseworker.cpp b/src/libtomahawk/database/databaseworker.cpp index b61f9d504..57ae9ba5a 100644 --- a/src/libtomahawk/database/databaseworker.cpp +++ b/src/libtomahawk/database/databaseworker.cpp @@ -87,7 +87,6 @@ DatabaseWorker::doWork() } try { - if ( !cmd->source().isNull() && !cmd->source()->collection().isNull() ) { cmd->_exec( m_dbimpl ); // runs actual SQL stuff