From 4b29d34278aed41ca1e3ec2f3bf204e5e02d4339 Mon Sep 17 00:00:00 2001 From: Dominik Schmidt Date: Sun, 16 Jun 2013 16:50:11 +0200 Subject: [PATCH] Add stub page to pull out again --- src/libtomahawk/ViewManager.cpp | 38 ++++++++++++++++++++++++ src/libtomahawk/ViewManager.h | 7 +++++ src/tomahawk/sourcetree/SourcesModel.cpp | 8 +++++ 3 files changed, 53 insertions(+) diff --git a/src/libtomahawk/ViewManager.cpp b/src/libtomahawk/ViewManager.cpp index 0fd93eed3..a84769cfb 100644 --- a/src/libtomahawk/ViewManager.cpp +++ b/src/libtomahawk/ViewManager.cpp @@ -61,6 +61,7 @@ #include "utils/Logger.h" #include +#include #include @@ -89,6 +90,7 @@ ViewManager::ViewManager( QObject* parent ) , m_radioView( 0 ) , m_networkActivityWidget( 0 ) , m_currentPage( 0 ) + , m_stubWidget( 0 ) , m_loaded( false ) { s_instance = this; @@ -925,6 +927,42 @@ ViewPage *ViewManager::networkActivityWidget() const } +class StubWidget : public ViewPage +{ +public: + StubWidget(QObject* parent) +// : ViewPage(parent) + { + m_widget = (QWidget*) (new QLabel("Foobar")); + } + + virtual QWidget* widget() { return m_widget; } + virtual Tomahawk::playlistinterface_ptr playlistInterface() const { return Tomahawk::playlistinterface_ptr(); } + virtual QString title() const { return QString("Great title"); } + virtual QString description() const { return QString("Great description"); } + virtual bool jumpToCurrentTrack() { return false; } + +private: + QWidget* m_widget; +}; + +ViewPage* ViewManager::stubWidget() const +{ + return m_stubWidget; +} + + +ViewPage* ViewManager::showStub() +{ + if ( !m_stubWidget ) + { + m_stubWidget = new StubWidget( m_widget ); + } + + return show( m_stubWidget ); +} + + Tomahawk::ViewPage* ViewManager::superCollectionView() const { diff --git a/src/libtomahawk/ViewManager.h b/src/libtomahawk/ViewManager.h index 34a04a847..8dd80c06c 100644 --- a/src/libtomahawk/ViewManager.h +++ b/src/libtomahawk/ViewManager.h @@ -58,6 +58,7 @@ class WhatsHotWidget; class QPushButton; class InboxModel; class NetworkActivityWidget; +class StubWidget; namespace Tomahawk { @@ -97,6 +98,7 @@ public: Tomahawk::ViewPage* superCollectionView() const; Tomahawk::ViewPage* inboxWidget() const; Tomahawk::ViewPage* networkActivityWidget() const; + Tomahawk::ViewPage* stubWidget() const; InboxModel* inboxModel(); @@ -144,6 +146,9 @@ public slots: Tomahawk::ViewPage* showRecentPlaysPage(); Tomahawk::ViewPage* showInboxPage(); Tomahawk::ViewPage* showNetworkActivityPage(); + + Tomahawk::ViewPage* showStub(); + void showCurrentTrack(); // Returns the shown viewpage @@ -200,6 +205,8 @@ private: InboxModel* m_inboxModel; NetworkActivityWidget* m_networkActivityWidget; + StubWidget* m_stubWidget; + QList< Tomahawk::collection_ptr > m_superCollections; QHash< Tomahawk::dynplaylist_ptr, QPointer > m_dynamicWidgets; diff --git a/src/tomahawk/sourcetree/SourcesModel.cpp b/src/tomahawk/sourcetree/SourcesModel.cpp index f6a6549fb..958aa2f9e 100644 --- a/src/tomahawk/sourcetree/SourcesModel.cpp +++ b/src/tomahawk/sourcetree/SourcesModel.cpp @@ -337,6 +337,14 @@ SourcesModel::appendGroups() boost::bind( &ViewManager::newReleasesWidget, ViewManager::instance() ) ); newReleases->setSortValue( 6 ); + + GenericPageItem* stub = new GenericPageItem( this, browse, tr( "Stub page" ), ImageRegistry::instance()->icon( RESPATH "images/new-releases.svg" ), + boost::bind( &ViewManager::showStub, ViewManager::instance() ), + boost::bind( &ViewManager::stubWidget, ViewManager::instance() ) ); + stub->setSortValue( 7 ); + + + InboxItem* inbox = new InboxItem( this, browse ); inbox->setSortValue( 7 );