diff options
author | Friedemann Kleint <Friedemann.Kleint@nokia.com> | 2012-02-08 08:40:48 +0100 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-02-10 22:53:13 +0100 |
commit | c908fc4448989d0319f86da35c8fa66ad1440fa2 (patch) | |
tree | d3cc0c1980a0cb48b6a423478aa80c9b9af51280 /src/gui/kernel | |
parent | d43a01e1496c9be16cd2e3dc290bf70e926ceb99 (diff) |
Add QPlatformServices class.
- Add QPlatformServices as back-end for
QDesktopServices.
- Bring back UNIX/Linux desktop detection in platformsupport
as a generic implementation.
- Add Windows implementation.
Reviewed-by: Morten Johan Sorvig <morten.sorvig@nokia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Reviewed-by: Anselmo Lacerda S. de Melo <anselmo.melo@openbossa.org>
Change-Id: If94bb65755df4f849edd83c57143ee2c73002137
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Diffstat (limited to 'src/gui/kernel')
-rw-r--r-- | src/gui/kernel/kernel.pri | 6 | ||||
-rw-r--r-- | src/gui/kernel/qplatformintegration_qpa.cpp | 5 | ||||
-rw-r--r-- | src/gui/kernel/qplatformintegration_qpa.h | 3 | ||||
-rw-r--r-- | src/gui/kernel/qplatformservices_qpa.cpp | 74 | ||||
-rw-r--r-- | src/gui/kernel/qplatformservices_qpa.h | 65 |
5 files changed, 151 insertions, 2 deletions
diff --git a/src/gui/kernel/kernel.pri b/src/gui/kernel/kernel.pri index 7b01ba14cd..9c5f3b10da 100644 --- a/src/gui/kernel/kernel.pri +++ b/src/gui/kernel/kernel.pri @@ -55,7 +55,8 @@ HEADERS += \ kernel/qtouchdevice.h \ kernel/qtouchdevice_p.h \ kernel/qplatformsharedgraphicscache_qpa.h \ - kernel/qplatformdialoghelper_qpa.h + kernel/qplatformdialoghelper_qpa.h \ + kernel/qplatformservices_qpa.h SOURCES += \ kernel/qclipboard_qpa.cpp \ @@ -97,7 +98,8 @@ SOURCES += \ kernel/qstylehints.cpp \ kernel/qtouchdevice.cpp \ kernel/qplatformsharedgraphicscache_qpa.cpp \ - kernel/qplatformdialoghelper_qpa.cpp + kernel/qplatformdialoghelper_qpa.cpp \ + kernel/qplatformservices_qpa.cpp contains(QT_CONFIG, opengl)|contains(QT_CONFIG, opengles2)|contains(QT_CONFIG, egl) { HEADERS += \ diff --git a/src/gui/kernel/qplatformintegration_qpa.cpp b/src/gui/kernel/qplatformintegration_qpa.cpp index e867e4e588..1336a1a9a2 100644 --- a/src/gui/kernel/qplatformintegration_qpa.cpp +++ b/src/gui/kernel/qplatformintegration_qpa.cpp @@ -107,6 +107,11 @@ QPlatformNativeInterface * QPlatformIntegration::nativeInterface() const return 0; } +QPlatformServices *QPlatformIntegration::services() const +{ + return 0; +} + /*! \class QPlatformIntegration \since 4.8 diff --git a/src/gui/kernel/qplatformintegration_qpa.h b/src/gui/kernel/qplatformintegration_qpa.h index efaf495b81..bd9ecd54dc 100644 --- a/src/gui/kernel/qplatformintegration_qpa.h +++ b/src/gui/kernel/qplatformintegration_qpa.h @@ -66,6 +66,7 @@ class QPlatformAccessibility; class QPlatformTheme; class QPlatformDialogHelper; class QPlatformSharedGraphicsCache; +class QPlatformServices; class Q_GUI_EXPORT QPlatformIntegration { @@ -106,6 +107,8 @@ public: // Access native handles. The window handle is already available from Wid; virtual QPlatformNativeInterface *nativeInterface() const; + virtual QPlatformServices *services() const; + enum StyleHint { CursorFlashTime, KeyboardInputInterval, diff --git a/src/gui/kernel/qplatformservices_qpa.cpp b/src/gui/kernel/qplatformservices_qpa.cpp new file mode 100644 index 0000000000..7993a82f4e --- /dev/null +++ b/src/gui/kernel/qplatformservices_qpa.cpp @@ -0,0 +1,74 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/ +** +** This file is part of the QtGui module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qplatformservices_qpa.h" + +#include <QtCore/QUrl> +#include <QtCore/QString> +#include <QtCore/QDebug> + +QT_BEGIN_NAMESPACE + +/*! + \class QPlatformServices + \since 5.0 + \internal + \preliminary + \ingroup qpa + + \brief The QPlatformServices provides the backend for desktop-related functionality. +*/ + +bool QPlatformServices::openUrl(const QUrl &url) +{ + qWarning("This plugin does not support QPlatformServices::openUrl() for '%s'.", + qPrintable(url.toString())); + return false; +} + +bool QPlatformServices::openDocument(const QUrl &url) +{ + qWarning("This plugin does not support QPlatformServices::openDocument() for '%s'.", + qPrintable(url.toString())); + return false; +} + +QT_END_NAMESPACE diff --git a/src/gui/kernel/qplatformservices_qpa.h b/src/gui/kernel/qplatformservices_qpa.h new file mode 100644 index 0000000000..aff2e5d6fe --- /dev/null +++ b/src/gui/kernel/qplatformservices_qpa.h @@ -0,0 +1,65 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/ +** +** This file is part of the QtGui module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QPLATFORMSERVICES_QPA_H +#define QPLATFORMSERVICES_QPA_H + +#include <QtCore/QtGlobal> + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +class QUrl; + +class Q_GUI_EXPORT QPlatformServices +{ +public: + virtual ~QPlatformServices() { } + + virtual bool openUrl(const QUrl &url); + virtual bool openDocument(const QUrl &url); +}; + +QT_END_NAMESPACE +QT_END_HEADER + +#endif // QPLATFORMSERVICES_QPA_H |