From 2dcc433ab2c353a40e3c65f3df46e8a1eac697cc Mon Sep 17 00:00:00 2001 From: Peter Penz Date: Sun, 27 Mar 2011 19:27:27 +0200 Subject: [PATCH] DolphinContextMenu: Show "Show menubar" entry if necessary If the user has hidden the menubar and the toolbar there is no way to get back the menu (at least not without knowing the Ctrl+M shortcut). Show an entry in the context-menu to bring back the menubar. --- src/dolphincontextmenu.cpp | 15 +++++++++++++++ src/dolphincontextmenu.h | 6 ++++++ 2 files changed, 21 insertions(+) diff --git a/src/dolphincontextmenu.cpp b/src/dolphincontextmenu.cpp index 07c934e33b..0aa82b2060 100644 --- a/src/dolphincontextmenu.cpp +++ b/src/dolphincontextmenu.cpp @@ -49,6 +49,7 @@ #include #include #include +#include #include #include @@ -184,6 +185,8 @@ void DolphinContextMenu::openTrashContextMenu() QAction* propertiesAction = m_mainWindow->actionCollection()->action("properties"); m_popup->addAction(propertiesAction); + addShowMenuBarAction(); + QAction *action = m_popup->exec(QCursor::pos()); if (action == emptyTrashAction) { const QString text(i18nc("@info", "Do you really want to empty the Trash? All items will be deleted.")); @@ -365,6 +368,8 @@ void DolphinContextMenu::openViewportContextMenu() QAction* propertiesAction = m_popup->addAction(i18nc("@action:inmenu", "Properties")); propertiesAction->setIcon(KIcon("document-properties")); + addShowMenuBarAction(); + QAction* action = m_popup->exec(QCursor::pos()); if (action == propertiesAction) { const KUrl& url = m_mainWindow->activeViewContainer()->url(); @@ -405,6 +410,16 @@ void DolphinContextMenu::insertDefaultItemActions() } } +void DolphinContextMenu::addShowMenuBarAction() +{ + const KActionCollection* ac = m_mainWindow->actionCollection(); + QAction* showMenuBar = ac->action(KStandardAction::name(KStandardAction::ShowMenubar)); + if (!m_mainWindow->menuBar()->isVisible() && !m_mainWindow->toolBar()->isVisible()) { + m_popup->addSeparator(); + m_popup->addAction(showMenuBar); + } +} + QString DolphinContextMenu::placesName(const KUrl& url) const { QString name = url.fileName(); diff --git a/src/dolphincontextmenu.h b/src/dolphincontextmenu.h index 1c1cabb826..50fce44390 100644 --- a/src/dolphincontextmenu.h +++ b/src/dolphincontextmenu.h @@ -122,6 +122,12 @@ private: void insertDefaultItemActions(); + /** + * Adds the "Show menubar" action to the menu if the + * menubar is hidden. + */ + void addShowMenuBarAction(); + /** * Returns a name for adding the URL \a url to the Places panel. */