From cd0e9dcc2d12745d0f30f9b397ce74db4325693a Mon Sep 17 00:00:00 2001 From: Teo Mrnjavac Date: Fri, 3 Aug 2012 21:46:23 +0200 Subject: [PATCH] Pulled the Network menu outside the main menu bar. This prepares the way for the compressed menu feature. --- src/TomahawkWindow.cpp | 44 +++++++++++++++++++++++++++++++++--------- src/TomahawkWindow.h | 5 +++++ src/TomahawkWindow.ui | 8 -------- 3 files changed, 40 insertions(+), 17 deletions(-) diff --git a/src/TomahawkWindow.cpp b/src/TomahawkWindow.cpp index 7949baa62..8ad0974d9 100644 --- a/src/TomahawkWindow.cpp +++ b/src/TomahawkWindow.cpp @@ -35,6 +35,7 @@ #include #include #include +#include #include "accounts/AccountManager.h" #include "sourcetree/SourceTreeView.h" @@ -116,6 +117,7 @@ TomahawkWindow::TomahawkWindow( QWidget* parent ) ui->centralWidget->setContentsMargins( 0, 0, 0, 0 ); TomahawkUtils::unmarginLayout( ui->centralWidget->layout() ); + setupAccountsMenu(); setupToolBar(); setupSideBar(); statusBar()->addPermanentWidget( m_audioControls, 1 ); @@ -235,9 +237,9 @@ TomahawkWindow::setupToolBar() m_forwardAction = toolbar->addAction( QIcon( RESPATH "images/forward.png" ), tr( "Forward" ), ViewManager::instance(), SLOT( historyForward() ) ); m_forwardAction->setToolTip( tr( "Go forward one page" ) ); - QWidget* spacer = new QWidget( this ); - spacer->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Preferred ); - toolbar->addWidget( spacer ); + QWidget* leftSpacer = new QWidget( this ); + leftSpacer->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Preferred ); + toolbar->addWidget( leftSpacer ); m_searchWidget = new QSearchField( this ); m_searchWidget->setPlaceholderText( tr( "Global Search..." ) ); @@ -246,6 +248,20 @@ TomahawkWindow::setupToolBar() connect( m_searchWidget, SIGNAL( returnPressed() ), this, SLOT( onFilterEdited() ) ); toolbar->addWidget( m_searchWidget ); + + QWidget* rightSpacer = new QWidget( this ); + rightSpacer->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Preferred ); + toolbar->addWidget( rightSpacer ); + + QToolButton *accountsMenuButton = new QToolButton( toolbar ); + accountsMenuButton->setIcon( QIcon( RESPATH "images/account-settings.png" ) ); + accountsMenuButton->setText( tr( "&Network" ) ); + accountsMenuButton->setMenu( m_menuAccounts ); + //TODO: when we decide if compressed menus go left or right, if they go right, make + // them pop up *inside* the main window. + accountsMenuButton->setToolButtonStyle( Qt::ToolButtonIconOnly ); + accountsMenuButton->setPopupMode( QToolButton::InstantPopup ); + toolbar->addWidget( accountsMenuButton ); } @@ -418,7 +434,7 @@ TomahawkWindow::setupSignals() connect( ui->actionPreferences, SIGNAL( triggered() ), SLOT( showSettingsDialog() ) ); connect( ui->actionDiagnostics, SIGNAL( triggered() ), SLOT( showDiagnosticsDialog() ) ); connect( ui->actionLegalInfo, SIGNAL( triggered() ), SLOT( legalInfo() ) ); - connect( ui->actionToggleConnect, SIGNAL( triggered() ), AccountManager::instance(), SLOT( toggleAccountsConnected() ) ); + connect( m_actionToggleConnect, SIGNAL( triggered() ), AccountManager::instance(), SLOT( toggleAccountsConnected() ) ); connect( ui->actionUpdateCollection, SIGNAL( triggered() ), SLOT( updateCollectionManually() ) ); connect( ui->actionRescanCollection, SIGNAL( triggered() ), SLOT( rescanCollectionManually() ) ); connect( ui->actionLoadXSPF, SIGNAL( triggered() ), SLOT( loadSpiff() )); @@ -460,6 +476,16 @@ TomahawkWindow::setupSignals() connect( ViewManager::instance(), SIGNAL( historyForwardAvailable( bool ) ), SLOT( onHistoryForwardAvailable( bool ) ) ); } +void +TomahawkWindow::setupAccountsMenu() +{ + m_menuAccounts = new QMenu( this ); + m_actionToggleConnect = new QAction( tr( "Go &Online" ), + m_menuAccounts ); + m_menuAccounts->addAction( m_actionToggleConnect ); + m_menuAccounts->addSeparator(); +} + void TomahawkWindow::changeEvent( QEvent* e ) @@ -771,18 +797,18 @@ TomahawkWindow::addPeerManually() void TomahawkWindow::pluginMenuAdded( QMenu* menu ) { - ui->menuNetwork->addMenu( menu ); + m_menuAccounts->addMenu( menu ); } void TomahawkWindow::pluginMenuRemoved( QMenu* menu ) { - foreach ( QAction* action, ui->menuNetwork->actions() ) + foreach ( QAction* action, m_menuAccounts->actions() ) { if ( action->menu() == menu ) { - ui->menuNetwork->removeAction( action ); + m_menuAccounts->removeAction( action ); return; } } @@ -1074,14 +1100,14 @@ TomahawkWindow::onPlaybackLoading( const Tomahawk::result_ptr& result ) void TomahawkWindow::onAccountConnected() { - ui->actionToggleConnect->setText( tr( "Go &offline" ) ); + m_actionToggleConnect->setText( tr( "Go &offline" ) ); } void TomahawkWindow::onAccountDisconnected() { - ui->actionToggleConnect->setText( tr( "Go &online" ) ); + m_actionToggleConnect->setText( tr( "Go &online" ) ); } diff --git a/src/TomahawkWindow.h b/src/TomahawkWindow.h index 7ee64cc5d..33155e311 100644 --- a/src/TomahawkWindow.h +++ b/src/TomahawkWindow.h @@ -154,6 +154,7 @@ private: void applyPlatformTweaks(); void setupSignals(); + void setupAccountsMenu(); //must be called before setupToolBar void setupToolBar(); void setupSideBar(); void setupUpdateCheck(); @@ -177,6 +178,10 @@ private: AnimatedSplitter* m_sidebar; JobStatusSortModel* m_jobsModel; + // Menus and menu actions: Accounts menu + QMenu *m_menuAccounts; + QAction *m_actionToggleConnect; + QAction* m_backAction; QAction* m_forwardAction; diff --git a/src/TomahawkWindow.ui b/src/TomahawkWindow.ui index 8b5207a00..786516cba 100644 --- a/src/TomahawkWindow.ui +++ b/src/TomahawkWindow.ui @@ -95,13 +95,6 @@ - - - &Network - - - - &Window @@ -118,7 +111,6 @@ -