summaryrefslogtreecommitdiffstats
path: root/src/window-lib
diff options
context:
space:
mode:
authorRobert Griebl <robert.griebl@qt.io>2023-06-21 12:18:39 +0200
committerRobert Griebl <robert.griebl@qt.io>2023-06-21 15:19:24 +0200
commitf1072436332c5789f9ab8ba4d78fad13e1d37204 (patch)
tree6ac785505cabcb2601cfb22a9e1a7fd15029d94f /src/window-lib
parent7ba5d1fc462ec3983d62bec20a589e510dce766a (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.cpp22
-rw-r--r--src/window-lib/windowmanager.h9
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: