Исправление запуска: main проверял engine.rootObjects() (пуст для окон из QQmlComponent) и мгновенно выходил — теперь windowController.windowCount(); самодостаточная сборка Flowera.app (macdeployqt -qmlimport=/-qmldir)

This commit is contained in:
Flora (opencode)
2026-08-17 14:45:09 +03:00
parent c22987e5dc
commit e789b04406
+11 -1
View File
@@ -1,5 +1,6 @@
#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <QQmlError>
#include <QQmlContext>
#include <QCommandLineParser>
@@ -45,6 +46,11 @@ int main(int argc, char *argv[])
VaultIndex vaultIndex;
QQmlApplicationEngine engine;
QObject::connect(&engine, &QQmlApplicationEngine::warnings,
[](const QList<QQmlError> &list) {
for (const QQmlError &e : list)
qWarning("QML: %s", qPrintable(e.toString()));
});
engine.rootContext()->setContextProperty("settingsStore", &settingsStore);
engine.rootContext()->setContextProperty("gitManager", &gitManager);
engine.rootContext()->setContextProperty("syncManager", &syncManager);
@@ -61,8 +67,12 @@ int main(int argc, char *argv[])
// откроется мастер первого запуска.
windowController.openWindow(settingsStore.currentVault());
if (engine.rootObjects().isEmpty())
// Окна создаются через QQmlComponent (WindowController), поэтому проверяем
// количество окон, а не engine.rootObjects() (для таких объектов он пуст).
if (windowController.windowCount() == 0) {
qWarning("=== Не удалось создать окно приложения ===");
return -1;
}
return app.exec();
}