25void QWaylandClientExtensionPrivate::globalAdded(
const RegistryGlobal &global)
27 Q_Q(QWaylandClientExtension);
28 if (!active && global.interface == QLatin1String(q->extensionInterface()->name)) {
29 q->bind(global.registry, global.id, global.version);
31 emit q->activeChanged();
75void QWaylandClientExtension::initialize()
77 Q_D(QWaylandClientExtension);
81 const QtWaylandClient::QWaylandDisplay *display = d->waylandIntegration->display();
82 const auto globals = display->globals();
84 std::find_if(globals.cbegin(), globals.cend(), [
this](
const RegistryGlobal &global) {
85 return global.interface == QLatin1String(extensionInterface()->name);
87 if (global != globals.cend()) {
88 bind(global->registry, global->id, global->version);
97QWaylandClientExtension::QWaylandClientExtension(
const int ver)
98 : QObject(*
new QWaylandClientExtensionPrivate())
100 Q_D(QWaylandClientExtension);
102 auto display = d->waylandIntegration->display();
103 QObjectPrivate::connect(display, &QtWaylandClient::QWaylandDisplay::globalAdded, d,
104 &QWaylandClientExtensionPrivate::globalAdded);
105 QObjectPrivate::connect(display, &QtWaylandClient::QWaylandDisplay::globalRemoved, d,
106 &QWaylandClientExtensionPrivate::globalRemoved);
108 QMetaObject::invokeMethod(
this,
"initialize", Qt::QueuedConnection);