Commit 17e1a48c authored by Méven Car's avatar Méven Car
Browse files

Use QDesktopServices to open urls not supported by dolphin


This improves portability.
QDesktopServices uses standard mimetype base resolution to find the app to use.

BUG: 372642
FIXED-IN: 20.04

Test Plan:
 * Open, 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:
parent 5778099e
......@@ -50,6 +50,7 @@
#include <QTimer>
#include <QUrl>
#include <QVBoxLayout>
#include <QDesktopServices>
DolphinViewContainer::DolphinViewContainer(const QUrl& url, 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"),
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 {
"Protocol not supported by Dolphin, Konqueror has been launched"),
"Protocol not supported by Dolphin, default application has been launched"),
const QString secureUrl = KShell::quoteArg(url.toDisplayString(QUrl::PreferLocalFile));
const QString command = app + ' ' + secureUrl;
KRun::runCommand(command, app, app, this);
redirect(QUrl(), m_urlNavigator->locationUrl(1));
} else {
showMessage(i18nc("@info:status", "Invalid protocol"), Error);
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment