diff --git a/applets/icon/CMakeLists.txt b/applets/icon/CMakeLists.txt --- a/applets/icon/CMakeLists.txt +++ b/applets/icon/CMakeLists.txt @@ -13,6 +13,7 @@ KF5::KIOCore # for OpenFileManagerWindowJob KF5::KIOGui # for FavIconRequestJob KF5::KIOWidgets # for KRun + KF5::Notifications KF5::Plasma PW::LibTaskManager) diff --git a/applets/icon/iconapplet.cpp b/applets/icon/iconapplet.cpp --- a/applets/icon/iconapplet.cpp +++ b/applets/icon/iconapplet.cpp @@ -40,7 +40,9 @@ #include #include #include +#include #include +#include #include #include @@ -444,7 +446,11 @@ const QString &localPath = m_url.toLocalFile(); if (KDesktopFile::isDesktopFile(localPath)) { - KRun::runService(KService(localPath), urls, nullptr); + KService::Ptr service(new KService(localPath)); + auto *job = new KIO::ApplicationLauncherJob(service); + job->setUrls(urls); + job->setUiDelegate(new KNotificationJobUiDelegate(KJobUiDelegate::AutoHandlingEnabled)); + job->start(); return; } diff --git a/applets/kicker/plugin/actionlist.cpp b/applets/kicker/plugin/actionlist.cpp --- a/applets/kicker/plugin/actionlist.cpp +++ b/applets/kicker/plugin/actionlist.cpp @@ -28,11 +28,12 @@ #include #include +#include #include #include +#include #include #include -#include #include #include @@ -131,7 +132,10 @@ return false; } - KRun::runService(*service, QList() << fileItem.url(), QApplication::activeWindow()); + auto *job = new KIO::ApplicationLauncherJob(service); + job->setUrls({fileItem.url()}); + job->setUiDelegate(new KNotificationJobUiDelegate(KJobUiDelegate::AutoHandlingEnabled)); + job->start(); *close = true; @@ -314,7 +318,10 @@ return false; } - return (KRun::runService(*service, QList() << QUrl(argument), QApplication::activeWindow()) != 0); + auto *job = new KIO::ApplicationLauncherJob(service); + job->setUrls({QUrl(argument)}); + job->setUiDelegate(new KNotificationJobUiDelegate(KJobUiDelegate::AutoHandlingEnabled)); + return job->exec(); } Q_GLOBAL_STATIC(MenuEntryEditor, menuEntryEditor) diff --git a/applets/kicker/plugin/appentry.cpp b/applets/kicker/plugin/appentry.cpp --- a/applets/kicker/plugin/appentry.cpp +++ b/applets/kicker/plugin/appentry.cpp @@ -35,8 +35,10 @@ #include #include #include +#include #include #include +#include #include #include #include @@ -203,10 +205,14 @@ } #endif - KRun::runApplication(*m_service, {}, nullptr, KRun::DeleteTemporaryFiles, {}, KStartupInfo::createNewStartupIdForTimestamp(timeStamp)); + auto *job = new KIO::ApplicationLauncherJob(m_service); + job->setUiDelegate(new KNotificationJobUiDelegate(KJobUiDelegate::AutoHandlingEnabled)); + job->setRunFlags(KIO::ApplicationLauncherJob::DeleteTemporaryFiles); + job->setStartupId(KStartupInfo::createNewStartupIdForTimestamp(timeStamp)); + job->start(); KActivities::ResourceInstance::notifyAccessed(QUrl(QStringLiteral("applications:") + m_service->storageId()), - QStringLiteral("org.kde.plasma.kicker")); + QStringLiteral("org.kde.plasma.kicker")); return true; } diff --git a/applets/kicker/plugin/recentusagemodel.cpp b/applets/kicker/plugin/recentusagemodel.cpp --- a/applets/kicker/plugin/recentusagemodel.cpp +++ b/applets/kicker/plugin/recentusagemodel.cpp @@ -37,8 +37,10 @@ #include #include +#include #include #include +#include #include #include #include @@ -379,8 +381,10 @@ } #endif - // TODO Once we depend on KDE Frameworks 5.24 and D1902 is merged, use KRun::runApplication instead - KRun::runService(*service, {}, nullptr, true, {}, KStartupInfo::createNewStartupIdForTimestamp(timeStamp)); + auto *job = new KIO::ApplicationLauncherJob(service); + job->setUiDelegate(new KNotificationJobUiDelegate(KJobUiDelegate::AutoHandlingEnabled)); + job->setStartupId(KStartupInfo::createNewStartupIdForTimestamp(timeStamp)); + job->start(); KActivities::ResourceInstance::notifyAccessed(QUrl(QStringLiteral("applications:") + storageId), QStringLiteral("org.kde.plasma.kicker")); diff --git a/klipper/urlgrabber.cpp b/klipper/urlgrabber.cpp --- a/klipper/urlgrabber.cpp +++ b/klipper/urlgrabber.cpp @@ -31,10 +31,11 @@ #include #include +#include +#include #include #include #include -#include #include #include "klippersettings.h" @@ -298,7 +299,10 @@ } if( !command.serviceStorageId.isEmpty()) { KService::Ptr service = KService::serviceByStorageId( command.serviceStorageId ); - KRun::runApplication( *service, QList< QUrl >() << QUrl( text ), nullptr ); + auto *job = new KIO::ApplicationLauncherJob(service); + job->setUrls({QUrl(text)}); + job->setUiDelegate(new KNotificationJobUiDelegate(KJobUiDelegate::AutoHandlingEnabled)); + job->start(); } else { ClipCommandProcess* proc = new ClipCommandProcess(*action, command, text, m_history, m_myClipItem); if (proc->program().isEmpty()) {