Extract code for obtaining a window from the QML engine into a function

This commit is contained in:
Nicolas Fella
2022-09-01 21:45:59 +02:00
committed by Tobias Fella
parent c379a7fa27
commit 4cf5b516d0
3 changed files with 20 additions and 21 deletions

View File

@@ -110,6 +110,14 @@ static void raiseWindow(QWindow *window)
}
#endif
static QWindow *windowFromEngine(QQmlApplicationEngine *engine)
{
const auto rootObjects = engine->rootObjects();
auto *window = qobject_cast<QQuickWindow *>(rootObjects.first());
Q_ASSERT(window);
return window;
}
#ifdef Q_OS_ANDROID
Q_DECL_EXPORT
#endif
@@ -283,15 +291,9 @@ int main(int argc, char *argv[])
Q_UNUSED(workingDirectory);
// Raise windows
const auto rootObjects = engine.rootObjects();
for (auto obj : rootObjects) {
auto view = qobject_cast<QQuickWindow *>(obj);
if (view) {
view->show();
raiseWindow(view);
return;
}
}
QWindow *window = windowFromEngine(&engine);
window->show();
raiseWindow(window);
// Open matrix uri
if (arguments.isEmpty()) {
@@ -304,15 +306,12 @@ int main(int argc, char *argv[])
}
});
#endif
const auto rootObjects = engine.rootObjects();
for (auto obj : rootObjects) {
auto view = qobject_cast<QQuickWindow *>(obj);
if (view) {
if (view->isVisible()) {
Controller::instance().restoreWindowGeometry(view);
}
break;
}
QWindow *window = windowFromEngine(&engine);
if (window->isVisible()) {
Controller::instance().restoreWindowGeometry(window);
}
return app.exec();
}