┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPeter Penz <[email protected]>2007-11-18 14:37:57 +0000
committerPeter Penz <[email protected]>2007-11-18 14:37:57 +0000
commit1ce2fb199db7bdf5baf05b61e4e58c549404b4df (patch)
tree8c5d8e5960931f81a495ae3325f446ece1a89d81 /src
parent6abcaedfb08e0a9f4a11ca4f6a1f29ccc713d974 (diff)
allow to show/hide the menubar
BUG: 152463 svn path=/trunk/KDE/kdebase/apps/; revision=738282
Diffstat (limited to 'src')
-rw-r--r--src/dolphincontextmenu.cpp21
-rw-r--r--src/dolphincontextmenu.h6
-rw-r--r--src/dolphinmainwindow.cpp9
-rw-r--r--src/dolphinmainwindow.h18
4 files changed, 54 insertions, 0 deletions
diff --git a/src/dolphincontextmenu.cpp b/src/dolphincontextmenu.cpp
index 29feffe34..a7a5ae567 100644
--- a/src/dolphincontextmenu.cpp
+++ b/src/dolphincontextmenu.cpp
@@ -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"
diff --git a/src/dolphincontextmenu.h b/src/dolphincontextmenu.h
index 05d565fee..c90999252 100644
--- a/src/dolphincontextmenu.h
+++ b/src/dolphincontextmenu.h
@@ -97,6 +97,12 @@ private:
bool containsEntry(const KMenu* menu,
const QString& entryName) const;
+ /**
+ * Adds the "Show menubar" action to the menu if the
+ * menubar is hidden.
+ */
+ void addShowMenubarAction(KMenu* menu);
+
private:
struct Entry
{
diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp
index 361ea7e4f..ddabf21a4 100644
--- a/src/dolphinmainwindow.cpp
+++ b/src/dolphinmainwindow.cpp
@@ -55,6 +55,7 @@
#include <kinputdialog.h>
#include <klocale.h>
#include <kmenu.h>
+#include <kmenubar.h>
#include <kmessagebox.h>
#include <konqmimedata.h>
#include <konq_operations.h>
@@ -76,6 +77,7 @@
DolphinMainWindow::DolphinMainWindow(int id) :
KXmlGuiWindow(0),
m_newMenu(0),
+ m_showMenuBar(0),
m_splitter(0),
m_activeViewContainer(0),
m_id(id)
@@ -916,6 +918,12 @@ void DolphinMainWindow::compareFiles()
}
+void DolphinMainWindow::toggleShowMenuBar()
+{
+ const bool visible = menuBar()->isVisible();
+ menuBar()->setVisible(!visible);
+}
+
void DolphinMainWindow::editSettings()
{
DolphinSettingsDialog dialog(this);
@@ -1243,6 +1251,7 @@ void DolphinMainWindow::setupActions()
connect(compareFiles, SIGNAL(triggered()), this, SLOT(compareFiles()));
// setup 'Settings' menu
+ m_showMenuBar = KStandardAction::showMenubar(this, SLOT(toggleShowMenuBar()), actionCollection());
KStandardAction::preferences(this, SLOT(editSettings()), actionCollection());
}
diff --git a/src/dolphinmainwindow.h b/src/dolphinmainwindow.h
index 2f91f9553..ef694513c 100644
--- a/src/dolphinmainwindow.h
+++ b/src/dolphinmainwindow.h
@@ -93,6 +93,12 @@ public:
*/
KNewMenu* newMenu() const;
+ /**
+ * Returns the 'Show Menubar' action which can be shared with
+ * other menus (e. g. a context menu).
+ */
+ KAction* showMenuBarAction() const;
+
public slots:
/**
* Handles the dropping of URLs to the given
@@ -362,6 +368,12 @@ private slots:
/** Opens Kompare for 2 selected files. */
void compareFiles();
+ /**
+ * Hides the menu bar if it is visible, makes the menu bar
+ * visible if it is hidden.
+ */
+ void toggleShowMenuBar();
+
/** Opens the settings dialog for Dolphin. */
void editSettings();
@@ -487,6 +499,7 @@ private:
};
KNewMenu* m_newMenu;
+ KAction* m_showMenuBar;
QSplitter* m_splitter;
DolphinViewContainer* m_activeViewContainer;
int m_id;
@@ -512,6 +525,11 @@ inline KNewMenu* DolphinMainWindow::newMenu() const
return m_newMenu;
}
+inline KAction* DolphinMainWindow::showMenuBarAction() const
+{
+ return m_showMenuBar;
+}
+
inline int DolphinMainWindow::getId() const
{
return m_id;