23void QWaylandClientExtensionPrivate::globalAdded(
const RegistryGlobal &global)
25 Q_Q(QWaylandClientExtension);
26 if (!active && global.interface == QLatin1String(q->extensionInterface()->name)) {
27 q->bind(global.registry, global.id, global.version);
29 emit q->activeChanged();
42void QWaylandClientExtension::initialize()
44 Q_D(QWaylandClientExtension);
48 const QtWaylandClient::QWaylandDisplay *display = d->waylandIntegration->display();
49 const auto globals = display->globals();
51 std::find_if(globals.cbegin(), globals.cend(), [
this](
const RegistryGlobal &global) {
52 return global.interface == QLatin1String(extensionInterface()->name);
54 if (global != globals.cend()) {
55 bind(global->registry, global->id, global->version);
61QWaylandClientExtension::QWaylandClientExtension(
const int ver)
62 : QObject(*
new QWaylandClientExtensionPrivate())
64 Q_D(QWaylandClientExtension);
66 auto display = d->waylandIntegration->display();
67 QObjectPrivate::connect(display, &QtWaylandClient::QWaylandDisplay::globalAdded, d,
68 &QWaylandClientExtensionPrivate::globalAdded);
69 QObjectPrivate::connect(display, &QtWaylandClient::QWaylandDisplay::globalRemoved, d,
70 &QWaylandClientExtensionPrivate::globalRemoved);
72 QMetaObject::invokeMethod(
this,
"initialize", Qt::QueuedConnection);