From 451d25c42f4f864d0f43e938d79d244eb554afce Mon Sep 17 00:00:00 2001 From: Leo Franchi Date: Fri, 21 Sep 2012 15:30:39 -0400 Subject: [PATCH] Properly save (or not) resulthints in playlist_entries --- .../DatabaseCommand_SetPlaylistRevision.cpp | 39 ++++++++++++------- .../DatabaseCommand_SetPlaylistRevision.h | 2 + 2 files changed, 26 insertions(+), 15 deletions(-) diff --git a/src/libtomahawk/database/DatabaseCommand_SetPlaylistRevision.cpp b/src/libtomahawk/database/DatabaseCommand_SetPlaylistRevision.cpp index 67a63c91f..da55ce13e 100644 --- a/src/libtomahawk/database/DatabaseCommand_SetPlaylistRevision.cpp +++ b/src/libtomahawk/database/DatabaseCommand_SetPlaylistRevision.cpp @@ -153,7 +153,7 @@ DatabaseCommand_SetPlaylistRevision::exec( DatabaseImpl* lib ) if ( !e->query()->numResults() ) continue; - adde.bindValue( 0, e->query()->results().first()->url() ); + adde.bindValue( 0, hintFromQuery( e->query() ) ); adde.bindValue( 1, e->guid() ); adde.exec(); } @@ -189,7 +189,7 @@ DatabaseCommand_SetPlaylistRevision::exec( DatabaseImpl* lib ) "VALUES( ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )"; adde.prepare( sql ); - qDebug() << "Num new playlist_items to add:" << m_addedentries.length(); +// qDebug() << "Num new playlist_items to add:" << m_addedentries.length(); foreach( const plentry_ptr& e, m_addedentries ) { if ( !e->isValid() ) @@ -199,19 +199,7 @@ DatabaseCommand_SetPlaylistRevision::exec( DatabaseImpl* lib ) m_addedmap.insert( e->guid(), e ); // needed in postcommithook - QString resultHint, foundResult; - if ( !e->query()->results().isEmpty() ) - foundResult = e->query()->results().first()->url(); - else if ( !e->query()->resultHint().isEmpty() ) - foundResult = e->query()->resultHint(); - - if ( foundResult.startsWith( "file://" ) || - foundResult.startsWith( "servent://" ) || // Save resulthints for local files and peers automatically - ( foundResult.startsWith( "http" ) && e->query()->saveHTTPResultHint() ) ) - { - resultHint = foundResult; - } - + const QString resultHint = hintFromQuery( e->query() ); adde.bindValue( 0, e->guid() ); adde.bindValue( 1, m_playlistguid ); @@ -279,3 +267,24 @@ DatabaseCommand_SetPlaylistRevision::exec( DatabaseImpl* lib ) // Q_ASSERT( false ); } } + + +QString +DatabaseCommand_SetPlaylistRevision::hintFromQuery( const query_ptr& query ) const +{ + QString resultHint, foundResult; + if ( !query->results().isEmpty() ) + foundResult = query->results().first()->url(); + else if ( !query->resultHint().isEmpty() ) + foundResult = query->resultHint(); + + if ( foundResult.startsWith( "file://" ) || + foundResult.startsWith( "servent://" ) || // Save resulthints for local files and peers automatically + ( foundResult.startsWith( "http" ) && query->saveHTTPResultHint() ) ) + { + resultHint = foundResult; + } + + return resultHint; +} + diff --git a/src/libtomahawk/database/DatabaseCommand_SetPlaylistRevision.h b/src/libtomahawk/database/DatabaseCommand_SetPlaylistRevision.h index 17f631e8d..5078b2136 100644 --- a/src/libtomahawk/database/DatabaseCommand_SetPlaylistRevision.h +++ b/src/libtomahawk/database/DatabaseCommand_SetPlaylistRevision.h @@ -122,6 +122,8 @@ protected: QString m_currentRevision; private: + QString hintFromQuery( const query_ptr& query ) const; + QVariantList m_orderedguids; QList m_addedentries, m_entries;