mirror of
https://github.com/tomahawk-player/tomahawk.git
synced 2025-08-09 07:36:48 +02:00
The accounts menu is now a bunch of QToolButtons in the toolbar.
Implemented a toolbar balancing method to fix the issue with the (centered) search widget moving around. Also made the go online/go offline strings more consistent.
This commit is contained in:
@@ -57,6 +57,7 @@
|
|||||||
#include "jobview/JobStatusModel.h"
|
#include "jobview/JobStatusModel.h"
|
||||||
#include "jobview/ErrorStatusMessage.h"
|
#include "jobview/ErrorStatusMessage.h"
|
||||||
#include "jobview/JobStatusModel.h"
|
#include "jobview/JobStatusModel.h"
|
||||||
|
#include "sip/SipPlugin.h"
|
||||||
|
|
||||||
#include "Playlist.h"
|
#include "Playlist.h"
|
||||||
#include "Query.h"
|
#include "Query.h"
|
||||||
@@ -117,7 +118,6 @@ TomahawkWindow::TomahawkWindow( QWidget* parent )
|
|||||||
TomahawkUtils::unmarginLayout( ui->centralWidget->layout() );
|
TomahawkUtils::unmarginLayout( ui->centralWidget->layout() );
|
||||||
|
|
||||||
setupMenuBar();
|
setupMenuBar();
|
||||||
setupAccountsMenu();
|
|
||||||
setupToolBar();
|
setupToolBar();
|
||||||
setupSideBar();
|
setupSideBar();
|
||||||
statusBar()->addPermanentWidget( m_audioControls, 1 );
|
statusBar()->addPermanentWidget( m_audioControls, 1 );
|
||||||
@@ -229,53 +229,56 @@ TomahawkWindow::applyPlatformTweaks()
|
|||||||
void
|
void
|
||||||
TomahawkWindow::setupToolBar()
|
TomahawkWindow::setupToolBar()
|
||||||
{
|
{
|
||||||
QToolBar *toolbar = addToolBar( "TomahawkToolbar" );
|
m_toolbar = addToolBar( "TomahawkToolbar" );
|
||||||
toolbar->setObjectName( "TomahawkToolbar" );
|
m_toolbar->setObjectName( "TomahawkToolbar" );
|
||||||
toolbar->setMovable( false );
|
m_toolbar->setMovable( false );
|
||||||
toolbar->setFloatable( false );
|
m_toolbar->setFloatable( false );
|
||||||
toolbar->setIconSize( QSize( 22, 22 ) );
|
m_toolbar->setIconSize( QSize( 22, 22 ) );
|
||||||
toolbar->setToolButtonStyle( Qt::ToolButtonIconOnly );
|
m_toolbar->setToolButtonStyle( Qt::ToolButtonIconOnly );
|
||||||
toolbar->setStyleSheet( "border-bottom: 0px" );
|
m_toolbar->setStyleSheet( "border-bottom: 0px" );
|
||||||
|
|
||||||
#ifdef Q_OS_MAC
|
#ifdef Q_OS_MAC
|
||||||
toolbar->installEventFilter( new WidgetDragFilter( toolbar ) );
|
m_toolbar->installEventFilter( new WidgetDragFilter( m_toolbar ) );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
m_backAction = toolbar->addAction( QIcon( RESPATH "images/back.png" ), tr( "Back" ), ViewManager::instance(), SLOT( historyBack() ) );
|
m_backAction = m_toolbar->addAction( QIcon( RESPATH "images/back.png" ), tr( "Back" ), ViewManager::instance(), SLOT( historyBack() ) );
|
||||||
m_backAction->setToolTip( tr( "Go back one page" ) );
|
m_backAction->setToolTip( tr( "Go back one page" ) );
|
||||||
m_forwardAction = toolbar->addAction( QIcon( RESPATH "images/forward.png" ), tr( "Forward" ), ViewManager::instance(), SLOT( historyForward() ) );
|
m_forwardAction = m_toolbar->addAction( QIcon( RESPATH "images/forward.png" ), tr( "Forward" ), ViewManager::instance(), SLOT( historyForward() ) );
|
||||||
m_forwardAction->setToolTip( tr( "Go forward one page" ) );
|
m_forwardAction->setToolTip( tr( "Go forward one page" ) );
|
||||||
|
|
||||||
QWidget* leftSpacer = new QWidget( this );
|
m_toolbarLeftBalancer = new QWidget( this );
|
||||||
leftSpacer->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Preferred );
|
m_toolbarLeftBalancer->setSizePolicy( QSizePolicy::Fixed, QSizePolicy::Preferred );
|
||||||
toolbar->addWidget( leftSpacer );
|
m_toolbarLeftBalancer->setFixedWidth( 0 );
|
||||||
|
m_toolbar->addWidget( m_toolbarLeftBalancer )->setProperty( "kind", QString( "spacer" ) );
|
||||||
|
|
||||||
|
QWidget* toolbarLeftSpacer = new QWidget( this );
|
||||||
|
toolbarLeftSpacer->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Preferred );
|
||||||
|
m_toolbar->addWidget( toolbarLeftSpacer )->setProperty( "kind", QString( "spacer" ) );
|
||||||
|
|
||||||
m_searchWidget = new QSearchField( this );
|
m_searchWidget = new QSearchField( this );
|
||||||
m_searchWidget->setPlaceholderText( tr( "Global Search..." ) );
|
m_searchWidget->setPlaceholderText( tr( "Global Search..." ) );
|
||||||
m_searchWidget->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Preferred );
|
m_searchWidget->setSizePolicy( QSizePolicy::Fixed, QSizePolicy::Preferred );
|
||||||
m_searchWidget->setMaximumWidth( 340 );
|
m_searchWidget->setFixedWidth( 340 );
|
||||||
connect( m_searchWidget, SIGNAL( returnPressed() ), this, SLOT( onFilterEdited() ) );
|
connect( m_searchWidget, SIGNAL( returnPressed() ), this, SLOT( onFilterEdited() ) );
|
||||||
|
|
||||||
toolbar->addWidget( m_searchWidget );
|
m_toolbar->addWidget( m_searchWidget )->setProperty( "kind", QString( "search" ) );
|
||||||
|
|
||||||
QWidget* rightSpacer = new QWidget( this );
|
QWidget* rightSpacer = new QWidget( this );
|
||||||
rightSpacer->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Preferred );
|
rightSpacer->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Preferred );
|
||||||
toolbar->addWidget( rightSpacer );
|
m_toolbar->addWidget( rightSpacer )->setProperty( "kind", QString( "spacer" ) );
|
||||||
|
|
||||||
ContainedMenuButton *accountsMenuButton = new ContainedMenuButton( toolbar );
|
m_toolbarRightBalancer = new QWidget( this );
|
||||||
accountsMenuButton->setIcon( QIcon( RESPATH "images/account-settings.png" ) );
|
m_toolbarRightBalancer->setSizePolicy( QSizePolicy::Fixed, QSizePolicy::Preferred );
|
||||||
accountsMenuButton->setText( tr( "&Network" ) );
|
m_toolbarRightBalancer->setFixedWidth( 0 );
|
||||||
accountsMenuButton->setMenu( m_menuAccounts );
|
m_toolbar->addWidget( m_toolbarRightBalancer )->setProperty( "kind", QString( "spacer" ) );
|
||||||
accountsMenuButton->setToolButtonStyle( Qt::ToolButtonIconOnly );
|
|
||||||
toolbar->addWidget( accountsMenuButton );
|
|
||||||
|
|
||||||
#ifndef Q_OS_MAC
|
#ifndef Q_OS_MAC
|
||||||
ContainedMenuButton *compactMenuButton = new ContainedMenuButton( toolbar );
|
ContainedMenuButton* compactMenuButton = new ContainedMenuButton( m_toolbar );
|
||||||
compactMenuButton->setIcon( QIcon( RESPATH "images/configure.png" ) );
|
compactMenuButton->setIcon( QIcon( RESPATH "images/configure.png" ) );
|
||||||
compactMenuButton->setText( tr( "&Main Menu" ) );
|
compactMenuButton->setText( tr( "&Main Menu" ) );
|
||||||
compactMenuButton->setMenu( m_compactMainMenu );
|
compactMenuButton->setMenu( m_compactMainMenu );
|
||||||
compactMenuButton->setToolButtonStyle( Qt::ToolButtonIconOnly );
|
compactMenuButton->setToolButtonStyle( Qt::ToolButtonIconOnly );
|
||||||
m_compactMenuAction = toolbar->addWidget( compactMenuButton );
|
m_compactMenuAction = m_toolbar->addWidget( compactMenuButton );
|
||||||
//HACK: adding the toggle action to the window, otherwise the shortcut keys
|
//HACK: adding the toggle action to the window, otherwise the shortcut keys
|
||||||
// won't be picked up when the menu is hidden.
|
// won't be picked up when the menu is hidden.
|
||||||
// This must be done for all menu bar actions that have shortcut keys :(
|
// This must be done for all menu bar actions that have shortcut keys :(
|
||||||
@@ -283,6 +286,51 @@ TomahawkWindow::setupToolBar()
|
|||||||
addAction( ActionCollection::instance()->getAction( "toggleMenuBar" ) );
|
addAction( ActionCollection::instance()->getAction( "toggleMenuBar" ) );
|
||||||
addAction( ActionCollection::instance()->getAction( "quit" ) );
|
addAction( ActionCollection::instance()->getAction( "quit" ) );
|
||||||
#endif
|
#endif
|
||||||
|
balanceToolbar();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
TomahawkWindow::balanceToolbar()
|
||||||
|
{
|
||||||
|
int leftActionsWidth = 0;
|
||||||
|
int rightActionsWidth = 0;
|
||||||
|
bool flip = false;
|
||||||
|
foreach ( QAction* action, m_toolbar->actions() )
|
||||||
|
{
|
||||||
|
if ( action->property( "kind" ) == QString( "spacer" ) ||
|
||||||
|
!action->isVisible() )
|
||||||
|
continue;
|
||||||
|
else if ( action->property( "kind" ) == QString( "search" ) )
|
||||||
|
{
|
||||||
|
flip = true;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
QWidget* widget = m_toolbar->widgetForAction( action );
|
||||||
|
|
||||||
|
if ( !flip ) //we accumulate on the left
|
||||||
|
{
|
||||||
|
leftActionsWidth += widget->sizeHint().width()
|
||||||
|
+ m_toolbar->layout()->spacing();
|
||||||
|
}
|
||||||
|
else //then, on the right
|
||||||
|
{
|
||||||
|
rightActionsWidth += widget->sizeHint().width()
|
||||||
|
+ m_toolbar->layout()->spacing();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( leftActionsWidth > rightActionsWidth )
|
||||||
|
{
|
||||||
|
m_toolbarLeftBalancer->setFixedWidth( 0 );
|
||||||
|
m_toolbarRightBalancer->setFixedWidth( leftActionsWidth - rightActionsWidth );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
m_toolbarLeftBalancer->setFixedWidth( rightActionsWidth - leftActionsWidth );
|
||||||
|
m_toolbarRightBalancer->setFixedWidth( 0 );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -451,7 +499,7 @@ TomahawkWindow::setupSignals()
|
|||||||
connect( ac->getAction( "preferences" ), SIGNAL( triggered() ), SLOT( showSettingsDialog() ) );
|
connect( ac->getAction( "preferences" ), SIGNAL( triggered() ), SLOT( showSettingsDialog() ) );
|
||||||
connect( ac->getAction( "diagnostics" ), SIGNAL( triggered() ), SLOT( showDiagnosticsDialog() ) );
|
connect( ac->getAction( "diagnostics" ), SIGNAL( triggered() ), SLOT( showDiagnosticsDialog() ) );
|
||||||
connect( ac->getAction( "legalInfo" ), SIGNAL( triggered() ), SLOT( legalInfo() ) );
|
connect( ac->getAction( "legalInfo" ), SIGNAL( triggered() ), SLOT( legalInfo() ) );
|
||||||
connect( m_actionToggleConnect, SIGNAL( triggered() ), AccountManager::instance(), SLOT( toggleAccountsConnected() ) );
|
connect( ac->getAction( "toggleOnline" ), SIGNAL( triggered() ), AccountManager::instance(), SLOT( toggleAccountsConnected() ) );
|
||||||
connect( ac->getAction( "updateCollection" ), SIGNAL( triggered() ), SLOT( updateCollectionManually() ) );
|
connect( ac->getAction( "updateCollection" ), SIGNAL( triggered() ), SLOT( updateCollectionManually() ) );
|
||||||
connect( ac->getAction( "rescanCollection" ), SIGNAL( triggered() ), SLOT( rescanCollectionManually() ) );
|
connect( ac->getAction( "rescanCollection" ), SIGNAL( triggered() ), SLOT( rescanCollectionManually() ) );
|
||||||
connect( ac->getAction( "loadXSPF" ), SIGNAL( triggered() ), SLOT( loadSpiff() ));
|
connect( ac->getAction( "loadXSPF" ), SIGNAL( triggered() ), SLOT( loadSpiff() ));
|
||||||
@@ -473,6 +521,7 @@ TomahawkWindow::setupSignals()
|
|||||||
|
|
||||||
// Menus for accounts that support them
|
// Menus for accounts that support them
|
||||||
connect( AccountManager::instance(), SIGNAL( added( Tomahawk::Accounts::Account* ) ), this, SLOT( onAccountAdded( Tomahawk::Accounts::Account* ) ) );
|
connect( AccountManager::instance(), SIGNAL( added( Tomahawk::Accounts::Account* ) ), this, SLOT( onAccountAdded( Tomahawk::Accounts::Account* ) ) );
|
||||||
|
|
||||||
foreach ( Account* account, AccountManager::instance()->accounts( Tomahawk::Accounts::SipType ) )
|
foreach ( Account* account, AccountManager::instance()->accounts( Tomahawk::Accounts::SipType ) )
|
||||||
{
|
{
|
||||||
if ( !account || !account->sipPlugin() )
|
if ( !account || !account->sipPlugin() )
|
||||||
@@ -486,15 +535,6 @@ TomahawkWindow::setupSignals()
|
|||||||
connect( ViewManager::instance(), SIGNAL( historyForwardAvailable( bool ) ), SLOT( onHistoryForwardAvailable( bool ) ) );
|
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
|
void
|
||||||
TomahawkWindow::setupMenuBar()
|
TomahawkWindow::setupMenuBar()
|
||||||
@@ -817,20 +857,36 @@ TomahawkWindow::addPeerManually()
|
|||||||
void
|
void
|
||||||
TomahawkWindow::pluginMenuAdded( QMenu* menu )
|
TomahawkWindow::pluginMenuAdded( QMenu* menu )
|
||||||
{
|
{
|
||||||
m_menuAccounts->addMenu( menu );
|
SipPlugin* plugin = qobject_cast< SipPlugin* >( sender() );
|
||||||
|
if ( plugin )
|
||||||
|
{
|
||||||
|
ContainedMenuButton *button = new ContainedMenuButton( m_toolbar );
|
||||||
|
button->setIcon( plugin->account()->icon() );
|
||||||
|
button->setText( menu->title() );
|
||||||
|
button->setMenu( menu );
|
||||||
|
button->setToolButtonStyle( Qt::ToolButtonIconOnly );
|
||||||
|
QAction *action = m_toolbar->insertWidget( m_compactMenuAction, button );
|
||||||
|
action->setProperty( "id", plugin->account()->accountId() );
|
||||||
|
balanceToolbar();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
TomahawkWindow::pluginMenuRemoved( QMenu* menu )
|
TomahawkWindow::pluginMenuRemoved( QMenu* menu )
|
||||||
{
|
{
|
||||||
foreach ( QAction* action, m_menuAccounts->actions() )
|
SipPlugin* plugin = qobject_cast< SipPlugin* >( sender() );
|
||||||
|
if ( plugin )
|
||||||
{
|
{
|
||||||
if ( action->menu() == menu )
|
foreach ( QAction* action, m_toolbar->actions() )
|
||||||
{
|
{
|
||||||
m_menuAccounts->removeAction( action );
|
if ( action->property( "id" ) == plugin->account()->accountId() )
|
||||||
return;
|
{
|
||||||
|
m_toolbar->removeAction( action );
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
balanceToolbar();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1122,14 +1178,14 @@ TomahawkWindow::onPlaybackLoading( const Tomahawk::result_ptr& result )
|
|||||||
void
|
void
|
||||||
TomahawkWindow::onAccountConnected()
|
TomahawkWindow::onAccountConnected()
|
||||||
{
|
{
|
||||||
m_actionToggleConnect->setText( tr( "Go &offline" ) );
|
ActionCollection::instance()->getAction( "toggleOnline" )->setText( tr( "Go &Offline" ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
TomahawkWindow::onAccountDisconnected()
|
TomahawkWindow::onAccountDisconnected()
|
||||||
{
|
{
|
||||||
m_actionToggleConnect->setText( tr( "Go &online" ) );
|
ActionCollection::instance()->getAction( "toggleOnline" )->setText( tr( "Go &Online" ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -1302,6 +1358,7 @@ TomahawkWindow::toggleMenuBar() //SLOT
|
|||||||
ActionCollection::instance()->getAction( "toggleMenuBar" )->setText( tr( "Hide Menu Bar" ) );
|
ActionCollection::instance()->getAction( "toggleMenuBar" )->setText( tr( "Hide Menu Bar" ) );
|
||||||
menuBar()->setVisible( true );
|
menuBar()->setVisible( true );
|
||||||
}
|
}
|
||||||
|
balanceToolbar();
|
||||||
saveSettings();
|
saveSettings();
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@@ -158,11 +158,11 @@ private:
|
|||||||
|
|
||||||
void applyPlatformTweaks();
|
void applyPlatformTweaks();
|
||||||
void setupSignals();
|
void setupSignals();
|
||||||
void setupAccountsMenu(); //must be called before setupToolBar
|
|
||||||
void setupMenuBar();
|
void setupMenuBar();
|
||||||
void setupToolBar();
|
void setupToolBar();
|
||||||
void setupSideBar();
|
void setupSideBar();
|
||||||
void setupUpdateCheck();
|
void setupUpdateCheck();
|
||||||
|
void balanceToolbar();
|
||||||
|
|
||||||
#ifdef Q_OS_WIN
|
#ifdef Q_OS_WIN
|
||||||
bool setupWindowsButtons();
|
bool setupWindowsButtons();
|
||||||
@@ -184,13 +184,14 @@ private:
|
|||||||
JobStatusSortModel* m_jobsModel;
|
JobStatusSortModel* m_jobsModel;
|
||||||
|
|
||||||
// Menus and menu actions: Accounts menu
|
// Menus and menu actions: Accounts menu
|
||||||
QMenu *m_menuAccounts;
|
|
||||||
QAction *m_actionToggleConnect;
|
|
||||||
QMenuBar *m_menuBar;
|
QMenuBar *m_menuBar;
|
||||||
#ifndef Q_OS_MAC
|
#ifndef Q_OS_MAC
|
||||||
QAction *m_compactMenuAction;
|
QAction *m_compactMenuAction;
|
||||||
QMenu *m_compactMainMenu;
|
QMenu *m_compactMainMenu;
|
||||||
#endif
|
#endif
|
||||||
|
QToolBar *m_toolbar;
|
||||||
|
QWidget *m_toolbarLeftBalancer;
|
||||||
|
QWidget *m_toolbarRightBalancer;
|
||||||
|
|
||||||
QAction* m_backAction;
|
QAction* m_backAction;
|
||||||
QAction* m_forwardAction;
|
QAction* m_forwardAction;
|
||||||
|
@@ -70,6 +70,8 @@ ActionCollection::initActions()
|
|||||||
m_actionCollection[ "togglePrivacy" ] = privacyToggle;
|
m_actionCollection[ "togglePrivacy" ] = privacyToggle;
|
||||||
connect( m_actionCollection[ "togglePrivacy" ], SIGNAL( triggered() ), SLOT( togglePrivateListeningMode() ), Qt::UniqueConnection );
|
connect( m_actionCollection[ "togglePrivacy" ], SIGNAL( triggered() ), SLOT( togglePrivateListeningMode() ), Qt::UniqueConnection );
|
||||||
|
|
||||||
|
m_actionCollection[ "toggleOnline" ] = new QAction( tr( "Go &Online" ), this );
|
||||||
|
|
||||||
m_actionCollection[ "loadPlaylist" ] = new QAction( tr( "&Load Playlist" ), this );
|
m_actionCollection[ "loadPlaylist" ] = new QAction( tr( "&Load Playlist" ), this );
|
||||||
m_actionCollection[ "renamePlaylist" ] = new QAction( tr( "&Rename Playlist" ), this );
|
m_actionCollection[ "renamePlaylist" ] = new QAction( tr( "&Rename Playlist" ), this );
|
||||||
m_actionCollection[ "copyPlaylist" ] = new QAction( tr( "&Copy Playlist Link" ), this );
|
m_actionCollection[ "copyPlaylist" ] = new QAction( tr( "&Copy Playlist Link" ), this );
|
||||||
@@ -134,6 +136,7 @@ ActionCollection::createMenuBar( QWidget *parent )
|
|||||||
controlsMenu->addSeparator();
|
controlsMenu->addSeparator();
|
||||||
controlsMenu->addAction( m_actionCollection[ "togglePrivacy" ] );
|
controlsMenu->addAction( m_actionCollection[ "togglePrivacy" ] );
|
||||||
controlsMenu->addAction( m_actionCollection[ "showOfflineSources" ] );
|
controlsMenu->addAction( m_actionCollection[ "showOfflineSources" ] );
|
||||||
|
controlsMenu->addAction( m_actionCollection[ "toggleOnline" ] );
|
||||||
controlsMenu->addSeparator();
|
controlsMenu->addSeparator();
|
||||||
controlsMenu->addAction( m_actionCollection[ "loadXSPF" ] );
|
controlsMenu->addAction( m_actionCollection[ "loadXSPF" ] );
|
||||||
controlsMenu->addAction( m_actionCollection[ "updateCollection" ] );
|
controlsMenu->addAction( m_actionCollection[ "updateCollection" ] );
|
||||||
@@ -193,6 +196,7 @@ ActionCollection::createCompactMenu( QWidget *parent )
|
|||||||
compactMenu->addSeparator();
|
compactMenu->addSeparator();
|
||||||
compactMenu->addAction( m_actionCollection[ "togglePrivacy" ] );
|
compactMenu->addAction( m_actionCollection[ "togglePrivacy" ] );
|
||||||
compactMenu->addAction( m_actionCollection[ "showOfflineSources" ] );
|
compactMenu->addAction( m_actionCollection[ "showOfflineSources" ] );
|
||||||
|
compactMenu->addAction( m_actionCollection[ "toggleOnline" ] );
|
||||||
compactMenu->addSeparator();
|
compactMenu->addSeparator();
|
||||||
compactMenu->addAction( m_actionCollection[ "loadXSPF" ] );
|
compactMenu->addAction( m_actionCollection[ "loadXSPF" ] );
|
||||||
compactMenu->addAction( m_actionCollection[ "updateCollection" ] );
|
compactMenu->addAction( m_actionCollection[ "updateCollection" ] );
|
||||||
|
Reference in New Issue
Block a user