3#include <QtCore/QElapsedTimer>
6#include <QtCore/QTimer>
7#include <QtCore/QTranslator>
8#include <QtGui/QGuiApplication>
14class QQmlApplicationEngine;
26#define qApp (static_cast<QGCApplication*>(QGuiApplication::instance()))
31#define qGuiApp (static_cast<QGCApplication*>(QGuiApplication::instance()))
70 bool event(QEvent *e)
final;
81 QQmlApplicationEngine *
qmlAppEngine()
const {
return _qmlAppEngine; }
98 void showAppMessage(
const QString &message,
const QString &title = QString());
108 void _missingParamsDisplay();
109 void _qgcCurrentStableVersionDownloadComplete(
bool success,
const QString &localFile,
const QString &errorMsg);
110 static bool _parseVersionText(
const QString &versionString,
int &majorVersion,
int &minorVersion,
int &buildVersion);
111 void _showDelayedAppMessages();
114 bool compressEvent(QEvent *
event, QObject *receiver, QPostEventList *postedEvents)
final;
119 void _initForNormalAppBoot();
121 QObject *_rootQmlObject();
122 void _checkForNewVersion();
124 bool _runningUnitTests =
false;
125 bool _simpleBootTest =
false;
126 bool _fakeMobile =
false;
127 bool _logOutput =
false;
128 quint8 _systemId = 0;
130 static constexpr int _missingParamsDelayedDisplayTimerTimeout = 1000;
131 QTimer _missingParamsDelayedDisplayTimer;
132 QList<QPair<int,QString>> _missingParams;
134 QQmlApplicationEngine *_qmlAppEngine =
nullptr;
135 bool _settingsUpgraded =
false;
136 int _majorVersion = 0;
137 int _minorVersion = 0;
138 int _buildVersion = 0;
139 QQuickWindow *_mainRootWindow =
nullptr;
140 QTranslator _qgcTranslatorSourceCode;
141 QTranslator _qgcTranslatorQtLibs;
144 bool _showErrorsInToolbar =
false;
145 QElapsedTimer _msecsElapsedTime;
146 bool _videoManagerInitialized =
false;
147 bool _bootTestPassed =
true;
149 QList<QPair<QString , QString >> _delayedAppMessages;
151 class CompressedSignalList
154 CompressedSignalList() {}
155 void add(
const QMetaMethod &method);
156 void remove(
const QMetaMethod &method);
157 bool contains(
const QMetaObject *metaObject,
int signalIndex);
161 static int _signalIndex(
const QMetaMethod &method);
163 QMap<const QMetaObject*, QSet<int>> _signalMap;
165 Q_DISABLE_COPY(CompressedSignalList)
168 CompressedSignalList _compressedSignals;
170 const QString _settingsVersionKey = QStringLiteral(
"SettingsVersion");
172 const QString _qgcImageProviderId = QStringLiteral(
"QGCImages");
The main application and management class.
void qmlAttemptWindowClose()
void reportMissingParameter(int componentId, const QString &name)
void showRebootAppMessage(const QString &message, const QString &title=QString())
bool logOutput() const
Returns true if Qt debug output should be logged to a file.
void init()
Perform initialize which is common to both normal application running and unit tests.
static QString cachedParameterMetaDataFile()
QQuickWindow * mainRootWindow()
void removeCompressedSignal(const QMetaMethod &method)
void languageChanged(const QLocale &locale)
static QString cachedAirframeMetaDataFile()
void addCompressedSignal(const QMetaMethod &method)
Registers the signal such that only the last duplicate signal added is left in the queue.
QQmlApplicationEngine * qmlAppEngine() const
Although public, these methods are internal and should only be called by UnitTest code.
friend class UnitTest
Unit Test have access to creating and destroying singletons.
void showCriticalVehicleMessage(const QString &message)
Show non-modal vehicle message to the user.
bool runningUnitTests() const
QGCImageProvider * qgcImageProvider()
uint64_t msecsSinceBoot() const
bool simpleBootTest() const
void showAppMessage(const QString &message, const QString &title=QString())
Show modal application message to the user.
bool bootTestPassed() const
QLocale getCurrentLanguage() const
Get current language.
bool event(QEvent *e) final
This is used to expose images from ImageProtocolHandler.
bool remove(const QString &key)
Result of parsing command-line arguments.