]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Port away from KonqOperations::askDeleteConfirmation and KonqOperations::del
authorDavid Faure <faure@kde.org>
Fri, 22 Aug 2014 08:16:48 +0000 (10:16 +0200)
committerDavid Faure <faure@kde.org>
Fri, 22 Aug 2014 08:16:48 +0000 (10:16 +0200)
and remove them. Porting docs added to https://community.kde.org/Frameworks/Porting_Notes#libkonq

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

index 932d102b86a31d1edb58bbb89ba946959a69f6a4..9450d3e1795854026e8b249098eba12a25905ae8 100644 (file)
 
 #include <KFileItem>
 #include <KIconLoader>
+#include <KIO/CopyJob>
 #include <KIO/DeleteJob>
+#include <KIO/JobUiDelegate>
 #include <KMenu>
 #include <KIcon>
+#include <KJobWidgets>
 #include <KSharedConfig>
 #include <KConfigGroup>
 #include <kurlmimedata.h>
@@ -32,6 +35,7 @@
 #include <konq_operations.h>
 #include <KLocale>
 #include <KIO/Paste>
+#include <KIO/FileUndoManager>
 #include <KPropertiesDialog>
 
 #include "folderspanel.h"
@@ -187,12 +191,27 @@ void TreeViewContextMenu::rename()
 
 void TreeViewContextMenu::moveToTrash()
 {
-    KonqOperations::del(m_parent, KonqOperations::TRASH, KUrl::List() << m_fileItem.url());
+    KUrl::List list = KUrl::List() << m_fileItem.url();
+    KIO::JobUiDelegate uiDelegate;
+    uiDelegate.setWindow(m_parent);
+    if (uiDelegate.askDeleteConfirmation(list, KIO::JobUiDelegate::Trash, KIO::JobUiDelegate::DefaultConfirmation)) {
+        KIO::Job* job = KIO::trash(list);
+        KIO::FileUndoManager::self()->recordJob(KIO::FileUndoManager::Trash, list, KUrl("trash:/"), job);
+        KJobWidgets::setWindow(job, m_parent);
+        job->ui()->setAutoErrorHandlingEnabled(true);
+    }
 }
 
 void TreeViewContextMenu::deleteItem()
 {
-    KonqOperations::del(m_parent, KonqOperations::DEL, KUrl::List() << m_fileItem.url());
+    KUrl::List list = KUrl::List() << m_fileItem.url();
+    KIO::JobUiDelegate uiDelegate;
+    uiDelegate.setWindow(m_parent);
+    if (uiDelegate.askDeleteConfirmation(list, KIO::JobUiDelegate::Delete, KIO::JobUiDelegate::DefaultConfirmation)) {
+        KIO::Job* job = KIO::del(list);
+        KJobWidgets::setWindow(job, m_parent);
+        job->ui()->setAutoErrorHandlingEnabled(true);
+    }
 }
 
 void TreeViewContextMenu::showProperties()
index 00358a268c48aa71e912d397f3d8a2fba564fb4c..e57881c10ea587dab98e8624e629834c3a2de71b 100644 (file)
@@ -51,6 +51,7 @@
 #include <kitemviews/kitemlistselectionmanager.h>
 #include <kitemviews/kitemlistview.h>
 #include <kitemviews/kitemlistcontroller.h>
+#include <KIO/CopyJob>
 #include <KIO/DeleteJob>
 #include <KIO/JobUiDelegate>
 #include <KIO/NetAccess>
@@ -673,22 +674,26 @@ void DolphinView::renameSelectedItems()
 void DolphinView::trashSelectedItems()
 {
     const KUrl::List list = simplifiedSelectedUrls();
-    KonqOperations::del(this, KonqOperations::TRASH, list);
+    KIO::JobUiDelegate uiDelegate;
+    uiDelegate.setWindow(window());
+    if (uiDelegate.askDeleteConfirmation(list, KIO::JobUiDelegate::Trash, KIO::JobUiDelegate::DefaultConfirmation)) {
+        KIO::Job* job = KIO::trash(list);
+        KIO::FileUndoManager::self()->recordJob(KIO::FileUndoManager::Trash, list, KUrl("trash:/"), job);
+        KJobWidgets::setWindow(job, this);
+        connect(job, &KIO::Job::result,
+                this, &DolphinView::slotTrashFileFinished);
+    }
 }
 
 void DolphinView::deleteSelectedItems()
 {
     const KUrl::List list = simplifiedSelectedUrls();
-    const bool del = KonqOperations::askDeleteConfirmation(list,
-                     KonqOperations::DEL,
-                     KonqOperations::DEFAULT_CONFIRMATION,
-                     this);
 
-    if (del) {
+    KIO::JobUiDelegate uiDelegate;
+    uiDelegate.setWindow(window());
+    if (uiDelegate.askDeleteConfirmation(list, KIO::JobUiDelegate::Delete, KIO::JobUiDelegate::DefaultConfirmation)) {
         KIO::Job* job = KIO::del(list);
-        if (job->ui()) {
-            KJobWidgets::setWindow(job, this);
-        }
+        KJobWidgets::setWindow(job, this);
         connect(job, &KIO::Job::result,
                 this, &DolphinView::slotDeleteFileFinished);
     }
@@ -1357,6 +1362,15 @@ void DolphinView::calculateItemCount(int& fileCount,
     }
 }
 
+void DolphinView::slotTrashFileFinished(KJob* job)
+{
+    if (job->error() == 0) {
+        emit operationCompletedMessage(i18nc("@info:status", "Trash operation completed."));
+    } else if (job->error() != KIO::ERR_USER_CANCELED) {
+        emit errorMessage(job->errorString());
+    }
+}
+
 void DolphinView::slotDeleteFileFinished(KJob* job)
 {
     if (job->error() == 0) {
index e7a030aac1c20e95d635054f9fa89df4927f7541..688699096f3be34d9f4e4728961a150572cc42fb 100644 (file)
@@ -619,6 +619,12 @@ private slots:
      */
     void slotDeleteFileFinished(KJob* job);
 
+    /**
+     * Indicates in the status bar that the trash operation
+     * of the job \a job has been finished.
+     */
+    void slotTrashFileFinished(KJob* job);
+
     void slotRenamingFailed(const KUrl& oldUrl, const KUrl& newUrl);
 
     /**