Show OpenUrlJob errors as inline message

Avoids an ugly message box when opening a file fails or is forbidden.
This commit is contained in:
Kai Uwe Broulik 2021-12-08 16:59:05 +01:00
parent 1035f182b1
commit 188b73e7d4
2 changed files with 11 additions and 1 deletions

View file

@ -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"));

View file

@ -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://).