Commit 99f2faa7 authored by Stefan Dunca's avatar Stefan Dunca

Fix crash when enabling Advanced Tuning

Disable closing app on last window close. This will close
the app on every widget spawned in QML that closes (MessageBox)
parent 7a9e7f3d
...@@ -64,8 +64,8 @@ SetupPage { ...@@ -64,8 +64,8 @@ SetupPage {
ExclusiveGroup { id: returnAltRadioGroup } ExclusiveGroup { id: returnAltRadioGroup }
Component.onCompleted: { Component.onCompleted: {
// Advanced tuning is hacked out due to Qt crash with Qml Charts and a QGuiApplication // We use QtCharts only on Desktop platforms
//showAdvanced = !ScreenTools.isMobile showAdvanced = !ScreenTools.isMobile
// Qml Sliders have a strange behavior in which they first set Slider::value to some internal // Qml Sliders have a strange behavior in which they first set Slider::value to some internal
// setting and then set Slider::value to the bound properties value. If you have an onValueChanged // setting and then set Slider::value to the bound properties value. If you have an onValueChanged
......
...@@ -29,8 +29,8 @@ SetupPage { ...@@ -29,8 +29,8 @@ SetupPage {
width: availableWidth width: availableWidth
Component.onCompleted: { Component.onCompleted: {
// Advanced tuning is hacked out due to Qt crash with Qml Charts and a QGuiApplication // We use QtCharts only on Desktop platforms
//showAdvanced = !ScreenTools.isMobile showAdvanced = !ScreenTools.isMobile
} }
FactPanelController { FactPanelController {
......
...@@ -29,8 +29,8 @@ SetupPage { ...@@ -29,8 +29,8 @@ SetupPage {
width: availableWidth width: availableWidth
Component.onCompleted: { Component.onCompleted: {
// Advanced tuning is hacked out due to Qt crash with Qml Charts and a QGuiApplication // We use QtCharts only on Desktop platforms
//showAdvanced = !ScreenTools.isMobile showAdvanced = !ScreenTools.isMobile
} }
FactPanelController { FactPanelController {
......
...@@ -158,7 +158,11 @@ static QObject* shapeFileHelperSingletonFactory(QQmlEngine*, QJSEngine*) ...@@ -158,7 +158,11 @@ static QObject* shapeFileHelperSingletonFactory(QQmlEngine*, QJSEngine*)
} }
QGCApplication::QGCApplication(int &argc, char* argv[], bool unitTesting) QGCApplication::QGCApplication(int &argc, char* argv[], bool unitTesting)
#if defined(__mobile__)
: QGuiApplication (argc, argv) : QGuiApplication (argc, argv)
#else
: QApplication (argc, argv)
#endif
, _runningUnitTests (unitTesting) , _runningUnitTests (unitTesting)
{ {
_app = this; _app = this;
...@@ -555,9 +559,6 @@ bool QGCApplication::_initForNormalAppBoot() ...@@ -555,9 +559,6 @@ bool QGCApplication::_initForNormalAppBoot()
QSettings settings; QSettings settings;
// Exit main application when last window is closed
connect(this, &QGCApplication::lastWindowClosed, this, QGCApplication::quit);
_qmlAppEngine = toolbox()->corePlugin()->createRootWindow(this); _qmlAppEngine = toolbox()->corePlugin()->createRootWindow(this);
// Safe to show popup error messages now that main window is created // Safe to show popup error messages now that main window is created
......
...@@ -35,7 +35,25 @@ class QGCSingleton; ...@@ -35,7 +35,25 @@ class QGCSingleton;
class QGCToolbox; class QGCToolbox;
class QGCFileDownload; class QGCFileDownload;
class QGCApplication : public QGuiApplication /**
* @brief The main application and management class.
*
* This class is started by the main method and provides
* the central management unit of the groundstation application.
*
* Needs QApplication base to support QtCharts module. This way
* we avoid application crashing on 5.12 when using the module.
* We don't have QtWidgets on mobile, avoid using it.
*
* Note: `lastWindowClosed` will be sent by MessageBox popups and other
* dialogs, that are spawned in QML, when they are closed
**/
class QGCApplication :
#if defined(__mobile__)
public QGuiApplication
#else
public QApplication
#endif
{ {
Q_OBJECT Q_OBJECT
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment