From 0b278a3a986fdac8044e4a86dc855f8740444b5a Mon Sep 17 00:00:00 2001 From: Alexander Lohnau Date: Sun, 4 Sep 2022 09:23:10 +0200 Subject: [PATCH] Port away from deprecated KIO::JobUiDelegate constructor --- applets/kicker/plugin/fileentry.cpp | 3 +- applets/kicker/plugin/processrunner.cpp | 1 + applets/kicker/plugin/recentusagemodel.cpp | 3 +- applets/notifications/fileinfo.cpp | 6 ++-- applets/notifications/filemenu.cpp | 35 ++++++++++++--------- runners/baloo/baloosearchrunner.cpp | 3 +- runners/recentdocuments/recentdocuments.cpp | 3 +- 7 files changed, 32 insertions(+), 22 deletions(-) diff --git a/applets/kicker/plugin/fileentry.cpp b/applets/kicker/plugin/fileentry.cpp index 1cf5d1112..4ed617c5d 100644 --- a/applets/kicker/plugin/fileentry.cpp +++ b/applets/kicker/plugin/fileentry.cpp @@ -11,6 +11,7 @@ #include #include +#include #include #include @@ -108,7 +109,7 @@ bool FileEntry::run(const QString &actionId, const QVariant &argument) if (actionId.isEmpty()) { auto job = new KIO::OpenUrlJob(m_fileItem->url()); - job->setUiDelegate(new KIO::JobUiDelegate(KJobUiDelegate::AutoHandlingEnabled, QApplication::activeWindow())); + job->setUiDelegate(KIO::createDefaultJobUiDelegate(KJobUiDelegate::AutoHandlingEnabled, QApplication::activeWindow())); job->setShowOpenOrExecuteDialog(true); job->start(); diff --git a/applets/kicker/plugin/processrunner.cpp b/applets/kicker/plugin/processrunner.cpp index ebe17d0c5..651bfe975 100644 --- a/applets/kicker/plugin/processrunner.cpp +++ b/applets/kicker/plugin/processrunner.cpp @@ -8,6 +8,7 @@ #include #include +#include ProcessRunner::ProcessRunner(QObject *parent) : QObject(parent) diff --git a/applets/kicker/plugin/recentusagemodel.cpp b/applets/kicker/plugin/recentusagemodel.cpp index c1376cfc1..ad87ad273 100644 --- a/applets/kicker/plugin/recentusagemodel.cpp +++ b/applets/kicker/plugin/recentusagemodel.cpp @@ -32,6 +32,7 @@ #include #include #include +#include #include #include #include @@ -367,7 +368,7 @@ bool RecentUsageModel::trigger(int row, const QString &actionId, const QVariant const QUrl resourceUrl = docData(resource, Kicker::UrlRole, mimeType).toUrl(); auto job = new KIO::OpenUrlJob(resourceUrl); - job->setUiDelegate(new KIO::JobUiDelegate(KJobUiDelegate::AutoHandlingEnabled, QApplication::activeWindow())); + job->setUiDelegate(KIO::createDefaultJobUiDelegate(KJobUiDelegate::AutoHandlingEnabled, QApplication::activeWindow())); job->setShowOpenOrExecuteDialog(true); job->start(); diff --git a/applets/notifications/fileinfo.cpp b/applets/notifications/fileinfo.cpp index c08abd25d..c27d4e627 100644 --- a/applets/notifications/fileinfo.cpp +++ b/applets/notifications/fileinfo.cpp @@ -12,11 +12,11 @@ #include #include -#include #include -#include +#include #include #include +#include #include FileInfo::FileInfo(QObject *parent) @@ -145,7 +145,7 @@ void FileInfo::mimeTypeFound(const QString &mimeType) job->setUiDelegate(new KNotificationJobUiDelegate(KJobUiDelegate::AutoErrorHandlingEnabled)); } else { // needs KIO::JobUiDelegate for open with handler - job->setUiDelegate(new KIO::JobUiDelegate(KJobUiDelegate::AutoErrorHandlingEnabled, nullptr /*widget*/)); + job->setUiDelegate(KIO::createDefaultJobUiDelegate(KJobUiDelegate::AutoErrorHandlingEnabled, nullptr /*widget*/)); } job->setUrls({m_url}); job->start(); diff --git a/applets/notifications/filemenu.cpp b/applets/notifications/filemenu.cpp index 9c92d6c8a..8845907a7 100644 --- a/applets/notifications/filemenu.cpp +++ b/applets/notifications/filemenu.cpp @@ -29,6 +29,7 @@ #include #include #include +#include FileMenu::FileMenu(QObject *parent) : QObject(parent) @@ -147,14 +148,16 @@ void FileMenu::open(int x, int y) const bool canTrash = itemProperties.isLocal() && itemProperties.supportsMoving(); if (canTrash) { auto moveToTrashLambda = [this] { - const QList urls{m_url}; - - KIO::JobUiDelegate uiDelegate; - if (uiDelegate.askDeleteConfirmation(urls, KIO::JobUiDelegate::Trash, KIO::JobUiDelegate::DefaultConfirmation)) { - auto *job = KIO::trash(urls); - job->uiDelegate()->setAutoErrorHandlingEnabled(true); - KIO::FileUndoManager::self()->recordJob(KIO::FileUndoManager::Trash, urls, QUrl(QStringLiteral("trash:/")), job); - } + auto handler = new KIO::WidgetsAskUserActionHandler(this); + connect(handler, &KIO::WidgetsAskUserActionHandler::askUserDeleteResult, [handler](bool allow, const QList &urls) { + if (allow) { + auto job = KIO::trash(urls); + job->uiDelegate()->setAutoErrorHandlingEnabled(true); + KIO::FileUndoManager::self()->recordJob(KIO::FileUndoManager::Trash, urls, QUrl(QStringLiteral("trash:/")), job); + } + handler->deleteLater(); + }); + handler->askUserDelete({m_url}, KIO::AskUserActionInterface::Trash, KIO::AskUserActionInterface::DefaultConfirmation); }; QAction *moveToTrashAction = KStandardAction::moveToTrash(this, moveToTrashLambda, menu); moveToTrashAction->setShortcut({}); // Can't focus notification to press Delete @@ -166,13 +169,15 @@ void FileMenu::open(int x, int y) if (itemProperties.supportsDeleting() && (!canTrash || showDeleteCommand)) { auto deleteLambda = [this] { - const QList urls{m_url}; - - KIO::JobUiDelegate uiDelegate; - if (uiDelegate.askDeleteConfirmation(urls, KIO::JobUiDelegate::Delete, KIO::JobUiDelegate::DefaultConfirmation)) { - auto *job = KIO::del(urls); - job->uiDelegate()->setAutoErrorHandlingEnabled(true); - } + auto handler = new KIO::WidgetsAskUserActionHandler(this); + connect(handler, &KIO::WidgetsAskUserActionHandler::askUserDeleteResult, [handler](bool allow, const QList &urls) { + if (allow) { + auto job = KIO::del(urls); + job->uiDelegate()->setAutoErrorHandlingEnabled(true); + } + handler->deleteLater(); + }); + handler->askUserDelete({m_url}, KIO::AskUserActionInterface::Delete, KIO::AskUserActionInterface::DefaultConfirmation); }; QAction *deleteAction = KStandardAction::deleteFile(this, deleteLambda, menu); deleteAction->setShortcut({}); diff --git a/runners/baloo/baloosearchrunner.cpp b/runners/baloo/baloosearchrunner.cpp index 83ea978b5..b5ea8a0b8 100644 --- a/runners/baloo/baloosearchrunner.cpp +++ b/runners/baloo/baloosearchrunner.cpp @@ -21,6 +21,7 @@ #include #include +#include #include #include #include @@ -159,7 +160,7 @@ void SearchRunner::Run(const QString &id, const QString &actionId) } auto *job = new KIO::OpenUrlJob(url); - job->setUiDelegate(new KIO::JobUiDelegate(KJobUiDelegate::AutoHandlingEnabled, QApplication::activeWindow())); + job->setUiDelegate(KIO::createDefaultJobUiDelegate(KJobUiDelegate::AutoHandlingEnabled, QApplication::activeWindow())); job->setShowOpenOrExecuteDialog(true); job->start(); } diff --git a/runners/recentdocuments/recentdocuments.cpp b/runners/recentdocuments/recentdocuments.cpp index d117b8b80..cea081313 100644 --- a/runners/recentdocuments/recentdocuments.cpp +++ b/runners/recentdocuments/recentdocuments.cpp @@ -12,6 +12,7 @@ #include #include +#include #include #include #include @@ -110,7 +111,7 @@ void RecentDocuments::run(const Plasma::RunnerContext &context, const Plasma::Qu } auto *job = new KIO::OpenUrlJob(url); - job->setUiDelegate(new KIO::JobUiDelegate(KJobUiDelegate::AutoHandlingEnabled, QApplication::activeWindow())); + job->setUiDelegate(KIO::createDefaultJobUiDelegate(KJobUiDelegate::AutoHandlingEnabled, QApplication::activeWindow())); job->setShowOpenOrExecuteDialog(true); job->start(); }