diff --git a/src/libtomahawk/ViewManager.cpp b/src/libtomahawk/ViewManager.cpp index 40b29bc5f..0d05d9f9a 100644 --- a/src/libtomahawk/ViewManager.cpp +++ b/src/libtomahawk/ViewManager.cpp @@ -908,30 +908,29 @@ 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::dynamicPageWidget( const QString& pageName ) const { - return m_dynamicPages.value( pageName ); + if( m_dynamicPages.contains( pageName ) ) + return m_dynamicPages.value( pageName ); + + return 0; +} + + +void +ViewManager::addDynamicPage(const QString& pageName, ViewPage* page ) +{ + tLog() << Q_FUNC_INFO << "Trying to add " << pageName; + + if( dynamicPageWidget( pageName ) ) + { + tLog() << "Not adding a second ViewPage with name " << pageName; + Q_ASSERT( false ); + } + + m_dynamicPages.insert( pageName, page ); + emit viewPageAdded( pageName ); } @@ -940,12 +939,6 @@ ViewManager::showDynamicPage( const QString& pageName ) { tLog() << Q_FUNC_INFO << "pageName: " << pageName; - //HACK: this should be initialized somewhere else - if ( !dynamicPageWidget( pageName ) ) - { - m_dynamicPages.insert( pageName, new StubWidget( m_widget ) ); - } - return show( dynamicPageWidget( pageName ) ); } diff --git a/src/libtomahawk/ViewManager.h b/src/libtomahawk/ViewManager.h index 2a9b2e1e4..c8f1ef9d7 100644 --- a/src/libtomahawk/ViewManager.h +++ b/src/libtomahawk/ViewManager.h @@ -138,6 +138,8 @@ signals: void historyBackAvailable( bool avail ); void historyForwardAvailable( bool avail ); + void viewPageAdded( const QString& pageName ); + public slots: Tomahawk::ViewPage* showSuperCollection(); Tomahawk::ViewPage* showDashboard(); @@ -147,6 +149,7 @@ public slots: Tomahawk::ViewPage* showInboxPage(); Tomahawk::ViewPage* showNetworkActivityPage(); + void addDynamicPage( const QString& pageName, Tomahawk::ViewPage* page ); Tomahawk::ViewPage* showDynamicPage( const QString& pageName ); void showCurrentTrack();