diff options
author | Giulio Camuffo <giulio.camuffo@kdab.com> | 2016-04-25 11:11:17 +0300 |
---|---|---|
committer | Giulio Camuffo <giulio.camuffo@kdab.com> | 2016-04-29 13:36:40 +0000 |
commit | 5c5489a26b26ffb77ed53b15857711499424f84d (patch) | |
tree | be37e7c3c985061473046e569d3cf4dcea984c9d /examples/wayland/custom-extension/compositor | |
parent | b85246e7009004d6157d919a6ee4ddb4040ce1e1 (diff) |
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 <johan.helsing@qt.io>
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
Diffstat (limited to 'examples/wayland/custom-extension/compositor')
4 files changed, 9 insertions, 11 deletions
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<QWaylandCompositor *>(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 <QtWaylandCompositor/QWaylandExtensionTemplate> +#include <QtWaylandCompositor/QWaylandQuickExtension> #include <QtWaylandCompositor/QWaylandCompositor> #include "qwayland-server-custom.h" @@ -54,7 +55,7 @@ class CustomExtension : public QWaylandExtensionTemplate<CustomExtension>, 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 <QtQml/qqml.h> #include <QtQml/QQmlEngine> + #include "customextension.h" static void registerTypes() { - qmlRegisterType<QtWayland::CustomExtension>("com.theqtcompany.customextension", 1, 0, "CustomExtension"); + qmlRegisterType<QtWayland::CustomExtensionQuickExtension>("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); - } } ] |