From 6340b829216b6f5aa91f80ea89f9e810687502be Mon Sep 17 00:00:00 2001 From: Leo Franchi Date: Sun, 1 May 2011 21:07:45 -0400 Subject: [PATCH] Use a unique bookmarks playlist guid --- src/libtomahawk/database/localcollection.cpp | 12 ++++++++---- src/libtomahawk/tomahawksettings.cpp | 12 ++++++++++++ src/libtomahawk/tomahawksettings.h | 3 +++ 3 files changed, 23 insertions(+), 4 deletions(-) diff --git a/src/libtomahawk/database/localcollection.cpp b/src/libtomahawk/database/localcollection.cpp index fe9bd1c65..9a8882aab 100644 --- a/src/libtomahawk/database/localcollection.cpp +++ b/src/libtomahawk/database/localcollection.cpp @@ -22,8 +22,7 @@ #include "sourcelist.h" #include "viewmanager.h" - -#define MAGIC_BOOKMARK_GUID "_bookmarkplaylist" +#include LocalCollection::LocalCollection( const Tomahawk::source_ptr& source, QObject* parent ) : DatabaseCollection( source, parent ) @@ -34,18 +33,23 @@ LocalCollection::LocalCollection( const Tomahawk::source_ptr& source, QObject* p Tomahawk::playlist_ptr LocalCollection::bookmarksPlaylist() { - return playlist( MAGIC_BOOKMARK_GUID ); + if( TomahawkSettings::instance()->bookmarkPlaylist().isEmpty() ) + return Tomahawk::playlist_ptr(); + + return playlist( TomahawkSettings::instance()->bookmarkPlaylist() ); } void LocalCollection::createBookmarksPlaylist() { if( bookmarksPlaylist().isNull() ) { - Tomahawk::playlist_ptr p = Tomahawk::Playlist::create( SourceList::instance()->getLocal(), MAGIC_BOOKMARK_GUID, tr( "Bookmarks" ), tr( "Saved tracks" ), QString(), false ); + QString guid = uuid(); + Tomahawk::playlist_ptr p = Tomahawk::Playlist::create( SourceList::instance()->getLocal(), guid, tr( "Bookmarks" ), tr( "Saved tracks" ), QString(), false ); ViewManager::instance()->createPageForPlaylist( p ); // connect( p.data(), SIGNAL( revisionLoaded( Tomahawk::PlaylistRevision ) ), this, SLOT( loaded( Tomahawk::PlaylistRevision ) ), Qt::QueuedConnection ); connect( p.data(), SIGNAL( created() ), this, SLOT( created() ) ); + TomahawkSettings::instance()->setBookmarkPlaylist( guid ); // p->createNewRevision( uuid(), p->currentrevision(), QList< Tomahawk::plentry_ptr >() ); } } diff --git a/src/libtomahawk/tomahawksettings.cpp b/src/libtomahawk/tomahawksettings.cpp index f1670839f..365508e6c 100644 --- a/src/libtomahawk/tomahawksettings.cpp +++ b/src/libtomahawk/tomahawksettings.cpp @@ -306,6 +306,18 @@ TomahawkSettings::appendRecentlyPlayedPlaylist( const Tomahawk::playlist_ptr& pl setValue( "playlists/recentlyPlayed", playlist_guids ); } +QString +TomahawkSettings::bookmarkPlaylist() const +{ + return value( "playlists/bookmark", QString() ).toString(); +} + +void +TomahawkSettings::setBookmarkPlaylist( const QString& guid ) +{ + setValue( "playlists/bookmark", guid ); +} + bool TomahawkSettings::jabberAutoConnect() const diff --git a/src/libtomahawk/tomahawksettings.h b/src/libtomahawk/tomahawksettings.h index 0b47ca685..032578b17 100644 --- a/src/libtomahawk/tomahawksettings.h +++ b/src/libtomahawk/tomahawksettings.h @@ -68,6 +68,9 @@ public: QList recentlyPlayedPlaylists() const; void appendRecentlyPlayedPlaylist( const Tomahawk::playlist_ptr& playlist ); + void setBookmarkPlaylist( const QString& guid ); + QString bookmarkPlaylist() const; + /// Jabber settings bool jabberAutoConnect() const; /// true by default void setJabberAutoConnect( bool autoconnect = false );