MainMenu: Remove all aboutToHide menu handling

Instead create conflicting shortcuts with Qt::WidgetShortcut context.
remotes/origin/Falkon/3.0
David Rosca 8 years ago
parent f80d827e59
commit a578314e8e
  1. 56
      src/lib/app/mainmenu.cpp
  2. 7
      src/lib/app/mainmenu.h

@ -1,6 +1,6 @@
/* ============================================================
* Falkon - Qt web browser
* Copyright (C) 2014-2017 David Rosca <nowrep@gmail.com>
* Copyright (C) 2014-2018 David Rosca <nowrep@gmail.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -109,7 +109,6 @@ void MainMenu::initSuperMenu(QMenu* superMenu) const
superMenu->addAction(m_actions[QSL("Standard/Quit")]);
connect(superMenu, &QMenu::aboutToShow, this, &MainMenu::aboutToShowSuperMenu);
connect(superMenu, &QMenu::aboutToHide, this, &MainMenu::aboutToHideSuperMenu);
}
QAction* MainMenu::action(const QString &name) const
@ -372,11 +371,6 @@ void MainMenu::aboutToShowFileMenu()
#endif
}
void MainMenu::aboutToHideFileMenu()
{
m_actions[QSL("File/CloseWindow")]->setEnabled(true);
}
void MainMenu::aboutToShowViewMenu()
{
if (!m_window) {
@ -385,12 +379,6 @@ void MainMenu::aboutToShowViewMenu()
m_actions[QSL("View/ShowStatusBar")]->setChecked(m_window->statusBar()->isVisible());
m_actions[QSL("View/FullScreen")]->setChecked(m_window->isFullScreen());
m_actions[QSL("View/PageSource")]->setEnabled(true);
}
void MainMenu::aboutToHideViewMenu()
{
m_actions[QSL("View/PageSource")]->setEnabled(false);
}
void MainMenu::aboutToShowEditMenu()
@ -407,18 +395,6 @@ void MainMenu::aboutToShowEditMenu()
m_actions[QSL("Edit/Copy")]->setEnabled(view->pageAction(QWebEnginePage::Copy)->isEnabled());
m_actions[QSL("Edit/Paste")]->setEnabled(view->pageAction(QWebEnginePage::Paste)->isEnabled());
m_actions[QSL("Edit/SelectAll")]->setEnabled(view->pageAction(QWebEnginePage::SelectAll)->isEnabled());
m_actions[QSL("Edit/Find")]->setEnabled(true);
}
void MainMenu::aboutToHideEditMenu()
{
m_actions[QSL("Edit/Undo")]->setEnabled(false);
m_actions[QSL("Edit/Redo")]->setEnabled(false);
m_actions[QSL("Edit/Cut")]->setEnabled(false);
m_actions[QSL("Edit/Copy")]->setEnabled(false);
m_actions[QSL("Edit/Paste")]->setEnabled(false);
m_actions[QSL("Edit/SelectAll")]->setEnabled(false);
m_actions[QSL("Edit/Find")]->setEnabled(false);
}
void MainMenu::aboutToShowToolsMenu()
@ -434,11 +410,6 @@ void MainMenu::aboutToShowToolsMenu()
m_submenuExtensions->menuAction()->setVisible(!m_submenuExtensions->actions().isEmpty());
}
void MainMenu::aboutToHideToolsMenu()
{
m_actions[QSL("Tools/SiteInfo")]->setEnabled(false);
}
void MainMenu::aboutToShowSuperMenu()
{
if (!m_window) {
@ -451,12 +422,6 @@ void MainMenu::aboutToShowSuperMenu()
m_actions[QSL("Edit/SelectAll")]->setEnabled(view->pageAction(QWebEnginePage::SelectAll)->isEnabled());
}
void MainMenu::aboutToHideSuperMenu()
{
m_actions[QSL("Edit/Find")]->setEnabled(true);
m_actions[QSL("Edit/SelectAll")]->setEnabled(false);
}
void MainMenu::aboutToShowToolbarsMenu()
{
QMenu* menu = qobject_cast<QMenu*>(sender());
@ -525,7 +490,6 @@ void MainMenu::init()
// File menu
m_menuFile = new QMenu(tr("&File"));
connect(m_menuFile, SIGNAL(aboutToShow()), this, SLOT(aboutToShowFileMenu()));
connect(m_menuFile, SIGNAL(aboutToHide()), this, SLOT(aboutToHideFileMenu()));
ADD_ACTION("File/NewTab", m_menuFile, IconProvider::newTabIcon(), tr("New Tab"), SLOT(newTab()), "Ctrl+T");
ADD_ACTION("File/NewWindow", m_menuFile, IconProvider::newWindowIcon(), tr("&New Window"), SLOT(newWindow()), "Ctrl+N");
@ -555,23 +519,28 @@ void MainMenu::init()
// Edit menu
m_menuEdit = new QMenu(tr("&Edit"));
connect(m_menuEdit, SIGNAL(aboutToShow()), this, SLOT(aboutToShowEditMenu()));
connect(m_menuEdit, SIGNAL(aboutToHide()), this, SLOT(aboutToHideEditMenu()));
ADD_ACTION("Edit/Undo", m_menuEdit, QIcon::fromTheme(QSL("edit-undo")), tr("&Undo"), SLOT(editUndo()), "Ctrl+Z");
action->setShortcutContext(Qt::WidgetShortcut);
ADD_ACTION("Edit/Redo", m_menuEdit, QIcon::fromTheme(QSL("edit-redo")), tr("&Redo"), SLOT(editRedo()), "Ctrl+Shift+Z");
action->setShortcutContext(Qt::WidgetShortcut);
m_menuEdit->addSeparator();
ADD_ACTION("Edit/Cut", m_menuEdit, QIcon::fromTheme(QSL("edit-cut")), tr("&Cut"), SLOT(editCut()), "Ctrl+X");
action->setShortcutContext(Qt::WidgetShortcut);
ADD_ACTION("Edit/Copy", m_menuEdit, QIcon::fromTheme(QSL("edit-copy")), tr("C&opy"), SLOT(editCopy()), "Ctrl+C");
action->setShortcutContext(Qt::WidgetShortcut);
ADD_ACTION("Edit/Paste", m_menuEdit, QIcon::fromTheme(QSL("edit-paste")), tr("&Paste"), SLOT(editPaste()), "Ctrl+V");
action->setShortcutContext(Qt::WidgetShortcut);
m_menuEdit->addSeparator();
ADD_ACTION("Edit/SelectAll", m_menuEdit, QIcon::fromTheme(QSL("edit-select-all")), tr("Select &All"), SLOT(editSelectAll()), "Ctrl+A");
action->setShortcutContext(Qt::WidgetShortcut);
ADD_ACTION("Edit/Find", m_menuEdit, QIcon::fromTheme(QSL("edit-find")), tr("&Find"), SLOT(editFind()), "Ctrl+F");
action->setShortcutContext(Qt::WidgetShortcut);
m_menuEdit->addSeparator();
// View menu
m_menuView = new QMenu(tr("&View"));
connect(m_menuView, SIGNAL(aboutToShow()), this, SLOT(aboutToShowViewMenu()));
connect(m_menuView, SIGNAL(aboutToHide()), this, SLOT(aboutToHideViewMenu()));
QMenu* toolbarsMenu = new QMenu(tr("Toolbars"));
connect(toolbarsMenu, SIGNAL(aboutToShow()), this, SLOT(aboutToShowToolbarsMenu()));
@ -598,15 +567,16 @@ void MainMenu::init()
m_menuView->addMenu(encodingMenu);
m_menuView->addSeparator();
ADD_ACTION("View/PageSource", m_menuView, QIcon::fromTheme(QSL("text-html")), tr("&Page Source"), SLOT(showPageSource()), "Ctrl+U");
action->setShortcutContext(Qt::WidgetShortcut);
ADD_CHECKABLE_ACTION("View/FullScreen", m_menuView, QIcon(), tr("&FullScreen"), SLOT(showFullScreen()), "F11");
// Tools menu
m_menuTools = new QMenu(tr("&Tools"));
connect(m_menuTools, SIGNAL(aboutToShow()), this, SLOT(aboutToShowToolsMenu()));
connect(m_menuTools, SIGNAL(aboutToHide()), this, SLOT(aboutToHideToolsMenu()));
ADD_ACTION("Tools/WebSearch", m_menuTools, QIcon(), tr("&Web Search"), SLOT(webSearch()), "Ctrl+K");
ADD_ACTION("Tools/SiteInfo", m_menuTools, QIcon::fromTheme(QSL("dialog-information")), tr("Site &Info"), SLOT(showSiteInfo()), "Ctrl+I");
action->setShortcutContext(Qt::WidgetShortcut);
m_menuTools->addSeparator();
ADD_ACTION("Tools/DownloadManager", m_menuTools, QIcon(), tr("&Download Manager"), SLOT(showDownloadManager()), "Ctrl+Y");
ADD_ACTION("Tools/CookiesManager", m_menuTools, QIcon(), tr("&Cookies Manager"), SLOT(showCookieManager()), "");
@ -675,12 +645,6 @@ void MainMenu::init()
m_menuTools->addAction(m_actions[QSL("Standard/Preferences")]);
#endif
// Menus are hidden by default
aboutToHideFileMenu();
aboutToHideViewMenu();
aboutToHideEditMenu();
aboutToHideToolsMenu();
addActionsToWindow();
}

@ -1,6 +1,6 @@
/* ============================================================
* Falkon - Qt web browser
* Copyright (C) 2014-2016 David Rosca <nowrep@gmail.com>
* Copyright (C) 2014-2018 David Rosca <nowrep@gmail.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -102,15 +102,10 @@ private slots:
void restoreClosedTab();
void aboutToShowFileMenu();
void aboutToHideFileMenu();
void aboutToShowViewMenu();
void aboutToHideViewMenu();
void aboutToShowEditMenu();
void aboutToHideEditMenu();
void aboutToShowToolsMenu();
void aboutToHideToolsMenu();
void aboutToShowSuperMenu();
void aboutToHideSuperMenu();
void aboutToShowToolbarsMenu();
void aboutToShowSidebarsMenu();

Loading…
Cancel
Save