From 5bd740cc4b1ef850caf2b0e368bc4c1d5e607b02 Mon Sep 17 00:00:00 2001 From: Martin Rotter Date: Sat, 29 Jan 2022 16:31:19 +0100 Subject: [PATCH] fix #604 --- src/librssguard/gui/dialogs/formmain.cpp | 27 ++++++++++++++++++++++++ src/librssguard/gui/dialogs/formmain.h | 2 ++ src/librssguard/gui/tabwidget.cpp | 1 + 3 files changed, 30 insertions(+) diff --git a/src/librssguard/gui/dialogs/formmain.cpp b/src/librssguard/gui/dialogs/formmain.cpp index bd3b4fcd1..67fd67aa7 100644 --- a/src/librssguard/gui/dialogs/formmain.cpp +++ b/src/librssguard/gui/dialogs/formmain.cpp @@ -45,6 +45,8 @@ #include #include #include +#include +#include #if QT_VERSION >= 0x050E00 // Qt >= 5.14.0 #include @@ -62,6 +64,30 @@ FormMain::FormMain(QWidget* parent, Qt::WindowFlags f) setWindowIcon(qApp->desktopAwareIcon()); setWindowTitle(QSL(APP_LONG_NAME)); + QMenu* main_menu = new QMenu(tr("Main menu"), this); + + main_menu->addMenu(m_ui->m_menuFile); + main_menu->addMenu(m_ui->m_menuView); + main_menu->addMenu(m_ui->m_menuAccounts); + main_menu->addMenu(m_ui->m_menuFeeds); + main_menu->addMenu(m_ui->m_menuMessages); + main_menu->addMenu(m_ui->m_menuWebBrowserTabs); + main_menu->addMenu(m_ui->m_menuTools); + main_menu->addMenu(m_ui->m_menuHelp); + + QToolButton* btn_main_menu = new QToolButton(this); + + btn_main_menu->setToolTip(tr("Open main menu")); + btn_main_menu->setMenu(main_menu); + btn_main_menu->setPopupMode(QToolButton::ToolButtonPopupMode::InstantPopup); + btn_main_menu->setIcon(qApp->icons()->fromTheme(QSL("go-home"))); + + m_actionToolbarMainMenu = new QWidgetAction(this); + m_actionToolbarMainMenu->setDefaultWidget(btn_main_menu); + m_actionToolbarMainMenu->setIcon(qApp->icons()->fromTheme(QSL("go-home"))); + m_actionToolbarMainMenu->setText(tr("Open &main menu")); + m_actionToolbarMainMenu->setObjectName("m_actionToolbarMainMenu"); + #if defined(USE_WEBENGINE) m_ui->m_menuWebBrowserTabs->addAction(qApp->web()->adBlock()->adBlockIcon()); m_ui->m_menuWebBrowserTabs->addAction(qApp->web()->engineSettingsAction()); @@ -203,6 +229,7 @@ QList FormMain::allActions() const { actions << m_ui->m_actionTabsCloseCurrent; actions << m_ui->m_actionTabsCloseAll; actions << m_ui->m_actionTabsCloseAllExceptCurrent; + actions << m_actionToolbarMainMenu; return actions; } diff --git a/src/librssguard/gui/dialogs/formmain.h b/src/librssguard/gui/dialogs/formmain.h index ab5d42fb2..0f82bb8e7 100644 --- a/src/librssguard/gui/dialogs/formmain.h +++ b/src/librssguard/gui/dialogs/formmain.h @@ -8,6 +8,7 @@ #include "ui_formmain.h" class StatusBar; +class QWidgetAction; class RSSGUARD_DLLSPEC FormMain : public QMainWindow { Q_OBJECT @@ -81,6 +82,7 @@ class RSSGUARD_DLLSPEC FormMain : public QMainWindow { QScopedPointer m_ui; QMenu* m_trayMenu; + QWidgetAction* m_actionToolbarMainMenu; StatusBar* m_statusBar; }; diff --git a/src/librssguard/gui/tabwidget.cpp b/src/librssguard/gui/tabwidget.cpp index 1eee1a635..844685060 100644 --- a/src/librssguard/gui/tabwidget.cpp +++ b/src/librssguard/gui/tabwidget.cpp @@ -41,6 +41,7 @@ void TabWidget::setupMainMenuButton() { m_btnMainMenu->setToolTip(tr("Displays main menu.")); m_btnMainMenu->setIcon(qApp->icons()->fromTheme(QSL("go-home"))); m_btnMainMenu->setPopupMode(QToolButton::ToolButtonPopupMode::InstantPopup); + connect(m_btnMainMenu, &PlainToolButton::clicked, this, &TabWidget::openMainMenu); }