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();
43void QWaylandClientExtension::initialize()
45 Q_D(QWaylandClientExtension);
49 const QtWaylandClient::QWaylandDisplay *display = d->waylandIntegration->display();
50 const auto globals = display->globals();
52 std::find_if(globals.cbegin(), globals.cend(), [
this](
const RegistryGlobal &global) {
53 return global.interface == QLatin1String(extensionInterface()->name);
55 if (global != globals.cend()) {
56 bind(global->registry, global->id, global->version);
62QWaylandClientExtension::QWaylandClientExtension(
const int ver)
63 : QObject(*
new QWaylandClientExtensionPrivate())
65 Q_D(QWaylandClientExtension);
67 auto display = d->waylandIntegration->display();
68 QObjectPrivate::connect(display, &QtWaylandClient::QWaylandDisplay::globalAdded, d,
69 &QWaylandClientExtensionPrivate::globalAdded);
70 QObjectPrivate::connect(display, &QtWaylandClient::QWaylandDisplay::globalRemoved, d,
71 &QWaylandClientExtensionPrivate::globalRemoved);
73 QMetaObject::invokeMethod(
this,
"initialize", Qt::QueuedConnection);