From 3a805cbe673ececbba79605be7676633dfc4f8fa Mon Sep 17 00:00:00 2001 From: Teo Mrnjavac <teo@kde.org> Date: Thu, 24 Jan 2013 19:31:40 +0100 Subject: [PATCH] Have collections provide some strings of their own. --- src/libtomahawk/Collection.cpp | 16 +++++++++++++++- src/libtomahawk/Collection.h | 2 ++ src/libtomahawk/ViewManager.cpp | 6 ++---- src/libtomahawk/database/LocalCollection.cpp | 14 ++++++++++++++ src/libtomahawk/database/LocalCollection.h | 3 +++ src/libtomahawk/network/RemoteCollection.cpp | 7 +++++++ src/libtomahawk/network/RemoteCollection.h | 2 ++ src/libtomahawk/playlist/TreeModel.cpp | 5 +---- src/libtomahawk/resolvers/ScriptCollection.cpp | 14 ++++++++++++++ src/libtomahawk/resolvers/ScriptCollection.h | 1 + src/sourcetree/items/SourceItem.cpp | 2 +- 11 files changed, 62 insertions(+), 10 deletions(-) diff --git a/src/libtomahawk/Collection.cpp b/src/libtomahawk/Collection.cpp index a71c80d96..06d4a98bc 100644 --- a/src/libtomahawk/Collection.cpp +++ b/src/libtomahawk/Collection.cpp @@ -64,10 +64,24 @@ Collection::prettyName() const } +QString +Collection::itemName() const +{ + return tr( "Collection" ); +} + + QIcon Collection::icon() const { - return ImageRegistry::instance()->icon( RESPATH "images/collection.svg" ); + return ImageRegistry::instance()->icon( RESPATH "images/collection.svg" ); +} + + +QString +Collection::emptyText() const +{ + return tr( "This collection is empty." ); } diff --git a/src/libtomahawk/Collection.h b/src/libtomahawk/Collection.h index b041540c6..b3ed5b07e 100644 --- a/src/libtomahawk/Collection.h +++ b/src/libtomahawk/Collection.h @@ -52,8 +52,10 @@ public: virtual QString name() const; virtual QString prettyName() const; + virtual QString itemName() const; virtual QString type() const { return QString(); } virtual QIcon icon() const; + virtual QString emptyText() const; virtual void loadPlaylists() { qDebug() << Q_FUNC_INFO; } virtual void loadAutoPlaylists() { qDebug() << Q_FUNC_INFO; } diff --git a/src/libtomahawk/ViewManager.cpp b/src/libtomahawk/ViewManager.cpp index 58a303056..e1a9e2b18 100644 --- a/src/libtomahawk/ViewManager.cpp +++ b/src/libtomahawk/ViewManager.cpp @@ -278,10 +278,8 @@ ViewManager::show( const Tomahawk::collection_ptr& collection ) TreeModel* model = new TreeModel(); view->setTreeModel( model ); - if ( collection && collection->source()->isLocal() ) - view->setEmptyTip( tr( "After you have scanned your music collection you will find your tracks right here." ) ); - else - view->setEmptyTip( tr( "This collection is empty." ) ); + if ( !collection.isNull() ) + view->setEmptyTip( collection->emptyText() ); model->addCollection( collection ); diff --git a/src/libtomahawk/database/LocalCollection.cpp b/src/libtomahawk/database/LocalCollection.cpp index 05bc5318d..0448aa5f4 100644 --- a/src/libtomahawk/database/LocalCollection.cpp +++ b/src/libtomahawk/database/LocalCollection.cpp @@ -36,6 +36,20 @@ LocalCollection::LocalCollection( const Tomahawk::source_ptr& source, QObject* p } +QString +LocalCollection::prettyName() const +{ + return tr( "My Collection" ); +} + + +QString +LocalCollection::emptyText() const +{ + return tr( "After you have scanned your music collection you will find your tracks right here." ); +} + + Tomahawk::playlist_ptr LocalCollection::bookmarksPlaylist() { diff --git a/src/libtomahawk/database/LocalCollection.h b/src/libtomahawk/database/LocalCollection.h index 80e212a1d..4d4ae8960 100644 --- a/src/libtomahawk/database/LocalCollection.h +++ b/src/libtomahawk/database/LocalCollection.h @@ -30,6 +30,9 @@ class DLLEXPORT LocalCollection : public DatabaseCollection public: explicit LocalCollection( const Tomahawk::source_ptr& source, QObject* parent = 0 ); + virtual QString prettyName() const; + virtual QString emptyText() const; + // gets the playlist used for storing stuff from the web, if it already exists. if the returned playlist // is invalid ask to create and listen to the signal Tomahawk::playlist_ptr bookmarksPlaylist(); diff --git a/src/libtomahawk/network/RemoteCollection.cpp b/src/libtomahawk/network/RemoteCollection.cpp index ec9af8918..0a0ad7c3f 100644 --- a/src/libtomahawk/network/RemoteCollection.cpp +++ b/src/libtomahawk/network/RemoteCollection.cpp @@ -30,6 +30,13 @@ RemoteCollection::RemoteCollection( source_ptr source, QObject* parent ) } +QString +RemoteCollection::prettyName() const +{ + return tr( "Collection of %1" ).arg( source()->friendlyName() ); +} + + // adding/removing is done by dbsyncconnection, and the dbcmd objects that modify // the database will make us emit the appropriate signals (tracksAdded etc.) void diff --git a/src/libtomahawk/network/RemoteCollection.h b/src/libtomahawk/network/RemoteCollection.h index 8b75c9c93..16ef70f7e 100644 --- a/src/libtomahawk/network/RemoteCollection.h +++ b/src/libtomahawk/network/RemoteCollection.h @@ -37,6 +37,8 @@ public: qDebug() << Q_FUNC_INFO; } + virtual QString prettyName() const; + public slots: virtual void addTracks( const QList<QVariant>& newitems ); virtual void removeTracks( const QDir& dir ); diff --git a/src/libtomahawk/playlist/TreeModel.cpp b/src/libtomahawk/playlist/TreeModel.cpp index d8e0a5192..2c6ce8cb1 100644 --- a/src/libtomahawk/playlist/TreeModel.cpp +++ b/src/libtomahawk/playlist/TreeModel.cpp @@ -262,10 +262,7 @@ TreeModel::addCollection( const collection_ptr& collection ) if ( !collection->source()->avatar().isNull() ) setIcon( collection->source()->avatar( TomahawkUtils::RoundedCorners ) ); - if ( collection->source()->isLocal() ) - setTitle( tr( "My Collection" ) ); - else - setTitle( tr( "Collection of %1" ).arg( collection->source()->friendlyName() ) ); + setTitle( collection->prettyName() ); } diff --git a/src/libtomahawk/resolvers/ScriptCollection.cpp b/src/libtomahawk/resolvers/ScriptCollection.cpp index ad5283565..c57f5b9c7 100644 --- a/src/libtomahawk/resolvers/ScriptCollection.cpp +++ b/src/libtomahawk/resolvers/ScriptCollection.cpp @@ -47,6 +47,20 @@ ScriptCollection::~ScriptCollection() QString ScriptCollection::prettyName() const +{ + if ( source()->isLocal() ) + return tr( "My %1 Collection", + "Name of a collection based on a resolver, e.g. My Subsonic Collection" ) + .arg( m_resolver->name() ); + return tr( "%1 Collection of %2", + "Name of a collection based on a resolver, e.g. Subsonic Collection of Some Dude" ) + .arg( m_resolver->name() ) + .arg( source()->friendlyName() ); +} + + +QString +ScriptCollection::itemName() const { return tr( "%1 Collection", "Name of a collection based on a resolver, e.g. Subsonic Collection" ) diff --git a/src/libtomahawk/resolvers/ScriptCollection.h b/src/libtomahawk/resolvers/ScriptCollection.h index e8f846837..53b9a6ca2 100644 --- a/src/libtomahawk/resolvers/ScriptCollection.h +++ b/src/libtomahawk/resolvers/ScriptCollection.h @@ -41,6 +41,7 @@ public: virtual ~ScriptCollection(); virtual QString prettyName() const; + virtual QString itemName() const; virtual QString type() const { return "scriptcollection"; } virtual QIcon icon() const; diff --git a/src/sourcetree/items/SourceItem.cpp b/src/sourcetree/items/SourceItem.cpp index f3519b61e..16f544f74 100644 --- a/src/sourcetree/items/SourceItem.cpp +++ b/src/sourcetree/items/SourceItem.cpp @@ -371,7 +371,7 @@ SourceItem::performAddCollectionItem( const collection_ptr& collection ) { GenericPageItem* item = new GenericPageItem( model(), this, - collection->prettyName(), + collection->itemName(), collection->icon(), boost::bind( &SourceItem::collectionClicked, this, collection ), boost::bind( &SourceItem::getCollectionPage, this, collection ) );