mirror of
https://invent.kde.org/system/dolphin
synced 2024-09-12 12:54:29 +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 "dolphintrash.h"
|
||||||
|
|
||||||
#include <KIO/JobUiDelegate>
|
|
||||||
#include <kio_version.h>
|
|
||||||
#include <KJobWidgets>
|
|
||||||
#include <QList>
|
#include <QList>
|
||||||
#include <KNotification>
|
#include <KNotification>
|
||||||
#include <KConfig>
|
#include <KConfig>
|
||||||
#include <KConfigGroup>
|
#include <KConfigGroup>
|
||||||
#include <KLocalizedString>
|
#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()
|
Trash::Trash()
|
||||||
: m_trashDirLister(new KDirLister())
|
: m_trashDirLister(new KDirLister())
|
||||||
{
|
{
|
||||||
|
@ -44,8 +49,25 @@ Trash &Trash::instance()
|
||||||
return result;
|
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;
|
KIO::JobUiDelegate uiDelegate;
|
||||||
uiDelegate.setWindow(window);
|
uiDelegate.setWindow(window);
|
||||||
bool confirmed = uiDelegate.askDeleteConfirmation(QList<QUrl>(), KIO::JobUiDelegate::EmptyTrash, KIO::JobUiDelegate::DefaultConfirmation);
|
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();
|
KIO::Job* job = KIO::emptyTrash();
|
||||||
KJobWidgets::setWindow(job, window);
|
KJobWidgets::setWindow(job, window);
|
||||||
job->uiDelegate()->setAutoErrorHandlingEnabled(true);
|
job->uiDelegate()->setAutoErrorHandlingEnabled(true);
|
||||||
// as long as KIO doesn't do this, do it ourselves
|
QObject::connect(emptyJob, &KIO::Job::result, notifyEmptied);
|
||||||
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;
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Trash::isEmpty()
|
bool Trash::isEmpty()
|
||||||
|
|
|
@ -25,7 +25,7 @@ public:
|
||||||
Trash& operator=(Trash &&) = delete;
|
Trash& operator=(Trash &&) = delete;
|
||||||
|
|
||||||
static Trash& instance();
|
static Trash& instance();
|
||||||
static KIO::Job* empty(QWidget *window);
|
static void empty(QWidget *window);
|
||||||
static bool isEmpty();
|
static bool isEmpty();
|
||||||
|
|
||||||
Q_SIGNALS:
|
Q_SIGNALS:
|
||||||
|
|
Loading…
Reference in a new issue