]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphincontextmenu.cpp
port away from VBox/HBox
[dolphin.git] / src / dolphincontextmenu.cpp
index 9a47faef72798923999a23697db8beba645b7e89..a7300334f4dd2ec8749ee27d6afd4db265fb592d 100644 (file)
 #include <KIO/RestoreJob>
 #include <KIO/EmptyTrashJob>
 #include <KIO/JobUiDelegate>
+#include <KIO/Paste>
 #include <KJobWidgets>
-#include <QMenu>
 #include <KMimeTypeTrader>
-#include <KMimeType>
 #include <KNewFileMenu>
 #include <konq_operations.h>
 #include <KService>
 #include <KStandardAction>
 #include <KToolBar>
 
+#include <QApplication>
+#include <QClipboard>
+#include <QKeyEvent>
 #include <QMenuBar>
+#include <QMenu>
+
 #include <panels/places/placesitem.h>
 #include <panels/places/placesitemmodel.h>
 
@@ -440,9 +444,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));
@@ -462,7 +468,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;
 }