X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/9e4642d435085f27134ed6c8431734dcacf65834..1b192c67f9735cd724c4958e7ba32a7b549770b6:/src/dolphincontextmenu.cpp diff --git a/src/dolphincontextmenu.cpp b/src/dolphincontextmenu.cpp index 0c192de38..eabd81e22 100644 --- a/src/dolphincontextmenu.cpp +++ b/src/dolphincontextmenu.cpp @@ -105,7 +105,6 @@ DolphinContextMenu::Command DolphinContextMenu::open() } else if (m_context & ItemContext) { openItemContextMenu(); } else { - Q_ASSERT(m_context == NoContext); openViewportContextMenu(); } @@ -224,7 +223,7 @@ void DolphinContextMenu::openItemContextMenu() const KFileItemListProperties& selectedItemsProps = selectedItemsProperties(); KFileItemActions fileItemActions; - fileItemActions.setParentWidget(m_mainWindow); + fileItemActions.setParentWidget(this); fileItemActions.setItemListProperties(selectedItemsProps); if (m_selectedItems.count() == 1) { @@ -432,23 +431,23 @@ QAction* DolphinContextMenu::createPasteAction() { QAction* action = nullptr; KFileItem destItem; - if (!m_fileInfo.isNull()) { + if (!m_fileInfo.isNull() && m_selectedItems.count() <= 1) { destItem = m_fileInfo; } else { destItem = baseFileItem(); } if (!destItem.isNull() && destItem.isDir()) { - if (m_selectedItems.count() <= 1) { - const QMimeData *mimeData = QApplication::clipboard()->mimeData(); - bool canPaste; - const QString text = KIO::pasteActionText(mimeData, &canPaste, destItem); - action = new QAction(QIcon::fromTheme(QStringLiteral("edit-paste")), text, this); - if (canPaste) { + const QMimeData *mimeData = QApplication::clipboard()->mimeData(); + bool canPaste; + const QString text = KIO::pasteActionText(mimeData, &canPaste, destItem); + if (canPaste) { + if (destItem == m_fileInfo) { + // if paste destination is a selected folder + action = new QAction(QIcon::fromTheme(QStringLiteral("edit-paste")), text, this); connect(action, &QAction::triggered, m_mainWindow, &DolphinMainWindow::pasteIntoFolder); } else { - // don't add the unavailable action - action = nullptr; + action = m_mainWindow->actionCollection()->action(KStandardAction::name(KStandardAction::Paste)); } } } @@ -497,8 +496,7 @@ void DolphinContextMenu::addAdditionalActions(KFileItemActions &fileItemActions, if (props.isDirectory() && props.isLocal()) { additionalActions << m_mainWindow->actionCollection()->action(QStringLiteral("open_terminal")); } - fileItemActions.addServiceActionsTo(this, additionalActions); - fileItemActions.addPluginActionsTo(this); + fileItemActions.addActionsTo(this, KFileItemActions::MenuActionSource::All, additionalActions); const DolphinView* view = m_mainWindow->activeViewContainer()->view(); const QList versionControlActions = view->versionControlActions(m_selectedItems);