X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/de8ea90ca78ccfb26dd501dc3bc089fb24ad9094..aba4462e0238d6075e8822d56a78372eacfa7d2e:/src/dolphincontextmenu.cpp diff --git a/src/dolphincontextmenu.cpp b/src/dolphincontextmenu.cpp index eb3f641e5..ef74ec7f8 100644 --- a/src/dolphincontextmenu.cpp +++ b/src/dolphincontextmenu.cpp @@ -22,6 +22,7 @@ #include #include #include +#include #include #include #include @@ -30,7 +31,6 @@ #include #include #include -#include #include #include @@ -63,7 +63,10 @@ DolphinContextMenu::DolphinContextMenu(DolphinMainWindow* parent, const DolphinView* view = m_mainWindow->activeViewContainer()->view(); m_selectedItems = view->selectedItems(); - installEventFilter(this); + QApplication::instance()->installEventFilter(this); + + static_cast(m_mainWindow->actionCollection()-> + action(QStringLiteral("hamburger_menu")))->addToMenu(this); } DolphinContextMenu::~DolphinContextMenu() @@ -112,28 +115,23 @@ DolphinContextMenu::Command DolphinContextMenu::open() return m_command; } -void DolphinContextMenu::childEvent(QChildEvent* event) +bool DolphinContextMenu::eventFilter(QObject* object, QEvent* event) { - if(event->added()) { - event->child()->installEventFilter(this); - } - QMenu::childEvent(event); -} + Q_UNUSED(object) -bool DolphinContextMenu::eventFilter(QObject* dest, QEvent* event) -{ if(event->type() == QEvent::KeyPress || event->type() == QEvent::KeyRelease) { QKeyEvent* keyEvent = static_cast(event); - if(m_removeAction && keyEvent->key() == Qt::Key_Shift) { - if(event->type() == QEvent::KeyPress) { + + if (m_removeAction && keyEvent->key() == Qt::Key_Shift) { + if (event->type() == QEvent::KeyPress) { m_removeAction->update(DolphinRemoveAction::ShiftState::Pressed); } else { m_removeAction->update(DolphinRemoveAction::ShiftState::Released); } - return true; } } - return QMenu::eventFilter(dest, event); + + return false; } void DolphinContextMenu::openTrashContextMenu() @@ -149,8 +147,6 @@ void DolphinContextMenu::openTrashContextMenu() QAction* propertiesAction = m_mainWindow->actionCollection()->action(QStringLiteral("properties")); addAction(propertiesAction); - addShowMenuBarAction(); - if (exec(m_pos) == emptyTrashAction) { Trash::empty(m_mainWindow); } @@ -209,7 +205,7 @@ void DolphinContextMenu::addDirectoryItemContextMenu(KFileItemActions &fileItemA QMenu* menu = newFileMenu->menu(); menu->setTitle(i18nc("@title:menu Create new folder, file, link, etc.", "Create New")); - menu->setIcon(QIcon::fromTheme(QStringLiteral("document-new"))); + menu->setIcon(QIcon::fromTheme(QStringLiteral("list-add"))); addMenu(menu); addSeparator(); @@ -361,8 +357,6 @@ void DolphinContextMenu::openViewportContextMenu() QAction* propertiesAction = m_mainWindow->actionCollection()->action(QStringLiteral("properties")); addAction(propertiesAction); - addShowMenuBarAction(); - exec(m_pos); } @@ -423,16 +417,6 @@ void DolphinContextMenu::insertDefaultItemActions(const KFileItemListProperties& } } -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()) { - addSeparator(); - addAction(showMenuBar); - } -} - bool DolphinContextMenu::placeExists(const QUrl& url) const { const KFilePlacesModel* placesModel = DolphinPlacesModelSingleton::instance().placesModel(); @@ -508,7 +492,7 @@ void DolphinContextMenu::addAdditionalActions(KFileItemActions &fileItemActions, addSeparator(); QList additionalActions; - if (props.isDirectory() && props.isLocal()) { + if (props.isDirectory() && props.isLocal() && ContextMenuSettings::showOpenTerminal()) { additionalActions << m_mainWindow->actionCollection()->action(QStringLiteral("open_terminal")); } fileItemActions.addActionsTo(this, KFileItemActions::MenuActionSource::All, additionalActions);