diff --git a/src/QGCApplication.cc b/src/QGCApplication.cc index fd3dc4dbfee2a452ccfdd484451197d43cb48355..07c5e62cf21657a9f8c788ff4e7dc3223c72f5cb 100644 --- a/src/QGCApplication.cc +++ b/src/QGCApplication.cc @@ -130,6 +130,12 @@ QGCApplication::QGCApplication(int &argc, char* argv[]) : } +QGCApplication::~QGCApplication() +{ + destroySingletonsForUnitTest(); + delete _mainWindow; +} + void QGCApplication::_initCommon(void) { _createSingletons(); @@ -276,15 +282,6 @@ bool QGCApplication::_initForUnitTests(void) return true; } -/** - * @brief Destructor for the groundstation. It destroys all loaded instances. - * - **/ -QGCApplication::~QGCApplication() -{ - -} - void QGCApplication::deleteAllSettingsNextBoot(void) { QSettings settings; diff --git a/src/main.cc b/src/main.cc index 573ee6edd1282ad02fa388eadd89a56671da9eb1..6e7d74625e09e07384fa6230184a587d1a78dc17 100644 --- a/src/main.cc +++ b/src/main.cc @@ -131,6 +131,8 @@ int main(int argc, char *argv[]) app->_initCommon(); + int exitCode; + #ifdef QT_DEBUG if (runUnitTests) { if (!app->_initForUnitTests()) { @@ -147,13 +149,17 @@ int main(int argc, char *argv[]) { qDebug() << failures << " TESTS FAILED!"; } - return -failures; + exitCode = -failures; } else #endif { if (!app->_initForNormalAppBoot()) { return -1; } - return app->exec(); + exitCode = app->exec(); } + + delete app; + + return exitCode; }