]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/trash/dolphintrash.cpp
Merge branch 'master' into kf6
[dolphin.git] / src / trash / dolphintrash.cpp
index df88345561b1268a44dca0281e570fac31713906..bbc9c579f40ad80a040a42d865c055005065f592 100644 (file)
@@ -7,14 +7,13 @@
 
 #include "dolphintrash.h"
 
-#include <KIO/JobUiDelegate>
-#include <kio_version.h>
-#include <KJobWidgets>
-#include <QList>
-#include <KNotification>
 #include <KConfig>
 #include <KConfigGroup>
+#include <KIO/DeleteOrTrashJob>
 #include <KLocalizedString>
+#include <KNotification>
+
+#include <QList>
 
 Trash::Trash()
     : m_trashDirLister(new KDirLister())
@@ -28,7 +27,7 @@ Trash::Trash()
         bool isTrashEmpty = m_trashDirLister->items().isEmpty();
         Q_EMIT emptinessChanged(isTrashEmpty);
     };
-    connect(m_trashDirLister, QOverload<>::of(&KCoreDirLister::completed), this, trashDirContentChanged);
+    connect(m_trashDirLister, &KCoreDirLister::completed, this, trashDirContentChanged);
     connect(m_trashDirLister, &KDirLister::itemsDeleted, this, trashDirContentChanged);
     m_trashDirLister->openUrl(QUrl(QStringLiteral("trash:/")));
 }
@@ -44,24 +43,23 @@ Trash &Trash::instance()
     return result;
 }
 
-KIO::Job *Trash::empty(QWidget *window)
+static void notifyEmptied()
+{
+    // As long as KIO doesn't do this, do it ourselves
+    KNotification::event(QStringLiteral("Trash: emptied"),
+                         i18n("Trash Emptied"),
+                         i18n("The Trash was emptied."),
+                         QStringLiteral("user-trash"),
+                         nullptr,
+                         KNotification::DefaultEvent);
+}
+
+void Trash::empty(QWidget *window)
 {
-    KIO::JobUiDelegate uiDelegate;
-    uiDelegate.setWindow(window);
-    bool confirmed = uiDelegate.askDeleteConfirmation(QList<QUrl>(), KIO::JobUiDelegate::EmptyTrash, KIO::JobUiDelegate::DefaultConfirmation);
-    if (confirmed) {
-        KIO::Job* job = KIO::emptyTrash();
-        KJobWidgets::setWindow(job, window);
-        job->uiDelegate()->setAutoErrorHandlingEnabled(true);
-         // as long as KIO doesn't do this, do it ourselves
-        connect(job, &KIO::Job::result, []() {
-            KNotification::event(QStringLiteral("Trash: emptied"), i18n("Trash Emptied"),
-                                 i18n("The Trash was emptied."), QStringLiteral("user-trash"),
-                                 nullptr, KNotification::DefaultEvent);
-        });
-        return job;
-    }
-    return nullptr;
+    using Iface = KIO::AskUserActionInterface;
+    auto *emptyJob = new KIO::DeleteOrTrashJob(QList<QUrl>{}, Iface::EmptyTrash, Iface::DefaultConfirmation, window);
+    QObject::connect(emptyJob, &KIO::Job::result, notifyEmptied);
+    emptyJob->start();
 }
 
 bool Trash::isEmpty()
@@ -70,3 +68,4 @@ bool Trash::isEmpty()
     return (trashConfig.group("Status").readEntry("Empty", true));
 }
 
+#include "moc_dolphintrash.cpp"