X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/32c1bd71880b3987700aee2d42bfba83c7a1a3bd..b7e859827d405ff15b6039f35cefa869868d2733:/src/trash/dolphintrash.cpp diff --git a/src/trash/dolphintrash.cpp b/src/trash/dolphintrash.cpp index df8834556..dd71135a5 100644 --- a/src/trash/dolphintrash.cpp +++ b/src/trash/dolphintrash.cpp @@ -7,14 +7,13 @@ #include "dolphintrash.h" -#include -#include -#include -#include -#include #include #include +#include #include +#include + +#include 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,22 @@ 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"), + KNotification::DefaultEvent); +} + +void Trash::empty(QWidget *window) { - KIO::JobUiDelegate uiDelegate; - uiDelegate.setWindow(window); - bool confirmed = uiDelegate.askDeleteConfirmation(QList(), 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{}, Iface::EmptyTrash, Iface::DefaultConfirmation, window); + QObject::connect(emptyJob, &KIO::Job::result, notifyEmptied); + emptyJob->start(); } bool Trash::isEmpty() @@ -70,3 +67,4 @@ bool Trash::isEmpty() return (trashConfig.group("Status").readEntry("Empty", true)); } +#include "moc_dolphintrash.cpp"