Qt 6.x
The Qt SDK
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
qwaylandcompositorextension.cpp
Go to the documentation of this file.
1// Copyright (C) 2021 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
3
6
7#include <QtCore/QCoreApplication>
8#include <QtCore/QDebug>
9
10#include <wayland-server-core.h>
11
13
81{
82}
83
95{
96 d_func()->extension_container = container;
98}
99
101 : QWaylandObject(dd)
102{
103}
104
106 : QWaylandObject(dd)
107{
108 d_func()->extension_container = container;
110}
111
113{
115 if (d->extension_container)
116 d->extension_container->removeExtension(this);
117}
118
131{
133 return d->extension_container;
134}
135
142{
144 d->extension_container = container;
145}
146
156{
158 if (d->initialized) {
159 qWarning() << "QWaylandCompositorExtension:" << extensionInterface()->name << "is already initialized";
160 return;
161 }
162
163 if (!d->extension_container && parent()) {
164 QWaylandObject *parentObj = qobject_cast<QWaylandObject*>(parent());
165 if (parentObj)
166 setExtensionContainer(parentObj);
167 }
168
169 if (!d->extension_container) {
170 qWarning() << "QWaylandCompositorExtension:" << extensionInterface()->name << "requests to initialize with no extension container set";
171 return;
172 }
173
174 d->extension_container->addExtension(this);
175 d->initialized = true;
176}
177
179{
181 return d->initialized;
182}
183
185{
186 switch(event->type()) {
187 case QEvent::Polish:
188 if (!isInitialized())
189 initialize();
190 break;
191 default:
192 break;
193 }
195}
196
214{
215}
216
218 :QObject(d, parent)
219{
220}
221
222
224{
227}
228
235{
236 for (int i = 0; i < extension_vector.size(); i++) {
238 return extension_vector.at(i);
239 }
240 return nullptr;
241}
242
249{
250 for (int i = 0; i < extension_vector.size(); i++) {
252 return extension_vector.at(i);
253 }
254 return nullptr;
255}
256
261{
262 return extension_vector;
263}
264
269{
272}
273
279{
282}
283
285
286#include "moc_qwaylandcompositorextension.cpp"
\inmodule QtCore
Definition qbytearray.h:57
static void postEvent(QObject *receiver, QEvent *event, int priority=Qt::NormalEventPriority)
\inmodule QtCore
Definition qcoreevent.h:45
Definition qlist.h:74
qsizetype size() const noexcept
Definition qlist.h:386
bool removeOne(const AT &t)
Definition qlist.h:581
const_reference at(qsizetype i) const noexcept
Definition qlist.h:429
void append(parameter_type t)
Definition qlist.h:441
\inmodule QtCore
Definition qobject.h:90
QObject * parent() const
Returns a pointer to the parent object.
Definition qobject.h:311
virtual bool event(QEvent *event)
This virtual function receives events to an object and should return true if the event e was recogniz...
Definition qobject.cpp:1363
static QWaylandCompositorExtensionPrivate * get(QWaylandCompositorExtension *extension)
\inmodule QtWaylandCompositor
void setExtensionContainer(QWaylandObject *container)
Sets the extension container for this QWaylandCompositorExtension to container.
virtual const struct wl_interface * extensionInterface() const =0
A pure virtual function which should be reimplemented to return the wl_interface which corresponds to...
virtual void initialize()
Initializes the QWaylandCompositorExtension.
bool event(QEvent *event) override
This virtual function receives events to an object and should return true if the event e was recogniz...
QWaylandCompositorExtension()
Creates a QWaylandCompositorExtension with no container.
\inmodule QtWaylandCompositor
QWaylandObject(QObject *parent=nullptr)
Creates a QWaylandObject as a child of parent.
QList< QWaylandCompositorExtension * > extensions() const
Returns the list of compositor extensions that have been registered with this QWaylandObject.
QWaylandCompositorExtension * extension(const QByteArray &name)
Returns the compositor extension which matches name if one has been registered with the QWaylandObjec...
void removeExtension(QWaylandCompositorExtension *extension)
Removes extension from the list of registered extensions in this QWaylandObject, if it has previously...
QList< QWaylandCompositorExtension * > extension_vector
void addExtension(QWaylandCompositorExtension *extension)
Registers extension with this QWaylandObject.
void extension()
[6]
Definition dialogs.cpp:230
Combined button and popup list for selecting options.
DBusConnection const char DBusError DBusBusType DBusError return DBusConnection DBusHandleMessageFunction void DBusFreeFunction return DBusConnection return DBusConnection return const char DBusError return DBusConnection DBusMessage dbus_uint32_t return DBusConnection dbus_bool_t DBusConnection DBusAddWatchFunction DBusRemoveWatchFunction DBusWatchToggledFunction void DBusFreeFunction return DBusConnection DBusDispatchStatusFunction void DBusFreeFunction DBusTimeout return DBusTimeout return DBusWatch return DBusWatch unsigned int return DBusError const DBusError return const DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessageIter int const void return DBusMessageIter DBusMessageIter return DBusMessageIter void DBusMessageIter void int return DBusMessage DBusMessageIter return DBusMessageIter return DBusMessageIter DBusMessageIter const char const char const char * interface
#define qWarning
Definition qlogging.h:162
GLuint name
struct _cl_event * event
#define Q_ASSERT(cond)
Definition qrandom.cpp:47
bool contains(const AT &t) const noexcept
Definition qlist.h:44
IUIAutomationTreeWalker __RPC__deref_out_opt IUIAutomationElement ** parent