]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphincontextmenu.cpp
Port from KStringHandler naturalCompare to QCollator compare.
[dolphin.git] / src / dolphincontextmenu.cpp
index b01346985e12ccfc72b0b572f26d4d0c7f3555eb..c227be6d8fb574960e7db205f6ab0d7070d6dd63 100644 (file)
 #include "dolphinremoveaction.h"
 
 #include <KActionCollection>
-#include <kfileitemactionplugin.h>
-#include <kabstractfileitemactionplugin.h>
+#include <KAbstractFileItemActionPlugin>
 #include <KFileItemActions>
 #include <KFileItemListProperties>
 #include <KIO/RestoreJob>
 #include <KIO/EmptyTrashJob>
 #include <KIO/JobUiDelegate>
+#include <KIO/Paste>
 #include <KJobWidgets>
-#include <QMenu>
 #include <KMimeTypeTrader>
 #include <KNewFileMenu>
 #include <konq_operations.h>
 #include <KStandardAction>
 #include <KToolBar>
 
+#include <QApplication>
+#include <QClipboard>
+#include <QKeyEvent>
 #include <QMenuBar>
+#include <QMenu>
+
 #include <panels/places/placesitem.h>
 #include <panels/places/placesitemmodel.h>
 
@@ -439,9 +443,11 @@ QAction* DolphinContextMenu::createPasteAction()
     QAction* action = 0;
     const bool isDir = !m_fileInfo.isNull() && m_fileInfo.isDir();
     if (isDir && (m_selectedItems.count() == 1)) {
-        const QPair<bool, QString> pasteInfo = KonqOperations::pasteInfo(m_fileInfo.url());
-        action = new QAction(QIcon::fromTheme("edit-paste"), i18nc("@action:inmenu", "Paste Into Folder"), this);
-        action->setEnabled(pasteInfo.first);
+        const QMimeData *mimeData = QApplication::clipboard()->mimeData();
+        bool canPaste;
+        const QString text = KIO::pasteActionText(mimeData, &canPaste, m_fileInfo);
+        action = new QAction(QIcon::fromTheme("edit-paste"), text, this);
+        action->setEnabled(canPaste);
         connect(action, &QAction::triggered, m_mainWindow, &DolphinMainWindow::pasteIntoFolder);
     } else {
         action = m_mainWindow->actionCollection()->action(KStandardAction::name(KStandardAction::Paste));
@@ -461,7 +467,7 @@ KFileItemListProperties& DolphinContextMenu::selectedItemsProperties() const
 KFileItem DolphinContextMenu::baseFileItem()
 {
     if (!m_baseFileItem) {
-        m_baseFileItem = new KFileItem(KFileItem::Unknown, KFileItem::Unknown, m_baseUrl);
+        m_baseFileItem = new KFileItem(m_baseUrl);
     }
     return *m_baseFileItem;
 }
@@ -505,13 +511,6 @@ void DolphinContextMenu::addFileItemPluginActions()
             continue;
         }
 
-        // Old API (kdelibs-4.6.0 only)
-        KFileItemActionPlugin* plugin = service->createInstance<KFileItemActionPlugin>();
-        if (plugin) {
-            plugin->setParent(this);
-            addActions(plugin->actions(props, m_mainWindow));
-        }
-        // New API (kdelibs >= 4.6.1)
         KAbstractFileItemActionPlugin* abstractPlugin = service->createInstance<KAbstractFileItemActionPlugin>();
         if (abstractPlugin) {
             abstractPlugin->setParent(this);