mirror of
https://invent.kde.org/system/dolphin
synced 2024-08-22 01:40:02 +00:00
DolphinTrash: port away from deprecated KIO API
Also change empty() method to return void, nothing was using the KJob * it was returning.
This commit is contained in:
parent
673c54ce35
commit
a0c0b43b97
|
@ -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()
|
||||
|
|
|
@ -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:
|
||||
|
|
Loading…
Reference in a new issue