diff options
| author | Méven Car <[email protected]> | 2020-01-17 18:10:40 +0100 |
|---|---|---|
| committer | Méven Car <[email protected]> | 2020-01-20 16:50:14 +0100 |
| commit | 17e1a48c68000f92033196b6d19d876143a13608 (patch) | |
| tree | 9dcc2dddc8d432fd13f1cacd1af0a3348f77c288 /src/dolphinviewcontainer.cpp | |
| parent | 5778099ece7a4e6c37c3e0c6950aa0bdf259bcb3 (diff) | |
Use QDesktopServices to open urls not supported by dolphin
Summary:
This improves portability.
QDesktopServices uses standard mimetype base resolution to find the app to use.
BUG: 372642
FIXED-IN: 20.04
Test Plan:
* Open http://google.com, opened default web browser
* Open mms:// (on my test system opened vlc)
Reviewers: #dolphin, elvisangelaccio, ngraham
Reviewed By: #dolphin, elvisangelaccio, ngraham
Subscribers: nicolasfella, kfm-devel
Tags: #dolphin
Differential Revision: https://phabricator.kde.org/D26732
Diffstat (limited to 'src/dolphinviewcontainer.cpp')
| -rw-r--r-- | src/dolphinviewcontainer.cpp | 19 |
1 files changed, 4 insertions, 15 deletions
diff --git a/src/dolphinviewcontainer.cpp b/src/dolphinviewcontainer.cpp index 9ed7654fa..bd3c8ed20 100644 --- a/src/dolphinviewcontainer.cpp +++ b/src/dolphinviewcontainer.cpp @@ -50,6 +50,7 @@ #include <QTimer> #include <QUrl> #include <QVBoxLayout> +#include <QDesktopServices> DolphinViewContainer::DolphinViewContainer(const QUrl& url, QWidget* parent) : QWidget(parent), @@ -691,30 +692,18 @@ void DolphinViewContainer::slotUrlNavigatorLocationChanged(const QUrl& url) QTimer::singleShot(0, this, &DolphinViewContainer::requestFocus); } } else if (KProtocolManager::isSourceProtocol(url)) { - QString app = QStringLiteral("konqueror"); if (url.scheme().startsWith(QLatin1String("http"))) { showMessage(i18nc("@info:status", // krazy:exclude=qmethods "Dolphin does not support web pages, the web browser has been launched"), Information); - - const KConfigGroup config(KSharedConfig::openConfig(QStringLiteral("kdeglobals")), "General"); - const QString browser = config.readEntry("BrowserApplication"); - if (!browser.isEmpty()) { - app = browser; - if (app.startsWith('!')) { - // a literal command has been configured, remove the '!' prefix - app.remove(0, 1); - } - } } else { showMessage(i18nc("@info:status", - "Protocol not supported by Dolphin, Konqueror has been launched"), + "Protocol not supported by Dolphin, default application has been launched"), Information); } - const QString secureUrl = KShell::quoteArg(url.toDisplayString(QUrl::PreferLocalFile)); - const QString command = app + ' ' + secureUrl; - KRun::runCommand(command, app, app, this); + QDesktopServices::openUrl(url); + redirect(QUrl(), m_urlNavigator->locationUrl(1)); } else { showMessage(i18nc("@info:status", "Invalid protocol"), Error); } |
