From 5c5489a26b26ffb77ed53b15857711499424f84d Mon Sep 17 00:00:00 2001 From: Giulio Camuffo Date: Mon, 25 Apr 2016 11:11:17 +0300 Subject: Automatically initialize the quick extension objects Instead of writing "Component.onCompleted: initialize()" for every extension the compositor has, let them call that automatically. Change-Id: I0b499a38c2b475dc9a7ef27cbacebef19b196dbf Reviewed-by: Johan Helsing Reviewed-by: Pier Luigi Fiorini --- .../custom-extension/compositor/customextension.cpp | 4 +++- .../wayland/custom-extension/compositor/customextension.h | 5 ++++- examples/wayland/custom-extension/compositor/main.cpp | 3 ++- examples/wayland/custom-extension/compositor/qml/main.qml | 8 -------- examples/wayland/multi-output/qml/main.qml | 4 ---- examples/wayland/pure-qml/qml/main.qml | 15 --------------- 6 files changed, 9 insertions(+), 30 deletions(-) (limited to 'examples') diff --git a/examples/wayland/custom-extension/compositor/customextension.cpp b/examples/wayland/custom-extension/compositor/customextension.cpp index bc2b676ef..a63d3c5a5 100644 --- a/examples/wayland/custom-extension/compositor/customextension.cpp +++ b/examples/wayland/custom-extension/compositor/customextension.cpp @@ -50,8 +50,10 @@ CustomExtension::CustomExtension() { } -void CustomExtension::initialize(QWaylandCompositor *compositor) +void CustomExtension::initialize() { + QWaylandExtensionTemplate::initialize(); + QWaylandCompositor *compositor = static_cast(extensionContainer()); init(compositor->display(), 1); } diff --git a/examples/wayland/custom-extension/compositor/customextension.h b/examples/wayland/custom-extension/compositor/customextension.h index e9ace6e96..81c3c5057 100644 --- a/examples/wayland/custom-extension/compositor/customextension.h +++ b/examples/wayland/custom-extension/compositor/customextension.h @@ -44,6 +44,7 @@ #include "wayland-util.h" #include +#include #include #include "qwayland-server-custom.h" @@ -54,7 +55,7 @@ class CustomExtension : public QWaylandExtensionTemplate, publ Q_OBJECT public: CustomExtension(); - Q_INVOKABLE void initialize(QWaylandCompositor *compositor); + void initialize() Q_DECL_OVERRIDE; Q_INVOKABLE void sendEvent(QWaylandSurface *surface, uint time, const QString &text, uint value); signals: @@ -63,6 +64,8 @@ protected: virtual void example_extension_qtrequest(Resource *resource, const QString &text, int32_t value) Q_DECL_OVERRIDE; }; +Q_COMPOSITOR_DECLARE_QUICK_EXTENSION_CLASS(CustomExtension) + } #endif // CUSTOMEXTENSION_H diff --git a/examples/wayland/custom-extension/compositor/main.cpp b/examples/wayland/custom-extension/compositor/main.cpp index 1970e5a6b..867e4c0de 100644 --- a/examples/wayland/custom-extension/compositor/main.cpp +++ b/examples/wayland/custom-extension/compositor/main.cpp @@ -45,11 +45,12 @@ #include #include + #include "customextension.h" static void registerTypes() { - qmlRegisterType("com.theqtcompany.customextension", 1, 0, "CustomExtension"); + qmlRegisterType("com.theqtcompany.customextension", 1, 0, "CustomExtension"); } int main(int argc, char *argv[]) diff --git a/examples/wayland/custom-extension/compositor/qml/main.qml b/examples/wayland/custom-extension/compositor/qml/main.qml index dcba2bb70..ff83133be 100644 --- a/examples/wayland/custom-extension/compositor/qml/main.qml +++ b/examples/wayland/custom-extension/compositor/qml/main.qml @@ -82,20 +82,12 @@ WaylandCompositor { var item = chromeComponent.createObject(defaultOutput.surfaceArea, { "shellSurface": shellSurface } ); lastItem = item; } - - Component.onCompleted: { - initialize(); - } }, CustomExtension { id: custom onRequestReceived: { console.log("Compositor received a request: \"" + text + "\", " + value) } - - Component.onCompleted: { - initialize(comp); - } } ] diff --git a/examples/wayland/multi-output/qml/main.qml b/examples/wayland/multi-output/qml/main.qml index ccb3d418b..6a1483bca 100644 --- a/examples/wayland/multi-output/qml/main.qml +++ b/examples/wayland/multi-output/qml/main.qml @@ -89,10 +89,6 @@ WaylandCompositor { var item = chromeComponent.createObject(defaultOutput.surfaceArea, { "shellSurface": shellSurface } ); item.surface.activated.connect(item.raise); } - - Component.onCompleted: { - initialize(); - } } ] diff --git a/examples/wayland/pure-qml/qml/main.qml b/examples/wayland/pure-qml/qml/main.qml index 65ac36166..c50d4b67d 100644 --- a/examples/wayland/pure-qml/qml/main.qml +++ b/examples/wayland/pure-qml/qml/main.qml @@ -72,10 +72,6 @@ WaylandCompositor { WindowManager { id: qtWindowManager onShowIsFullScreenChanged: console.debug("Show is fullscreen hint for Qt applications:", showIsFullScreen) - - Component.onCompleted: { - initialize(); - } }, WlShell { id: defaultShell @@ -83,10 +79,6 @@ WaylandCompositor { onShellSurfaceCreated: { chromeComponent.createObject(defaultOutput.surfaceArea, { "shellSurface": shellSurface } ); } - - Component.onCompleted: { - initialize(); - } }, XdgShell { id: xdgShell @@ -94,15 +86,8 @@ WaylandCompositor { onXdgSurfaceCreated: { xdgChromeComponent.createObject(defaultOutput.surfaceArea, { "xdgSurface": xdgSurface } ); } - - Component.onCompleted: { - initialize(); - } }, TextInputManager { - Component.onCompleted: { - initialize(); - } } ] -- cgit v1.2.3