Исправление запуска: main проверял engine.rootObjects() (пуст для окон из QQmlComponent) и мгновенно выходил — теперь windowController.windowCount(); самодостаточная сборка Flowera.app (macdeployqt -qmlimport=/-qmldir)
This commit is contained in:
+11
-1
@@ -1,5 +1,6 @@
|
|||||||
#include <QGuiApplication>
|
#include <QGuiApplication>
|
||||||
#include <QQmlApplicationEngine>
|
#include <QQmlApplicationEngine>
|
||||||
|
#include <QQmlError>
|
||||||
#include <QQmlContext>
|
#include <QQmlContext>
|
||||||
#include <QCommandLineParser>
|
#include <QCommandLineParser>
|
||||||
|
|
||||||
@@ -45,6 +46,11 @@ int main(int argc, char *argv[])
|
|||||||
VaultIndex vaultIndex;
|
VaultIndex vaultIndex;
|
||||||
|
|
||||||
QQmlApplicationEngine engine;
|
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("settingsStore", &settingsStore);
|
||||||
engine.rootContext()->setContextProperty("gitManager", &gitManager);
|
engine.rootContext()->setContextProperty("gitManager", &gitManager);
|
||||||
engine.rootContext()->setContextProperty("syncManager", &syncManager);
|
engine.rootContext()->setContextProperty("syncManager", &syncManager);
|
||||||
@@ -61,8 +67,12 @@ int main(int argc, char *argv[])
|
|||||||
// откроется мастер первого запуска.
|
// откроется мастер первого запуска.
|
||||||
windowController.openWindow(settingsStore.currentVault());
|
windowController.openWindow(settingsStore.currentVault());
|
||||||
|
|
||||||
if (engine.rootObjects().isEmpty())
|
// Окна создаются через QQmlComponent (WindowController), поэтому проверяем
|
||||||
|
// количество окон, а не engine.rootObjects() (для таких объектов он пуст).
|
||||||
|
if (windowController.windowCount() == 0) {
|
||||||
|
qWarning("=== Не удалось создать окно приложения ===");
|
||||||
return -1;
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
return app.exec();
|
return app.exec();
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user