]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphincontextmenu.cpp
DolphinContextMenu: Show "Show menubar" entry if necessary
[dolphin.git] / src / dolphincontextmenu.cpp
index 07c934e33b7eb4ae92e5b0487d9855f002af3df8..0aa82b2060664de2a62ad619d147c451dfb2c090 100644 (file)
@@ -49,6 +49,7 @@
 #include <KPropertiesDialog>
 #include <KStandardAction>
 #include <KStandardDirs>
+#include <KToolBar>
 
 #include <QApplication>
 #include <QClipboard>
@@ -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();