3#include <QtCore/QElapsedTimer>
4#include <QtCore/QLoggingCategory>
7#include <QtCore/QTimer>
8#include <QtCore/QTranslator>
9#include <QtGui/QGuiApplication>
15class QQmlApplicationEngine;
27#define qApp (static_cast<QGCApplication*>(QGuiApplication::instance()))
32#define qGuiApp (static_cast<QGCApplication*>(QGuiApplication::instance()))
71 bool event(QEvent *e)
final;
82 QQmlApplicationEngine *
qmlAppEngine()
const {
return _qmlAppEngine; }
99 void showAppMessage(
const QString &message,
const QString &title = QString());
109 void _missingParamsDisplay();
110 void _qgcCurrentStableVersionDownloadComplete(
bool success,
const QString &localFile,
const QString &errorMsg);
111 static bool _parseVersionText(
const QString &versionString,
int &majorVersion,
int &minorVersion,
int &buildVersion);
112 void _showDelayedAppMessages();
115 bool compressEvent(QEvent *
event, QObject *receiver, QPostEventList *postedEvents)
final;
119 bool _initQmlRootWindow();
122 void _initForNormalAppBoot();
124 QObject *_rootQmlObject();
125 void _checkForNewVersion();
127 bool _runningUnitTests =
false;
128 bool _simpleBootTest =
false;
129 bool _fakeMobile =
false;
130 bool _logOutput =
false;
131 quint8 _systemId = 0;
133 static constexpr int _missingParamsDelayedDisplayTimerTimeout = 1000;
134 QTimer _missingParamsDelayedDisplayTimer;
135 QList<QPair<int,QString>> _missingParams;
137 QQmlApplicationEngine *_qmlAppEngine =
nullptr;
138 bool _settingsUpgraded =
false;
139 int _majorVersion = 0;
140 int _minorVersion = 0;
141 int _buildVersion = 0;
142 QQuickWindow *_mainRootWindow =
nullptr;
143 QTranslator _qgcTranslatorSourceCode;
144 QTranslator _qgcTranslatorQtLibs;
147 bool _showErrorsInToolbar =
false;
148 QElapsedTimer _msecsElapsedTime;
149 bool _videoManagerInitialized =
false;
150 bool _bootTestPassed =
true;
152 QList<QPair<QString , QString >> _delayedAppMessages;
154 class CompressedSignalList
157 CompressedSignalList() {}
158 void add(
const QMetaMethod &method);
159 void remove(
const QMetaMethod &method);
160 bool contains(
const QMetaObject *metaObject,
int signalIndex);
164 static int _signalIndex(
const QMetaMethod &method);
166 QMap<const QMetaObject*, QSet<int>> _signalMap;
168 Q_DISABLE_COPY(CompressedSignalList)
171 CompressedSignalList _compressedSignals;
173 const QString _settingsVersionKey = QStringLiteral(
"SettingsVersion");
175 const QString _qgcImageProviderId = QStringLiteral(
"QGCImages");
178Q_DECLARE_LOGGING_CATEGORY(QGCAppMessageLog)
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.
Result of parsing command-line arguments.