diff --git a/src/libtomahawk/ViewManager.cpp b/src/libtomahawk/ViewManager.cpp index 17de60b69..0521c938a 100644 --- a/src/libtomahawk/ViewManager.cpp +++ b/src/libtomahawk/ViewManager.cpp @@ -870,10 +870,10 @@ ViewManager::inboxWidget() const ViewPage* ViewManager::dynamicPageWidget( const QString& pageName ) const { - if( m_dynamicPages.contains( pageName ) ) + if ( m_dynamicPages.contains( pageName ) ) return m_dynamicPages.value( pageName ); - if( m_dynamicPagePlugins.contains( pageName ) ) + if ( m_dynamicPagePlugins.contains( pageName ) ) return m_dynamicPagePlugins.value( pageName ).data(); return 0; @@ -885,53 +885,51 @@ ViewManager::addDynamicPage( Tomahawk::ViewPagePlugin* viewPage, const QString& { const QString pageId = !pageName.isEmpty() ? pageName : viewPage->defaultName(); - tLog() << Q_FUNC_INFO << "Trying to add " << pageId; + tLog() << Q_FUNC_INFO << "Trying to add" << pageId; - if( m_dynamicPages.contains( pageId ) || m_dynamicPagePlugins.contains( pageId ) ) + if ( m_dynamicPages.contains( pageId ) || m_dynamicPagePlugins.contains( pageId ) ) { - tLog() << "Not adding a second ViewPage with name " << pageName; + tLog() << "Not adding a second ViewPage with name" << pageName; Q_ASSERT( false ); } m_dynamicPagePlugins.insert( pageId, viewPage ); - - // HACK: rather emit the viewpage itself ... - emit viewPageAdded( pageId, viewPage->title(), viewPage->pixmap(), viewPage->sortValue() ); + emit viewPageAdded( pageId, viewPage, viewPage->sortValue() ); } -void +/*void ViewManager::addDynamicPage( const QString& pageName, const QString& text, const QIcon& icon, boost::function instanceLoader, int sortValue ) { - tLog() << Q_FUNC_INFO << "Trying to add " << pageName; + tLog() << Q_FUNC_INFO << "Trying to add" << pageName; - if( m_dynamicPages.contains( pageName ) || m_dynamicPagePlugins.contains( pageName ) ) + if ( m_dynamicPages.contains( pageName ) || m_dynamicPagePlugins.contains( pageName ) ) { - tLog() << "Not adding a second ViewPage with name " << pageName; + tLog() << "Not adding a second ViewPage with name" << pageName; Q_ASSERT( false ); } m_dynamicPagesInstanceLoaders.insert( pageName, instanceLoader ); emit viewPageAdded( pageName, text, icon, sortValue ); -} +}*/ ViewPage* ViewManager::showDynamicPage( const QString& pageName ) { - tLog() << Q_FUNC_INFO << "pageName: " << pageName; + tLog() << Q_FUNC_INFO << "pageName:" << pageName; - if( !m_dynamicPages.contains( pageName ) && !m_dynamicPagePlugins.contains( pageName ) ) + if ( !m_dynamicPages.contains( pageName ) && !m_dynamicPagePlugins.contains( pageName ) ) { - if( !m_dynamicPagesInstanceLoaders.contains( pageName ) ) + if ( !m_dynamicPagesInstanceLoaders.contains( pageName ) ) { tLog() << "Trying to show a page that does not exist and does not have a registered loader"; - Q_ASSERT(false); + Q_ASSERT( false ); return 0; } ViewPage* viewPage = m_dynamicPagesInstanceLoaders.value( pageName )(); - Q_ASSERT(viewPage); + Q_ASSERT( viewPage ); m_dynamicPages.insert( pageName, viewPage ); m_dynamicPagesInstanceLoaders.remove( pageName ); @@ -947,6 +945,7 @@ ViewManager::superCollectionView() const return m_superCollectionView; } + InboxModel* ViewManager::inboxModel() { diff --git a/src/libtomahawk/ViewManager.h b/src/libtomahawk/ViewManager.h index b6a301778..682058988 100644 --- a/src/libtomahawk/ViewManager.h +++ b/src/libtomahawk/ViewManager.h @@ -135,7 +135,7 @@ signals: void historyBackAvailable( bool avail ); void historyForwardAvailable( bool avail ); - void viewPageAdded( const QString& pageName, const QString& text, const QIcon& icon, int sortValue ); + void viewPageAdded( const QString& pageName, Tomahawk::ViewPage* page, int sortValue ); public slots: Tomahawk::ViewPage* showSuperCollection(); @@ -144,7 +144,7 @@ public slots: Tomahawk::ViewPage* showRecentPlaysPage(); Tomahawk::ViewPage* showInboxPage(); - void addDynamicPage( const QString& pageName, const QString& text, const QIcon& icon, boost::function< Tomahawk::ViewPage*() > instanceLoader, int sortValue = 0 ); +// void addDynamicPage( const QString& pageName, const QString& text, const QIcon& icon, boost::function< Tomahawk::ViewPage*() > instanceLoader, int sortValue = 0 ); Tomahawk::ViewPage* showDynamicPage( const QString& pageName ); void showCurrentTrack(); diff --git a/src/tomahawk/sourcetree/SourcesModel.cpp b/src/tomahawk/sourcetree/SourcesModel.cpp index 09af4c451..11b4fbfa5 100644 --- a/src/tomahawk/sourcetree/SourcesModel.cpp +++ b/src/tomahawk/sourcetree/SourcesModel.cpp @@ -20,8 +20,6 @@ #include "sourcetree/SourcesModel.h" -#include "../../viewpages/dashboard/Dashboard.h" - #include "sourcetree/items/ScriptCollectionItem.h" #include "sourcetree/items/SourceTreeItem.h" #include "sourcetree/items/SourceItem.h" @@ -62,9 +60,10 @@ SourcesModel::SourcesModel( QObject* parent ) { m_rootItem = new SourceTreeItem( this, 0, Invalid ); - connect( ViewManager::instance(), SIGNAL( viewPageAdded( QString, QString, QIcon, int ) ), SLOT( appendPageItem( QString, QString, QIcon, int ) ) ); - appendGroups(); + connect( ViewManager::instance(), SIGNAL( viewPageAdded( QString, Tomahawk::ViewPage*, int ) ), + SLOT( appendPageItem( QString, Tomahawk::ViewPage*, int ) ) ); + appendGroups(); onSourcesAdded( SourceList::instance()->sources() ); connect( SourceList::instance(), SIGNAL( sourceAdded( Tomahawk::source_ptr ) ), @@ -72,7 +71,7 @@ SourcesModel::SourcesModel( QObject* parent ) connect( SourceList::instance(), SIGNAL( sourceRemoved( Tomahawk::source_ptr ) ), SLOT( onSourceRemoved( Tomahawk::source_ptr ) ) ); connect( ViewManager::instance(), SIGNAL( viewPageActivated( Tomahawk::ViewPage* ) ), - this, SLOT( viewPageActivated( Tomahawk::ViewPage* ) ) ); + SLOT( viewPageActivated( Tomahawk::ViewPage* ) ) ); foreach ( const collection_ptr& c, SourceList::instance()->scriptCollections() ) { @@ -304,7 +303,6 @@ SourcesModel::appendGroups() // new SourceTreeItem( this, m_rootItem, SourcesModel::Divider, 2 ); m_myMusicGroup = new GroupItem( this, m_rootItem, tr( "My Music" ), 3 ); - InboxItem* inbox = new InboxItem( this, m_browse ); inbox->setSortValue( 3 ); @@ -333,7 +331,6 @@ SourcesModel::appendGroups() m_collectionsGroup = new GroupItem( this, m_rootItem, tr( "Friends" ), 4 ); - m_cloudGroup = new GroupItem( this, m_rootItem, tr( "Cloud" ), 5 ); endInsertRows(); @@ -341,22 +338,20 @@ SourcesModel::appendGroups() QHash< QString, ViewPagePlugin* > plugins = Tomahawk::Utils::PluginLoader( "viewpage" ).loadPlugins< ViewPagePlugin >(); foreach ( ViewPagePlugin* plugin, plugins.values() ) { - ViewManager::instance()->addDynamicPage( plugin ); } - - ViewManager::instance()->showDynamicPage( Tomahawk::Widgets::DASHBOARD_VIEWPAGE_NAME ); } + void -SourcesModel::appendPageItem( const QString& name, const QString& text, const QIcon& icon, int sortValue ) +SourcesModel::appendPageItem( const QString& name, ViewPage* page, int sortValue ) { QModelIndex parentIndex = indexFromItem( m_browse ); beginInsertRows( parentIndex, rowCount( parentIndex ), rowCount( parentIndex ) ); - GenericPageItem* pageItem = new GenericPageItem( this, m_browse, text, icon, + GenericPageItem* pageItem = new GenericPageItem( this, m_browse, page->title(), page->pixmap(), boost::bind( &ViewManager::showDynamicPage, ViewManager::instance(), name ), boost::bind( &ViewManager::dynamicPageWidget, ViewManager::instance(), name ) ); - if( sortValue ) + if ( sortValue ) { pageItem->setSortValue( sortValue ); } @@ -366,6 +361,8 @@ SourcesModel::appendPageItem( const QString& name, const QString& text, const QI } endInsertRows(); + + linkSourceItemToPage( pageItem, page ); } @@ -439,7 +436,7 @@ SourcesModel::viewPageActivated( Tomahawk::ViewPage* page ) if ( m_sourceTreeLinks.contains( page ) ) { Q_ASSERT( m_sourceTreeLinks[ page ] ); -// qDebug() << "Got view page activated for item:" << m_sourceTreeLinks[ page ]->text(); + tDebug() << "Got view page activated for item:" << m_sourceTreeLinks[ page ]->text(); QModelIndex idx = indexFromItem( m_sourceTreeLinks[ page ] ); if ( !idx.isValid() ) diff --git a/src/tomahawk/sourcetree/SourcesModel.h b/src/tomahawk/sourcetree/SourcesModel.h index 45bc69183..2d61b6bbb 100644 --- a/src/tomahawk/sourcetree/SourcesModel.h +++ b/src/tomahawk/sourcetree/SourcesModel.h @@ -147,9 +147,9 @@ private slots: void onWidgetDestroyed( QWidget* w ); /* - * pageIcon and pageTitle are visible in the source tree, pageName is the internal name in the ViewManager + * name is the internal name in the ViewManager */ - void appendPageItem( const QString& name, const QString& text, const QIcon& icon, int sortValue ); + void appendPageItem( const QString& name, Tomahawk::ViewPage* page, int sortValue ); private: SourceTreeItem* itemFromIndex( const QModelIndex& idx ) const;