43 setTitle(
"FlightGear " + m_controller->versionString());
46 m_controller->initQML(styleTypeId);
51 connect(
this, &QQuickWindow::sceneGraphInitialized,
52 this, &LauncherMainWindow::renderTheadSceneGraphInitialized,
53 Qt::DirectConnection);
56 engine()->addImageProvider(
"colored-icon", m_coloredIconProvider);
60 QMenuBar* mb =
new QMenuBar();
62 QMenu* fileMenu = mb->addMenu(tr(
"File"));
63 QAction* openAction =
new QAction(tr(
"Open saved configuration..."));
64 openAction->setMenuRole(QAction::NoRole);
65 connect(openAction, &QAction::triggered,
68 QAction* saveAction =
new QAction(tr(
"Save configuration as..."));
69 saveAction->setMenuRole(QAction::NoRole);
70 connect(saveAction, &QAction::triggered,
73 fileMenu->addAction(openAction);
74 fileMenu->addAction(saveAction);
76 QMenu* toolsMenu = mb->addMenu(tr(
"Tools"));
77 QAction* restoreDefaultsAction =
new QAction(tr(
"Restore defaults..."));
78 restoreDefaultsAction->setMenuRole(QAction::NoRole);
79 connect(restoreDefaultsAction, &QAction::triggered,
82 QAction* changeDataAction =
new QAction(tr(
"Select data files location..."));
83 changeDataAction->setMenuRole(QAction::NoRole);
84 connect(changeDataAction, &QAction::triggered,
87 QAction* viewCommandLineAction =
new QAction(tr(
"View command-line"));
88 connect(viewCommandLineAction, &QAction::triggered,
91 toolsMenu->addAction(restoreDefaultsAction);
92 toolsMenu->addAction(changeDataAction);
93 toolsMenu->addAction(viewCommandLineAction);
96 QAction* qa =
new QAction(
this);
97 qa->setMenuRole(QAction::QuitRole);
98 qa->setShortcut(QKeySequence(
"Ctrl+Q"));
102 if (!checkQQC2Availability()) {
103 QMessageBox::critical(
nullptr,
"Missing required component",
104 tr(
"Your system is missing a required UI component (QtQuick Controls 2). "
105 "This normally occurs on Linux platforms where Qt is split into many small packages. "
106 "On Ubuntu/Debian systems, the package is called 'qml-module-qtquick-controls2'"));
111 connect(
this, &QQuickView::statusChanged,
this, &LauncherMainWindow::onQuickStatusChanged);
113 m_controller->initialRestoreSettings();
117 const QString osName(
"win");
118#elif defined(Q_OS_MAC)
119 const QString osName(
"mac");
121 const QString osName(
"unix");
124 setResizeMode(QQuickView::SizeRootObjectToView);
125 engine()->addImportPath(
"qrc:///");
127 QQmlContext* ctx = rootContext();
128 ctx->setContextProperty(
"_launcher", m_controller);
129 ctx->setContextProperty(
"_config", m_controller->config());
130 ctx->setContextProperty(
"_location", m_controller->location());
131 ctx->setContextProperty(
"_osName", osName);
134 ctx->setContextProperty(
"_updates", updater);
137 ctx->setContextProperty(
"_packages", packageDelegate);
140 ctx->setContextProperty(
"_notifications", notifications);
144 ctx->setContextProperty(
"_addOns", addOnsCtl);
148 ctx->setContextProperty(
"_weatherScenarios", weatherScenariosModel);
150 setSource(QUrl(
"qrc:///qml/Launcher.qml"));
virtual ~LauncherMainWindow()
bool event(QEvent *event) override
LauncherMainWindow(bool inSimMode)