#include <kiconloader.h>
#include <kio/netaccess.h>
#include <kmenu.h>
+#include <kmenubar.h>
#include <kmessagebox.h>
#include <kmimetypetrader.h>
#include <knewmenu.h>
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));
KMenu* popup = new KMenu(m_mainWindow);
+ addShowMenubarAction(popup);
+
QAction* restoreAction = new QAction(i18nc("@action:inmenu", "Restore"), m_mainWindow);
popup->addAction(restoreAction);
Q_ASSERT(!m_fileInfo.isNull());
KMenu* popup = new KMenu(m_mainWindow);
+ addShowMenubarAction(popup);
insertDefaultItemActions(popup);
popup->addSeparator();
Q_ASSERT(m_fileInfo.isNull());
KMenu* popup = new KMenu(m_mainWindow);
+ addShowMenubarAction(popup);
+
// setup 'Create New' menu
KNewMenu* newMenu = m_mainWindow->newMenu();
newMenu->slotCheckUpToDate();
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"
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
{
#include <kinputdialog.h>
#include <klocale.h>
#include <kmenu.h>
+#include <kmenubar.h>
#include <kmessagebox.h>
#include <konqmimedata.h>
#include <konq_operations.h>
DolphinMainWindow::DolphinMainWindow(int id) :
KXmlGuiWindow(0),
m_newMenu(0),
+ m_showMenuBar(0),
m_splitter(0),
m_activeViewContainer(0),
m_id(id)
}
+void DolphinMainWindow::toggleShowMenuBar()
+{
+ const bool visible = menuBar()->isVisible();
+ menuBar()->setVisible(!visible);
+}
+
void DolphinMainWindow::editSettings()
{
DolphinSettingsDialog dialog(this);
connect(compareFiles, SIGNAL(triggered()), this, SLOT(compareFiles()));
// setup 'Settings' menu
+ m_showMenuBar = KStandardAction::showMenubar(this, SLOT(toggleShowMenuBar()), actionCollection());
KStandardAction::preferences(this, SLOT(editSettings()), actionCollection());
}
*/
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
/** 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();
};
KNewMenu* m_newMenu;
+ KAction* m_showMenuBar;
QSplitter* m_splitter;
DolphinViewContainer* m_activeViewContainer;
int m_id;
return m_newMenu;
}
+inline KAction* DolphinMainWindow::showMenuBarAction() const
+{
+ return m_showMenuBar;
+}
+
inline int DolphinMainWindow::getId() const
{
return m_id;