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.
This commit is contained in:
Peter Penz 2011-03-27 19:27:27 +02:00
parent c80b261505
commit 2dcc433ab2
2 changed files with 21 additions and 0 deletions

View 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();

View file

@ -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.
*/