┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/trash
diff options
context:
space:
mode:
authorAhmad Samir <[email protected]>2022-09-07 21:55:45 +0200
committerAhmad Samir <[email protected]>2022-10-16 13:13:22 +0200
commita0c0b43b97017280f6290fc720f41307a5b85d22 (patch)
treec4fbabf4e77aedd0e0197fc54a45aaa66f3d628d /src/trash
parent673c54ce35874ba396fad935cd5f0512a129220b (diff)
DolphinTrash: port away from deprecated KIO API
Also change empty() method to return void, nothing was using the KJob * it was returning.
Diffstat (limited to 'src/trash')
-rw-r--r--src/trash/dolphintrash.cpp40
-rw-r--r--src/trash/dolphintrash.h2
2 files changed, 29 insertions, 13 deletions
diff --git a/src/trash/dolphintrash.cpp b/src/trash/dolphintrash.cpp
index 1446ab388..236f9817d 100644
--- a/src/trash/dolphintrash.cpp
+++ b/src/trash/dolphintrash.cpp
@@ -7,15 +7,20 @@
#include "dolphintrash.h"
-#include <KIO/JobUiDelegate>
-#include <kio_version.h>
-#include <KJobWidgets>
#include <QList>
#include <KNotification>
#include <KConfig>
#include <KConfigGroup>
#include <KLocalizedString>
+#include <kio_version.h>
+#if KIO_VERSION >= QT_VERSION_CHECK(5, 100, 0)
+#include <KIO/DeleteOrTrashJob>
+#else
+#include <KIO/JobUiDelegate>
+#include <KJobWidgets>
+#endif
+
Trash::Trash()
: m_trashDirLister(new KDirLister())
{
@@ -44,8 +49,25 @@ 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)
{
+#if KIO_VERSION >= QT_VERSION_CHECK(5, 100, 0)
+ 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();
+#else
KIO::JobUiDelegate uiDelegate;
uiDelegate.setWindow(window);
bool confirmed = uiDelegate.askDeleteConfirmation(QList<QUrl>(), KIO::JobUiDelegate::EmptyTrash, KIO::JobUiDelegate::DefaultConfirmation);
@@ -53,15 +75,9 @@ KIO::Job *Trash::empty(QWidget *window)
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;
+ QObject::connect(emptyJob, &KIO::Job::result, notifyEmptied);
}
- return nullptr;
+#endif
}
bool Trash::isEmpty()
diff --git a/src/trash/dolphintrash.h b/src/trash/dolphintrash.h
index 2ee85e89a..c65cf9232 100644
--- a/src/trash/dolphintrash.h
+++ b/src/trash/dolphintrash.h
@@ -25,7 +25,7 @@ public:
Trash& operator=(Trash &&) = delete;
static Trash& instance();
- static KIO::Job* empty(QWidget *window);
+ static void empty(QWidget *window);
static bool isEmpty();
Q_SIGNALS: