diff options
author | Pier Luigi Fiorini <pierluigi.fiorini@gmail.com> | 2016-04-08 08:30:36 +0200 |
---|---|---|
committer | Pier Luigi Fiorini <pierluigi.fiorini@gmail.com> | 2016-05-31 14:17:26 +0000 |
commit | 58bfe9d9b51786792d5b7af8a90698af87207ad1 (patch) | |
tree | 6a5737a3c9577d8d93e5b4f5a8e8b1cab2db52f9 | |
parent | 25ac3b504574b5e177c8f92eb02b83fdcc31d624 (diff) |
Rename QWaylandWindowManagerExtension to QWaylandQtWindowManager
* QWaylandWindowManagerExtension become QWaylandQtWindowManager
* WindowManager become QtWindowManager
Follow naming convention already established for other extensions
like QWaylandWlShell and avoid confusion that might arise with
a name as generic as WindowManager.
Use QWaylandClient rather than wl_client.
Also the Wayland protocol definition has been renamed
to qt-windowmanager.xml
Change-Id: I941621ce229327c21eff9e80c7e92205cc60e8eb
Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
-rw-r--r-- | examples/wayland/pure-qml/qml/main.qml | 2 | ||||
-rw-r--r-- | src/client/client.pro | 2 | ||||
-rw-r--r-- | src/client/qwaylandwindowmanagerintegration_p.h | 2 | ||||
-rw-r--r-- | src/compositor/compositor_api/qwaylandcompositor.cpp | 6 | ||||
-rw-r--r-- | src/compositor/extensions/extensions.pri | 8 | ||||
-rw-r--r-- | src/compositor/extensions/qwaylandqtwindowmanager.cpp (renamed from src/compositor/extensions/qwaylandwindowmanagerextension.cpp) | 118 | ||||
-rw-r--r-- | src/compositor/extensions/qwaylandqtwindowmanager.h (renamed from src/compositor/extensions/qwaylandwindowmanagerextension.h) | 21 | ||||
-rw-r--r-- | src/compositor/extensions/qwaylandqtwindowmanager_p.h (renamed from src/compositor/extensions/qwaylandwindowmanagerextension_p.h) | 25 | ||||
-rw-r--r-- | src/extensions/qt-windowmanager.xml (renamed from src/extensions/windowmanager.xml) | 2 | ||||
-rw-r--r-- | src/imports/compositor/plugins.qmltypes | 36 | ||||
-rw-r--r-- | src/imports/compositor/qwaylandquickcompositorplugin.cpp | 6 |
11 files changed, 115 insertions, 113 deletions
diff --git a/examples/wayland/pure-qml/qml/main.qml b/examples/wayland/pure-qml/qml/main.qml index 6ee09f802..fb61aeacd 100644 --- a/examples/wayland/pure-qml/qml/main.qml +++ b/examples/wayland/pure-qml/qml/main.qml @@ -63,7 +63,7 @@ WaylandCompositor { } extensions: [ - WindowManager { + QtWindowManager { id: qtWindowManager onShowIsFullScreenChanged: console.debug("Show is fullscreen hint for Qt applications:", showIsFullScreen) }, diff --git a/src/client/client.pro b/src/client/client.pro index 994cf5443..f0142c9a5 100644 --- a/src/client/client.pro +++ b/src/client/client.pro @@ -38,7 +38,7 @@ WAYLANDCLIENTSOURCES += \ ../extensions/surface-extension.xml \ ../extensions/touch-extension.xml \ ../extensions/qtkey-extension.xml \ - ../extensions/windowmanager.xml \ + ../extensions/qt-windowmanager.xml \ ../3rdparty/protocol/text-input-unstable-v2.xml \ ../3rdparty/protocol/xdg-shell.xml \ diff --git a/src/client/qwaylandwindowmanagerintegration_p.h b/src/client/qwaylandwindowmanagerintegration_p.h index 80513af3a..f2c0ac6be 100644 --- a/src/client/qwaylandwindowmanagerintegration_p.h +++ b/src/client/qwaylandwindowmanagerintegration_p.h @@ -57,7 +57,7 @@ #include <wayland-client.h> #include <QtPlatformSupport/private/qgenericunixservices_p.h> -#include <QtWaylandClient/private/qwayland-windowmanager.h> +#include <QtWaylandClient/private/qwayland-qt-windowmanager.h> #include <QtWaylandClient/qwaylandclientexport.h> QT_BEGIN_NAMESPACE diff --git a/src/compositor/compositor_api/qwaylandcompositor.cpp b/src/compositor/compositor_api/qwaylandcompositor.cpp index 41de5b459..3a499fa74 100644 --- a/src/compositor/compositor_api/qwaylandcompositor.cpp +++ b/src/compositor/compositor_api/qwaylandcompositor.cpp @@ -60,7 +60,7 @@ #include "hardware_integration/qwlserverbufferintegrationfactory_p.h" #include "hardware_integration/qwlhwintegration_p.h" -#include "extensions/qwaylandwindowmanagerextension.h" +#include "extensions/qwaylandqtwindowmanager.h" #include "qwaylandxkb_p.h" #include "qwaylandshmformathelper_p.h" @@ -572,9 +572,9 @@ void QWaylandCompositor::destroyClient(QWaylandClient *client) if (!client) return; - QWaylandWindowManagerExtension *wmExtension = QWaylandWindowManagerExtension::findIn(this); + QWaylandQtWindowManager *wmExtension = QWaylandQtWindowManager::findIn(this); if (wmExtension) - wmExtension->sendQuitMessage(client->client()); + wmExtension->sendQuitMessage(client); wl_client_destroy(client->client()); } diff --git a/src/compositor/extensions/extensions.pri b/src/compositor/extensions/extensions.pri index 4ab267276..ab21fe5ab 100644 --- a/src/compositor/extensions/extensions.pri +++ b/src/compositor/extensions/extensions.pri @@ -3,7 +3,7 @@ WAYLANDSERVERSOURCES += \ ../extensions/surface-extension.xml \ ../extensions/touch-extension.xml \ ../extensions/qtkey-extension.xml \ - ../extensions/windowmanager.xml \ + ../extensions/qt-windowmanager.xml \ ../3rdparty/protocol/text-input-unstable-v2.xml \ ../3rdparty/protocol/xdg-shell.xml \ @@ -17,8 +17,8 @@ HEADERS += \ extensions/qwaylandtextinput_p.h \ extensions/qwaylandtextinputmanager.h \ extensions/qwaylandtextinputmanager_p.h \ - extensions/qwaylandwindowmanagerextension.h \ - extensions/qwaylandwindowmanagerextension_p.h \ + extensions/qwaylandqtwindowmanager.h \ + extensions/qwaylandqtwindowmanager_p.h \ extensions/qwaylandxdgshell.h \ extensions/qwaylandxdgshell_p.h \ extensions/qwaylandshellsurface.h \ @@ -30,7 +30,7 @@ SOURCES += \ extensions/qwaylandwlshell.cpp \ extensions/qwaylandtextinput.cpp \ extensions/qwaylandtextinputmanager.cpp \ - extensions/qwaylandwindowmanagerextension.cpp \ + extensions/qwaylandqtwindowmanager.cpp \ extensions/qwaylandxdgshell.cpp \ qtHaveModule(quick) { diff --git a/src/compositor/extensions/qwaylandwindowmanagerextension.cpp b/src/compositor/extensions/qwaylandqtwindowmanager.cpp index 1e7ed2892..f82a8e46f 100644 --- a/src/compositor/extensions/qwaylandwindowmanagerextension.cpp +++ b/src/compositor/extensions/qwaylandqtwindowmanager.cpp @@ -1,6 +1,7 @@ /**************************************************************************** ** ** Copyright (C) 2015 The Qt Company Ltd. +** Copyright (C) 2016 Pier Luigi Fiorini <pierluigi.fiorini@gmail.com> ** Contact: http://www.qt.io/licensing/ ** ** This file is part of the QtWaylandCompositor module of the Qt Toolkit. @@ -34,115 +35,116 @@ ** ****************************************************************************/ -#include "qwaylandwindowmanagerextension.h" -#include "qwaylandwindowmanagerextension_p.h" +#include <QtCore/QObject> +#include <QtCore/QUrl> #include <QtWaylandCompositor/QWaylandCompositor> #include <QtWaylandCompositor/QWaylandClient> -#include <QtCore/QUrl> +#include "qwaylandqtwindowmanager.h" +#include "qwaylandqtwindowmanager_p.h" QT_BEGIN_NAMESPACE -QWaylandWindowManagerExtension::QWaylandWindowManagerExtension() - : QWaylandCompositorExtensionTemplate<QWaylandWindowManagerExtension>(*new QWaylandWindowManagerExtensionPrivate) +QWaylandQtWindowManagerPrivate::QWaylandQtWindowManagerPrivate() + : QWaylandCompositorExtensionPrivate() + , qt_windowmanager() + , showIsFullScreen(false) { } -QWaylandWindowManagerExtension::QWaylandWindowManagerExtension(QWaylandCompositor *compositor) - : QWaylandCompositorExtensionTemplate<QWaylandWindowManagerExtension>(compositor, *new QWaylandWindowManagerExtensionPrivate) +void QWaylandQtWindowManagerPrivate::windowmanager_bind_resource(Resource *resource) { + send_hints(resource->handle, static_cast<int32_t>(showIsFullScreen)); } -QWaylandWindowManagerExtensionPrivate::QWaylandWindowManagerExtensionPrivate() - : QWaylandCompositorExtensionPrivate() - , QtWaylandServer::qt_windowmanager() - , showIsFullScreen(false) +void QWaylandQtWindowManagerPrivate::windowmanager_destroy_resource(Resource *resource) +{ + urls.remove(resource); +} + +void QWaylandQtWindowManagerPrivate::windowmanager_open_url(Resource *resource, uint32_t remaining, const QString &newUrl) +{ + Q_Q(QWaylandQtWindowManager); + + QWaylandCompositor *compositor = static_cast<QWaylandCompositor *>(q->extensionContainer()); + if (!compositor) { + qWarning() << "Failed to find QWaylandCompositor from QWaylandQtWindowManager::windowmanager_open_url()"; + return; + } + + QString url = urls.value(resource, QString()); + + url.append(newUrl); + + if (remaining) + urls.insert(resource, url); + else { + urls.remove(resource); + q->openUrl(QWaylandClient::fromWlClient(compositor, resource->client()), QUrl(url)); + } +} + +QWaylandQtWindowManager::QWaylandQtWindowManager() + : QWaylandCompositorExtensionTemplate<QWaylandQtWindowManager>(*new QWaylandQtWindowManagerPrivate()) { } -bool QWaylandWindowManagerExtension::showIsFullScreen() const +QWaylandQtWindowManager::QWaylandQtWindowManager(QWaylandCompositor *compositor) + : QWaylandCompositorExtensionTemplate<QWaylandQtWindowManager>(compositor, *new QWaylandQtWindowManagerPrivate()) { - Q_D(const QWaylandWindowManagerExtension); +} + +bool QWaylandQtWindowManager::showIsFullScreen() const +{ + Q_D(const QWaylandQtWindowManager); return d->showIsFullScreen; } -void QWaylandWindowManagerExtension::setShowIsFullScreen(bool value) +void QWaylandQtWindowManager::setShowIsFullScreen(bool value) { - Q_D(QWaylandWindowManagerExtension); + Q_D(QWaylandQtWindowManager); if (d->showIsFullScreen == value) return; d->showIsFullScreen = value; - Q_FOREACH (QWaylandWindowManagerExtensionPrivate::Resource *resource, d->resourceMap().values()) { + Q_FOREACH (QWaylandQtWindowManagerPrivate::Resource *resource, d->resourceMap().values()) { d->send_hints(resource->handle, static_cast<int32_t>(d->showIsFullScreen)); } Q_EMIT showIsFullScreenChanged(); } -void QWaylandWindowManagerExtension::sendQuitMessage(wl_client *client) +void QWaylandQtWindowManager::sendQuitMessage(QWaylandClient *client) { - Q_D(QWaylandWindowManagerExtension); - QWaylandWindowManagerExtensionPrivate::Resource *resource = d->resourceMap().value(client); + Q_D(QWaylandQtWindowManager); + QWaylandQtWindowManagerPrivate::Resource *resource = d->resourceMap().value(client->client()); if (resource) d->send_quit(resource->handle); } -void QWaylandWindowManagerExtension::initialize() +void QWaylandQtWindowManager::initialize() { - Q_D(QWaylandWindowManagerExtension); + Q_D(QWaylandQtWindowManager); QWaylandCompositorExtensionTemplate::initialize(); QWaylandCompositor *compositor = static_cast<QWaylandCompositor *>(extensionContainer()); if (!compositor) { - qWarning() << "Failed to find QWaylandCompositor when initializing QWaylandWindowManagerExtension"; + qWarning() << "Failed to find QWaylandCompositor when initializing QWaylandQtWindowManager"; return; } d->init(compositor->display(), 1); } -void QWaylandWindowManagerExtensionPrivate::windowmanager_bind_resource(Resource *resource) -{ - send_hints(resource->handle, static_cast<int32_t>(showIsFullScreen)); -} - -void QWaylandWindowManagerExtensionPrivate::windowmanager_destroy_resource(Resource *resource) -{ - urls.remove(resource); -} - -void QWaylandWindowManagerExtensionPrivate::windowmanager_open_url(Resource *resource, uint32_t remaining, const QString &newUrl) -{ - Q_Q(QWaylandWindowManagerExtension); - - QWaylandCompositor *compositor = static_cast<QWaylandCompositor *>(q->extensionContainer()); - if (!compositor) { - qWarning() << "Failed to find QWaylandCompositor from QWaylandWindowManagerExtension::windowmanager_open_url()"; - return; - } - - QString url = urls.value(resource, QString()); - - url.append(newUrl); - - if (remaining) - urls.insert(resource, url); - else { - urls.remove(resource); - q->openUrl(QWaylandClient::fromWlClient(compositor, resource->client()), QUrl(url)); - } -} - -const struct wl_interface *QWaylandWindowManagerExtension::interface() +const struct wl_interface *QWaylandQtWindowManager::interface() { - return QWaylandWindowManagerExtensionPrivate::interface(); + return QWaylandQtWindowManagerPrivate::interface(); } -QByteArray QWaylandWindowManagerExtension::interfaceName() +QByteArray QWaylandQtWindowManager::interfaceName() { - return QWaylandWindowManagerExtensionPrivate::interfaceName(); + return QWaylandQtWindowManagerPrivate::interfaceName(); } QT_END_NAMESPACE diff --git a/src/compositor/extensions/qwaylandwindowmanagerextension.h b/src/compositor/extensions/qwaylandqtwindowmanager.h index 184bcc3c5..4d3951025 100644 --- a/src/compositor/extensions/qwaylandwindowmanagerextension.h +++ b/src/compositor/extensions/qwaylandqtwindowmanager.h @@ -1,6 +1,7 @@ /**************************************************************************** ** ** Copyright (C) 2015 The Qt Company Ltd. +** Copyright (C) 2016 Pier Luigi Fiorini <pierluigi.fiorini@gmail.com> ** Contact: http://www.qt.io/licensing/ ** ** This file is part of the QtWaylandCompositor module of the Qt Toolkit. @@ -34,8 +35,8 @@ ** ****************************************************************************/ -#ifndef WAYLANDWINDOWMANAGERINTEGRATION_H -#define WAYLANDWINDOWMANAGERINTEGRATION_H +#ifndef QWAYLANDQTWINDOWMANAGER_H +#define QWAYLANDQTWINDOWMANAGER_H #include <QtWaylandCompositor/QWaylandCompositorExtension> #include <QtWaylandCompositor/QWaylandClient> @@ -44,23 +45,21 @@ QT_BEGIN_NAMESPACE -class QWaylandCompositor; +class QWaylandQtWindowManagerPrivate; -class QWaylandWindowManagerExtensionPrivate; - -class Q_WAYLAND_COMPOSITOR_EXPORT QWaylandWindowManagerExtension : public QWaylandCompositorExtensionTemplate<QWaylandWindowManagerExtension> +class Q_WAYLAND_COMPOSITOR_EXPORT QWaylandQtWindowManager : public QWaylandCompositorExtensionTemplate<QWaylandQtWindowManager> { Q_OBJECT + Q_DECLARE_PRIVATE(QWaylandQtWindowManager) Q_PROPERTY(bool showIsFullScreen READ showIsFullScreen WRITE setShowIsFullScreen NOTIFY showIsFullScreenChanged) - Q_DECLARE_PRIVATE(QWaylandWindowManagerExtension) public: - QWaylandWindowManagerExtension(); - explicit QWaylandWindowManagerExtension(QWaylandCompositor *compositor); + QWaylandQtWindowManager(); + explicit QWaylandQtWindowManager(QWaylandCompositor *compositor); bool showIsFullScreen() const; void setShowIsFullScreen(bool value); - void sendQuitMessage(wl_client *client); + void sendQuitMessage(QWaylandClient *client); void initialize() Q_DECL_OVERRIDE; @@ -74,4 +73,4 @@ Q_SIGNALS: QT_END_NAMESPACE -#endif // WAYLANDWINDOWMANAGERINTEGRATION_H +#endif // QWAYLANDQTWINDOWMANAGER_H diff --git a/src/compositor/extensions/qwaylandwindowmanagerextension_p.h b/src/compositor/extensions/qwaylandqtwindowmanager_p.h index 9573855d5..a6df2138f 100644 --- a/src/compositor/extensions/qwaylandwindowmanagerextension_p.h +++ b/src/compositor/extensions/qwaylandqtwindowmanager_p.h @@ -1,6 +1,7 @@ /**************************************************************************** ** ** Copyright (C) 2015 The Qt Company Ltd. +** Copyright (C) 2016 Pier Luigi Fiorini <pierluigi.fiorini@gmail.com> ** Contact: http://www.qt.io/licensing/ ** ** This file is part of the QtWaylandCompositor module of the Qt Toolkit. @@ -34,8 +35,14 @@ ** ****************************************************************************/ -#ifndef QWAYLANDWINDOWMANAGEREXTENSION_P_H -#define QWAYLANDWINDOWMANAGEREXTENSION_P_H +#ifndef QWAYLANDQTWINDOWMANAGER_P_H +#define QWAYLANDQTWINDOWMANAGER_P_H + +#include <QtCore/QMap> + +#include <QtWaylandCompositor/QWaylandQtWindowManager> +#include <QtWaylandCompositor/private/qwaylandcompositorextension_p.h> +#include <QtWaylandCompositor/private/qwayland-server-qt-windowmanager.h> // // W A R N I N G @@ -48,21 +55,15 @@ // We mean it. // -#include <QtWaylandCompositor/private/qwaylandcompositorextension_p.h> - -#include <QtWaylandCompositor/private/qwayland-server-windowmanager.h> - -#include <QMap> - QT_BEGIN_NAMESPACE -class Q_WAYLAND_COMPOSITOR_EXPORT QWaylandWindowManagerExtensionPrivate +class Q_WAYLAND_COMPOSITOR_EXPORT QWaylandQtWindowManagerPrivate : public QWaylandCompositorExtensionPrivate , public QtWaylandServer::qt_windowmanager { - Q_DECLARE_PUBLIC(QWaylandWindowManagerExtension) + Q_DECLARE_PUBLIC(QWaylandQtWindowManager) public: - QWaylandWindowManagerExtensionPrivate(); + QWaylandQtWindowManagerPrivate(); protected: void windowmanager_bind_resource(Resource *resource) Q_DECL_OVERRIDE; @@ -76,4 +77,4 @@ private: QT_END_NAMESPACE -#endif /*QWAYLANDWINDOWMANAGEREXTENSION_P_H*/ +#endif // QWAYLANDQTWINDOWMANAGER_P_H diff --git a/src/extensions/windowmanager.xml b/src/extensions/qt-windowmanager.xml index 3d3bbd7fe..86ddff72e 100644 --- a/src/extensions/windowmanager.xml +++ b/src/extensions/qt-windowmanager.xml @@ -1,4 +1,4 @@ -<protocol name="windowmanager"> +<protocol name="qt_windowmanager"> <copyright> Copyright (C) 2015 The Qt Company Ltd. diff --git a/src/imports/compositor/plugins.qmltypes b/src/imports/compositor/plugins.qmltypes index 8d07403c0..33bebb441 100644 --- a/src/imports/compositor/plugins.qmltypes +++ b/src/imports/compositor/plugins.qmltypes @@ -173,6 +173,24 @@ Module { Signal { name: "physicalSizeFollowsSizeChanged" } Signal { name: "windowDestroyed" } } + Component { + name: "QWaylandQtWindowManager" + prototype: "QWaylandCompositorExtension" + Property { name: "showIsFullScreen"; type: "bool" } + Signal { + name: "openUrl" + Parameter { name: "client"; type: "QWaylandClient"; isPointer: true } + Parameter { name: "url"; type: "QUrl" } + } + } + Component { + name: "QWaylandQtWindowManagerQuickExtension" + defaultProperty: "data" + prototype: "QWaylandQtWindowManager" + exports: ["QtWayland.Compositor/QtWindowManager 1.0"] + exportMetaObjectRevisions: [0] + Property { name: "data"; type: "QObject"; isList: true; isReadonly: true } + } Component { name: "QWaylandQuickCompositor"; prototype: "QWaylandCompositor" } Component { name: "QWaylandQuickCompositorQuickExtensionContainer" @@ -358,24 +376,6 @@ Module { Signal { name: "surfaceDestroyed" } } Component { - name: "QWaylandWindowManagerExtension" - prototype: "QWaylandCompositorExtension" - Property { name: "showIsFullScreen"; type: "bool" } - Signal { - name: "openUrl" - Parameter { name: "client"; type: "QWaylandClient"; isPointer: true } - Parameter { name: "url"; type: "QUrl" } - } - } - Component { - name: "QWaylandWindowManagerExtensionQuickExtension" - defaultProperty: "data" - prototype: "QWaylandWindowManagerExtension" - exports: ["QtWayland.Compositor/WindowManager 1.0"] - exportMetaObjectRevisions: [0] - Property { name: "data"; type: "QObject"; isList: true; isReadonly: true } - } - Component { name: "QWaylandWlShell" prototype: "QWaylandCompositorExtension" Signal { diff --git a/src/imports/compositor/qwaylandquickcompositorplugin.cpp b/src/imports/compositor/qwaylandquickcompositorplugin.cpp index 6f00351c5..112ad5787 100644 --- a/src/imports/compositor/qwaylandquickcompositorplugin.cpp +++ b/src/imports/compositor/qwaylandquickcompositorplugin.cpp @@ -50,7 +50,7 @@ #include <QtWaylandCompositor/QWaylandQuickShellSurfaceItem> #include <QtWaylandCompositor/QWaylandResource> -#include <QtWaylandCompositor/QWaylandWindowManagerExtension> +#include <QtWaylandCompositor/QWaylandQtWindowManager> #include <QtWaylandCompositor/QWaylandWlShell> #include <QtWaylandCompositor/QWaylandTextInputManager> #include <QtWaylandCompositor/QWaylandXdgShell> @@ -61,7 +61,7 @@ QT_BEGIN_NAMESPACE Q_COMPOSITOR_DECLARE_QUICK_EXTENSION_CONTAINER_CLASS(QWaylandQuickCompositor) -Q_COMPOSITOR_DECLARE_QUICK_EXTENSION_CLASS(QWaylandWindowManagerExtension) +Q_COMPOSITOR_DECLARE_QUICK_EXTENSION_CLASS(QWaylandQtWindowManager) Q_COMPOSITOR_DECLARE_QUICK_EXTENSION_CLASS(QWaylandWlShell) Q_COMPOSITOR_DECLARE_QUICK_EXTENSION_CLASS(QWaylandXdgShell) Q_COMPOSITOR_DECLARE_QUICK_EXTENSION_CLASS(QWaylandTextInputManager) @@ -146,7 +146,7 @@ public: qmlRegisterUncreatableType<QWaylandResource>(uri, 1, 0, "WaylandResource", QObject::tr("Cannot create instance of WaylandResource")); //This should probably be somewhere else - qmlRegisterType<QWaylandWindowManagerExtensionQuickExtension>(uri, 1, 0, "WindowManager"); + qmlRegisterType<QWaylandQtWindowManagerQuickExtension>(uri, 1, 0, "QtWindowManager"); qmlRegisterType<QWaylandWlShellQuickExtension>(uri, 1, 0, "WlShell"); qmlRegisterType<QWaylandWlShellSurface>(uri, 1, 0, "WlShellSurface"); qmlRegisterType<QWaylandQuickShellSurfaceItem>(uri, 1, 0, "ShellSurfaceItem"); |