diff options
Diffstat (limited to 'src/gui/util/qdesktopservices.cpp')
-rw-r--r-- | src/gui/util/qdesktopservices.cpp | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/src/gui/util/qdesktopservices.cpp b/src/gui/util/qdesktopservices.cpp index 0f1312e02d..13e2585b88 100644 --- a/src/gui/util/qdesktopservices.cpp +++ b/src/gui/util/qdesktopservices.cpp @@ -45,14 +45,14 @@ #include <qdebug.h> -#include "qdesktopservices_qpa.cpp" - #include <qstandardpaths.h> #include <qhash.h> #include <qobject.h> #include <qcoreapplication.h> +#include <private/qguiapplication_p.h> #include <qurl.h> #include <qmutex.h> +#include <qplatformservices_qpa.h> QT_BEGIN_NAMESPACE @@ -185,14 +185,15 @@ bool QDesktopServices::openUrl(const QUrl &url) return result; // ### support bool slot return type } } - - bool result; - if (url.scheme() == QLatin1String("file")) - result = openDocument(url); - else - result = launchWebBrowser(url); - - return result; + if (!url.isValid()) + return false; + QPlatformServices *platformServices = QGuiApplicationPrivate::platformIntegration()->services(); + if (!platformServices) { + qWarning("%s: The platform plugin does not support services.", Q_FUNC_INFO); + return false; + } + return url.scheme() == QStringLiteral("file") ? + platformServices->openDocument(url) : platformServices->openUrl(url); } /*! |