From 188b73e7d416a0edcf6bce69cbf8cd089cb30752 Mon Sep 17 00:00:00 2001 From: Kai Uwe Broulik Date: Wed, 8 Dec 2021 16:59:05 +0100 Subject: [PATCH] Show OpenUrlJob errors as inline message Avoids an ugly message box when opening a file fails or is forbidden. --- src/dolphinviewcontainer.cpp | 10 +++++++++- src/dolphinviewcontainer.h | 2 ++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/dolphinviewcontainer.cpp b/src/dolphinviewcontainer.cpp index 4ec855226..a647b6f43 100644 --- a/src/dolphinviewcontainer.cpp +++ b/src/dolphinviewcontainer.cpp @@ -656,8 +656,9 @@ void DolphinViewContainer::slotItemActivated(const KFileItem& item) } KIO::OpenUrlJob *job = new KIO::OpenUrlJob(item.targetUrl()); - job->setUiDelegate(new KIO::JobUiDelegate(KJobUiDelegate::AutoHandlingEnabled, this)); + job->setUiDelegate(new KIO::JobUiDelegate(KJobUiDelegate::AutoWarningHandlingEnabled, this)); job->setShowOpenOrExecuteDialog(true); + connect(job, &KIO::OpenUrlJob::finished, this, &DolphinViewContainer::slotOpenUrlFinished); job->start(); } @@ -829,6 +830,13 @@ void DolphinViewContainer::slotSortHiddenLastChanged(bool hiddenLast) } } +void DolphinViewContainer::slotOpenUrlFinished(KJob *job) +{ + if (job->error() && job->error() != KIO::ERR_USER_CANCELED) { + showErrorMessage(job->errorString()); + } +} + bool DolphinViewContainer::isSearchUrl(const QUrl& url) const { return url.scheme().contains(QLatin1String("search")); diff --git a/src/dolphinviewcontainer.h b/src/dolphinviewcontainer.h index c4a0c5ba8..5d2321952 100644 --- a/src/dolphinviewcontainer.h +++ b/src/dolphinviewcontainer.h @@ -364,6 +364,8 @@ private Q_SLOTS: void slotHiddenFilesShownChanged(bool showHiddenFiles); void slotSortHiddenLastChanged(bool hiddenLast); + void slotOpenUrlFinished(KJob* job); + private: /** * @return True if the URL protocol is a search URL (e. g. baloosearch:// or filenamesearch://). -- 2.47.3