aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2021-09-10 20:24:31 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2021-09-10 20:24:31 +0000
commit08e903a4dd77a0b7c6ad424de1fddd7c7f8c8b65 (patch)
treea440c4218efd17a0d560deb2365da36f2ec2ee15
parent3c3347722e616bedc440761f7decaaac43ab002b (diff)
downloadqmmp-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.cpp1
-rw-r--r--src/plugins/Ui/qsui/actionmanager.h1
-rw-r--r--src/plugins/Ui/qsui/mainwindow.cpp27
-rw-r--r--src/plugins/Ui/qsui/mainwindow.h1
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();