]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphincontextmenu.cpp
allow to show/hide the menubar
[dolphin.git] / src / dolphincontextmenu.cpp
index 29feffe3469f75725e7a4dad6807566454c21050..a7a5ae567cc6d28d454396b1ac7e4cf80d5f0b7a 100644 (file)
@@ -32,6 +32,7 @@
 #include <kiconloader.h>
 #include <kio/netaccess.h>
 #include <kmenu.h>
+#include <kmenubar.h>
 #include <kmessagebox.h>
 #include <kmimetypetrader.h>
 #include <knewmenu.h>
@@ -101,6 +102,8 @@ void DolphinContextMenu::openTrashContextMenu()
 
     KMenu* popup = new KMenu(m_mainWindow);
 
+    addShowMenubarAction(popup);
+
     QAction* emptyTrashAction = new QAction(KIcon("trash-empty"), i18nc("@action:inmenu", "Empty Trash"), popup);
     KConfig trashConfig("trashrc", KConfig::SimpleConfig);
     emptyTrashAction->setEnabled(!trashConfig.group("Status").readEntry("Empty", true));
@@ -141,6 +144,8 @@ void DolphinContextMenu::openTrashItemContextMenu()
 
     KMenu* popup = new KMenu(m_mainWindow);
 
+    addShowMenubarAction(popup);
+
     QAction* restoreAction = new QAction(i18nc("@action:inmenu", "Restore"), m_mainWindow);
     popup->addAction(restoreAction);
 
@@ -162,6 +167,7 @@ void DolphinContextMenu::openItemContextMenu()
     Q_ASSERT(!m_fileInfo.isNull());
 
     KMenu* popup = new KMenu(m_mainWindow);
+    addShowMenubarAction(popup);
     insertDefaultItemActions(popup);
 
     popup->addSeparator();
@@ -216,6 +222,8 @@ void DolphinContextMenu::openViewportContextMenu()
     Q_ASSERT(m_fileInfo.isNull());
     KMenu* popup = new KMenu(m_mainWindow);
 
+    addShowMenubarAction(popup);
+
     // setup 'Create New' menu
     KNewMenu* newMenu = m_mainWindow->newMenu();
     newMenu->slotCheckUpToDate();
@@ -386,4 +394,17 @@ bool DolphinContextMenu::containsEntry(const KMenu* menu,
     return false;
 }
 
+void DolphinContextMenu::addShowMenubarAction(KMenu* menu)
+{
+    KAction* showMenuBar = m_mainWindow->showMenuBarAction();
+    if (!m_mainWindow->menuBar()->isVisible()) {
+        // TODO: it should not be necessary to uncheck the menu
+        // bar action, but currently the action states don't get
+        // updated if the menu is disabled
+        showMenuBar->setChecked(false);
+        menu->addAction(showMenuBar);
+        menu->addSeparator();
+    }
+}
+
 #include "dolphincontextmenu.moc"