diff --git a/src/Gui/KSMainWindow.cpp b/src/Gui/KSMainWindow.cpp --- a/src/Gui/KSMainWindow.cpp +++ b/src/Gui/KSMainWindow.cpp @@ -41,6 +41,7 @@ #include #include #include +#include #ifdef XCB_FOUND #include @@ -57,6 +58,7 @@ #include #include #include +#include static const int DEFAULT_WINDOW_HEIGHT = 420; static const int DEFAULT_WINDOW_WIDTH = 840; @@ -372,7 +374,19 @@ void KSMainWindow::openScreenshotsFolder() { - new KRun(Settings::defaultSaveLocation(), this); + const QUrl url = Settings::defaultSaveLocation(); + const QList urls{url}; + + QMimeDatabase db; + QMimeType mime = db.mimeTypeForUrl(url); + KService::Ptr service = KMimeTypeTrader::self()->preferredService(mime.name()); + if (service) { + KRun::runApplication(*service, urls, nullptr); + } else { + QTimer::singleShot(0, [urls] { + KRun::displayOpenWithDialog(urls, nullptr); + }); + } } void KSMainWindow::quit(const QuitBehavior quitBehavior)