Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
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
83
99
104
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
213 :QObject(parent)
214{
215}
216
221
222
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
260QList<QWaylandCompositorExtension *> QWaylandObject::extensions() const
261{
262 return extension_vector;
263}
264
273
285
287
288#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
qsizetype size() const noexcept
Definition qlist.h:397
bool removeOne(const AT &t)
Definition qlist.h:598
const_reference at(qsizetype i) const noexcept
Definition qlist.h:446
void append(parameter_type t)
Definition qlist.h:458
\inmodule QtCore
Definition qobject.h:103
QObject * parent() const
Returns a pointer to the parent object.
Definition qobject.h:346
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:1389
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:166
GLuint name
struct _cl_event * event
#define Q_ASSERT(cond)
Definition qrandom.cpp:47
bool contains(const AT &t) const noexcept
Definition qlist.h:45