1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-08-11 16:44:05 +02:00

Use QList < ViewPage* > in ViewManager to store simple view pages

This commit is contained in:
Dominik Schmidt
2013-06-16 17:22:30 +02:00
committed by Michael Zanetti
parent 4b29d34278
commit cb5916b42a
3 changed files with 19 additions and 12 deletions

View File

@@ -90,7 +90,6 @@ ViewManager::ViewManager( QObject* parent )
, m_radioView( 0 ) , m_radioView( 0 )
, m_networkActivityWidget( 0 ) , m_networkActivityWidget( 0 )
, m_currentPage( 0 ) , m_currentPage( 0 )
, m_stubWidget( 0 )
, m_loaded( false ) , m_loaded( false )
{ {
s_instance = this; s_instance = this;
@@ -946,20 +945,26 @@ private:
QWidget* m_widget; QWidget* m_widget;
}; };
ViewPage* ViewManager::stubWidget() const
ViewPage*
ViewManager::dynamicPageWidget( const QString& pageName ) const
{ {
return m_stubWidget; return m_dynamicPages.value( pageName );
} }
ViewPage* ViewManager::showStub() ViewPage*
ViewManager::showDynamicPage( const QString& pageName )
{ {
if ( !m_stubWidget ) tLog() << Q_FUNC_INFO << "pageName: " << pageName;
//HACK: this should be initialized somewhere else
if ( !dynamicPageWidget( pageName ) )
{ {
m_stubWidget = new StubWidget( m_widget ); m_dynamicPages.insert( pageName, new StubWidget( m_widget ) );
} }
return show( m_stubWidget ); return show( dynamicPageWidget( pageName ) );
} }

View File

@@ -98,7 +98,8 @@ public:
Tomahawk::ViewPage* superCollectionView() const; Tomahawk::ViewPage* superCollectionView() const;
Tomahawk::ViewPage* inboxWidget() const; Tomahawk::ViewPage* inboxWidget() const;
Tomahawk::ViewPage* networkActivityWidget() const; Tomahawk::ViewPage* networkActivityWidget() const;
Tomahawk::ViewPage* stubWidget() const;
Tomahawk::ViewPage* dynamicPageWidget( const QString& pageName ) const;
InboxModel* inboxModel(); InboxModel* inboxModel();
@@ -147,7 +148,7 @@ public slots:
Tomahawk::ViewPage* showInboxPage(); Tomahawk::ViewPage* showInboxPage();
Tomahawk::ViewPage* showNetworkActivityPage(); Tomahawk::ViewPage* showNetworkActivityPage();
Tomahawk::ViewPage* showStub(); Tomahawk::ViewPage* showDynamicPage( const QString& pageName );
void showCurrentTrack(); void showCurrentTrack();
@@ -205,7 +206,7 @@ private:
InboxModel* m_inboxModel; InboxModel* m_inboxModel;
NetworkActivityWidget* m_networkActivityWidget; NetworkActivityWidget* m_networkActivityWidget;
StubWidget* m_stubWidget; QHash< QString, Tomahawk::ViewPage* > m_dynamicPages;
QList< Tomahawk::collection_ptr > m_superCollections; QList< Tomahawk::collection_ptr > m_superCollections;

View File

@@ -339,8 +339,9 @@ SourcesModel::appendGroups()
GenericPageItem* stub = new GenericPageItem( this, browse, tr( "Stub page" ), ImageRegistry::instance()->icon( RESPATH "images/new-releases.svg" ), 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::showDynamicPage, ViewManager::instance(), QString( "stub" )),
boost::bind( &ViewManager::stubWidget, ViewManager::instance() ) ); boost::bind( &ViewManager::dynamicPageWidget, ViewManager::instance(), QString( "stub" ) ) );
stub->setSortValue( 7 ); stub->setSortValue( 7 );