8#include <qguiapplication.h>
14 QHash<uint32_t, std::pair<QString, uint32_t>>
globals;
15 bool initialized =
false;
29 d->globals.insert(name, std::pair<QString, uint32_t>(interface, version));
35 static QStringList interfaceBlacklist = qEnvironmentVariable(
"QT_WAYLAND_DISABLED_INTERFACES").split(
u',');
37 if (interfaceBlacklist.contains(interface)) {
41 Q_FOREACH(
auto global,
d->globals.values()) {
42 if (global.first == interface)
51 d->globals.remove(name);
56 if (!s_waylandRegistry->d->initialized) {
58 registry->
d->initialized =
true;
60 auto waylandApp = qGuiApp->nativeInterface<QNativeInterface::QWaylandApplication>();
61 auto display = waylandApp->display();
62 auto regisry = ::wl_display_get_registry(display);
63 registry->init(regisry);
66 ::wl_display_roundtrip(display);
69 return s_waylandRegistry;
Q_GLOBAL_STATIC(KisStoragePluginRegistry, s_instance)
Wayland registry for tracking wayland globals.
QScopedPointer< Private > d
static KisWaylandRegistry * getOrCreate()
void registry_global_remove(uint32_t name) override
bool globalExists(const QString &interface)
void registry_global(uint32_t name, const QString &interface, uint32_t version) override
QHash< uint32_t, std::pair< QString, uint32_t > > globals