]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Show OpenUrlJob errors as inline message
authorKai Uwe Broulik <kde@privat.broulik.de>
Wed, 8 Dec 2021 15:59:05 +0000 (16:59 +0100)
committerKai Uwe Broulik <kde@privat.broulik.de>
Wed, 8 Dec 2021 15:59:05 +0000 (16:59 +0100)
Avoids an ugly message box when opening a file fails or is forbidden.

src/dolphinviewcontainer.cpp
src/dolphinviewcontainer.h

index 4ec855226b058ec4bd0071354d784dd5635a8181..a647b6f43f9d1286fc319d94c05cd55b4c8c3c4e 100644 (file)
@@ -656,8 +656,9 @@ void DolphinViewContainer::slotItemActivated(const KFileItem& item)
     }
 
     KIO::OpenUrlJob *job = new KIO::OpenUrlJob(item.targetUrl());
     }
 
     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);
     job->setShowOpenOrExecuteDialog(true);
+    connect(job, &KIO::OpenUrlJob::finished, this, &DolphinViewContainer::slotOpenUrlFinished);
     job->start();
 }
 
     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"));
 bool DolphinViewContainer::isSearchUrl(const QUrl& url) const
 {
     return url.scheme().contains(QLatin1String("search"));
index c4a0c5ba84d2b2eaaeb6b7755e2441bda6c0964a..5d23219529017f585a7afc85f3123784d1c1ba1b 100644 (file)
@@ -364,6 +364,8 @@ private Q_SLOTS:
     void slotHiddenFilesShownChanged(bool showHiddenFiles);
     void slotSortHiddenLastChanged(bool hiddenLast);
 
     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://).
 private:
     /**
      * @return True if the URL protocol is a search URL (e. g. baloosearch:// or filenamesearch://).