]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Dolphin: port to KIO::pasteInfoText().
authorDavid Faure <faure@kde.org>
Tue, 21 Oct 2014 18:44:37 +0000 (20:44 +0200)
committerDavid Faure <faure@kde.org>
Tue, 21 Oct 2014 19:59:05 +0000 (21:59 +0200)
DolphinContextMenu::createPasteAction used to be precise about destination
("Paste To Folder"), while now it's precise about the source (what to paste).
It was decided that this was more useful and consistent anyway.

REVIEW: 120695

src/dolphincontextmenu.cpp
src/panels/folders/treeviewcontextmenu.cpp
src/views/dolphinview.cpp

index b01346985e12ccfc72b0b572f26d4d0c7f3555eb..cb389b19cc687ac3b5183c742f4096a1a214e1ca 100644 (file)
@@ -34,8 +34,8 @@
 #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 <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));
index 4afe9e8e39360b235413a5e9cdee07393faaa344..85d1215c683108d443ccc42f0c42dce780b0667d 100644 (file)
@@ -70,10 +70,12 @@ void TreeViewContextMenu::open()
         QAction* copyAction = new QAction(QIcon::fromTheme("edit-copy"), i18nc("@action:inmenu", "Copy"), this);
         connect(copyAction, &QAction::triggered, this, &TreeViewContextMenu::copy);
 
-        const QPair<bool, QString> pasteInfo = KonqOperations::pasteInfo(m_fileItem.url());
-        QAction* pasteAction = new QAction(QIcon::fromTheme("edit-paste"), pasteInfo.second, this);
+        const QMimeData *mimeData = QApplication::clipboard()->mimeData();
+        bool canPaste;
+        const QString text = KIO::pasteActionText(mimeData, &canPaste, m_fileItem);
+        QAction* pasteAction = new QAction(QIcon::fromTheme("edit-paste"), text, this);
         connect(pasteAction, &QAction::triggered, this, &TreeViewContextMenu::paste);
-        pasteAction->setEnabled(pasteInfo.first);
+        pasteAction->setEnabled(canPaste);
 
         popup->addAction(cutAction);
         popup->addAction(copyAction);
index f35c9e6ca60868867b0719e5668f2225a589c732..b330e5f5c33643c20cd504ca947e25b63c5de1f0 100644 (file)
@@ -1149,7 +1149,10 @@ void DolphinView::updateSortFoldersFirst(bool foldersFirst)
 
 QPair<bool, QString> DolphinView::pasteInfo() const
 {
-    return KonqOperations::pasteInfo(url());
+    const QMimeData *mimeData = QApplication::clipboard()->mimeData();
+    QPair<bool, QString> info;
+    info.second = KIO::pasteActionText(mimeData, &info.first, rootItem());
+    return info;
 }
 
 void DolphinView::setTabsForFilesEnabled(bool tabsForFiles)