diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2021-09-10 20:24:31 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2021-09-10 20:24:31 +0000 |
| commit | 08e903a4dd77a0b7c6ad424de1fddd7c7f8c8b65 (patch) | |
| tree | a440c4218efd17a0d560deb2365da36f2ec2ee15 | |
| parent | 3c3347722e616bedc440761f7decaaac43ab002b (diff) | |
| download | qmmp-08e903a4dd77a0b7c6ad424de1fddd7c7f8c8b65.tar.gz qmmp-08e903a4dd77a0b7c6ad424de1fddd7c7f8c8b65.tar.bz2 qmmp-08e903a4dd77a0b7c6ad424de1fddd7c7f8c8b65.zip | |
added application menu
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@10292 90c681e8-e032-0410-971d-27865f9a5e38
| -rw-r--r-- | src/plugins/Ui/qsui/actionmanager.cpp | 1 | ||||
| -rw-r--r-- | src/plugins/Ui/qsui/actionmanager.h | 1 | ||||
| -rw-r--r-- | src/plugins/Ui/qsui/mainwindow.cpp | 27 | ||||
| -rw-r--r-- | src/plugins/Ui/qsui/mainwindow.h | 1 |
4 files changed, 30 insertions, 0 deletions
diff --git a/src/plugins/Ui/qsui/actionmanager.cpp b/src/plugins/Ui/qsui/actionmanager.cpp index 4037ca7a7..8cc35d7c8 100644 --- a/src/plugins/Ui/qsui/actionmanager.cpp +++ b/src/plugins/Ui/qsui/actionmanager.cpp @@ -98,6 +98,7 @@ ActionManager::ActionManager(QObject *parent) : //other { EQUALIZER, createAction(tr("&Equalizer"), "equalizer", tr("Ctrl+E")) }, { SETTINGS, createAction(tr("&Settings"), "show_settings", tr("Ctrl+P"), "configure") }, + { APPLICATION_MENU, createAction(tr("Application Menu"), "app_menu", "", "format-justify-fill") }, { ABOUT_UI, createAction(tr("&About Ui"), "about_ui") }, { ABOUT, createAction(tr("&About"), "about") }, { ABOUT_QT, createAction(tr("&About Qt"), "about_qt") }, diff --git a/src/plugins/Ui/qsui/actionmanager.h b/src/plugins/Ui/qsui/actionmanager.h index 5689ba190..6207e069d 100644 --- a/src/plugins/Ui/qsui/actionmanager.h +++ b/src/plugins/Ui/qsui/actionmanager.h @@ -106,6 +106,7 @@ public: EQUALIZER, SETTINGS, + APPLICATION_MENU, ABOUT_UI, ABOUT, ABOUT_QT, diff --git a/src/plugins/Ui/qsui/mainwindow.cpp b/src/plugins/Ui/qsui/mainwindow.cpp index fc8a1ebe2..2ab26c1c3 100644 --- a/src/plugins/Ui/qsui/mainwindow.cpp +++ b/src/plugins/Ui/qsui/mainwindow.cpp @@ -26,6 +26,7 @@ #include <QSettings> #include <QInputDialog> #include <QGridLayout> +#include <QtDebug> #include <qmmp/soundcore.h> #include <qmmp/decoder.h> #include <qmmp/metadatamanager.h> @@ -329,6 +330,30 @@ void MainWindow::showSettings() m_seekBar->readSettings(); } +void MainWindow::showAppMenu() +{ + QAction *action = qobject_cast<QAction *>(sender()); + if(!action) + return; + + QPoint menuPos = pos(); + + for(QWidget *w : action->associatedWidgets()) + { + QToolButton *toolButton = qobject_cast<QToolButton *>(w); + if(toolButton && toolButton->parentWidget()) + { + menuPos = toolButton->parentWidget()->mapToGlobal(toolButton->geometry().bottomLeft()); + break; + } + } + + QMenu *appMenu = new QMenu(this); + appMenu->setAttribute(Qt::WA_DeleteOnClose, true); + appMenu->addActions(menuBar()->actions()); + appMenu->popup(menuPos); +} + void MainWindow::updateVolumeIcon() { int maxVol = m_core->volume(); @@ -656,6 +681,8 @@ void MainWindow::createActions() QAction* backward = new QAction(this); backward->setShortcut(QKeySequence(Qt::Key_Left)); connect(backward,SIGNAL(triggered(bool)),this,SLOT(backward())); + //application menu + SET_ACTION(ActionManager::APPLICATION_MENU, this, SLOT(showAppMenu())); addActions(QList<QAction*>() << forward << backward); addActions(ActionManager::instance()->actions()); diff --git a/src/plugins/Ui/qsui/mainwindow.h b/src/plugins/Ui/qsui/mainwindow.h index 413756497..64a36cc59 100644 --- a/src/plugins/Ui/qsui/mainwindow.h +++ b/src/plugins/Ui/qsui/mainwindow.h @@ -77,6 +77,7 @@ private slots: void toggleVisibility(); void showAndRaise(); void showSettings(); + void showAppMenu(); void updateVolumeIcon(); void jumpTo(); void playPause(); |
