24void QWaylandClientExtensionPrivate::globalAdded(
const RegistryGlobal &global)
26 Q_Q(QWaylandClientExtension);
27 if (!active && global.interface == QLatin1String(q->extensionInterface()->name)) {
28 q->bind(global.registry, global.id, global.version);
30 emit q->activeChanged();
48void QWaylandClientExtension::initialize()
50 Q_D(QWaylandClientExtension);
54 const QtWaylandClient::QWaylandDisplay *display = d->waylandIntegration->display();
55 const auto globals = display->globals();
57 std::find_if(globals.cbegin(), globals.cend(), [
this](
const RegistryGlobal &global) {
58 return global.interface == QLatin1String(extensionInterface()->name);
60 if (global != globals.cend()) {
61 bind(global->registry, global->id, global->version);
67QWaylandClientExtension::QWaylandClientExtension(
const int ver)
68 : QObject(*
new QWaylandClientExtensionPrivate())
70 Q_D(QWaylandClientExtension);
72 auto display = d->waylandIntegration->display();
73 QObjectPrivate::connect(display, &QtWaylandClient::QWaylandDisplay::globalAdded, d,
74 &QWaylandClientExtensionPrivate::globalAdded);
75 QObjectPrivate::connect(display, &QtWaylandClient::QWaylandDisplay::globalRemoved, d,
76 &QWaylandClientExtensionPrivate::globalRemoved);
78 QMetaObject::invokeMethod(
this,
"initialize", Qt::QueuedConnection);