diff options
author | Robert Griebl <robert.griebl@qt.io> | 2023-06-21 12:18:39 +0200 |
---|---|---|
committer | Robert Griebl <robert.griebl@qt.io> | 2023-06-21 15:19:24 +0200 |
commit | f1072436332c5789f9ab8ba4d78fad13e1d37204 (patch) | |
tree | 6ac785505cabcb2601cfb22a9e1a7fd15029d94f /src/window-lib | |
parent | 7ba5d1fc462ec3983d62bec20a589e510dce766a (diff) |
Hide internal signals and slots from QML
We introduced the internal signaller objects a long time ago, but
somehow missed to move a few internal signals out of the public API.
This patch also removes left-over, dead API (the old interface
extension mechanism and the old compositor registration)
Change-Id: I481c382397eb8eb56d1863a5acacc95a4282c1df
Fixes: QTBUG-114724
Pick-to: 6.6
Reviewed-by: Bernd Weimer <bernd.weimer@qt.io>
Diffstat (limited to 'src/window-lib')
-rw-r--r-- | src/window-lib/windowmanager.cpp | 22 | ||||
-rw-r--r-- | src/window-lib/windowmanager.h | 9 |
2 files changed, 14 insertions, 17 deletions
diff --git a/src/window-lib/windowmanager.cpp b/src/window-lib/windowmanager.cpp index 2c59dea8..3c9ff63c 100644 --- a/src/window-lib/windowmanager.cpp +++ b/src/window-lib/windowmanager.cpp @@ -251,7 +251,7 @@ void WindowManager::shutDown() d->shuttingDown = true; if (d->allWindows.isEmpty()) - QMetaObject::invokeMethod(this, &WindowManager::shutDownFinished, Qt::QueuedConnection); + QMetaObject::invokeMethod(&internalSignals, &WindowManagerInternalSignals::shutDownFinished, Qt::QueuedConnection); } /*! @@ -359,6 +359,9 @@ WindowManager::WindowManager(QQmlEngine *qmlEngine, const QString &waylandSocket d->qmlEngine = qmlEngine; qApp->installEventFilter(this); + + connect(AbstractRuntime::signaler(), &RuntimeSignaler::inProcessSurfaceItemReady, + this, &WindowManager::inProcessSurfaceItemCreated); } WindowManager::~WindowManager() @@ -586,12 +589,8 @@ QObject *WindowManager::addExtension(QQmlComponent *component) const void WindowManager::setupInProcessRuntime(AbstractRuntime *runtime) { // special hacks to get in-process mode working transparently - if (runtime->manager()->inProcess()) { + if (runtime->manager()->inProcess()) runtime->setInProcessQmlEngine(d->qmlEngine); - - connect(runtime, &AbstractRuntime::inProcessSurfaceItemReady, - this, &WindowManager::inProcessSurfaceItemCreated); - } } /* @@ -610,7 +609,7 @@ void WindowManager::releaseWindow(Window *window) window->deleteLater(); if (d->shuttingDown && (count() == 0)) - QMetaObject::invokeMethod(this, &WindowManager::shutDownFinished, Qt::QueuedConnection); + QMetaObject::invokeMethod(&internalSignals, &WindowManagerInternalSignals::shutDownFinished, Qt::QueuedConnection); } /* @@ -694,7 +693,6 @@ void WindowManager::registerCompositorView(QQuickWindow *view) if (!once) qCInfo(LogGraphics) << "WindowManager: running in single-process mode [forced at compile-time]"; #endif - emit compositorViewRegistered(view); if (!once) once = true; @@ -703,14 +701,14 @@ void WindowManager::registerCompositorView(QQuickWindow *view) /*! \internal Only used for in-process surfaces */ -void WindowManager::inProcessSurfaceItemCreated(QSharedPointer<InProcessSurfaceItem> surfaceItem) +void WindowManager::inProcessSurfaceItemCreated(AbstractRuntime *runtime, + QSharedPointer<InProcessSurfaceItem> surfaceItem) { - AbstractRuntime *rt = qobject_cast<AbstractRuntime *>(sender()); - if (!rt) { + if (!runtime) { qCCritical(LogSystem) << "This function must be called by a signal of Runtime!"; return; } - Application *app = rt->application() ? rt->application()->nonAliased() : nullptr; + Application *app = runtime->application() ? runtime->application()->nonAliased() : nullptr; if (!app) { qCCritical(LogSystem) << "This function must be called by a signal of Runtime which actually has an application attached!"; return; diff --git a/src/window-lib/windowmanager.h b/src/window-lib/windowmanager.h index 09491baa..1e85242d 100644 --- a/src/window-lib/windowmanager.h +++ b/src/window-lib/windowmanager.h @@ -45,9 +45,11 @@ class WindowManagerInternalSignals : public QObject signals: // Emitted right before the WaylandCompositor instance is created void compositorAboutToBeCreated(); + void shutDownFinished(); }; class WindowManager : public QAbstractListModel + { Q_OBJECT Q_CLASSINFO("D-Bus Interface", "io.qt.WindowManager") @@ -104,12 +106,9 @@ signals: void windowPropertyChanged(QT_PREPEND_NAMESPACE_AM(Window) *window, const QString &name, const QVariant &value); - void compositorViewRegistered(QQuickWindow *view); - - void shutDownFinished(); - private slots: - void inProcessSurfaceItemCreated(QSharedPointer<QT_PREPEND_NAMESPACE_AM(InProcessSurfaceItem)> surfaceItem); + void inProcessSurfaceItemCreated(QT_PREPEND_NAMESPACE_AM(AbstractRuntime) *runtime, + QSharedPointer<QT_PREPEND_NAMESPACE_AM(InProcessSurfaceItem)> surfaceItem); void setupWindow(QT_PREPEND_NAMESPACE_AM(Window) *window); public: |