diff --git a/src/api/QGCCorePlugin.h b/src/api/QGCCorePlugin.h index 9589717b4bc584fd4342f59b8930d988950bbd52..37c4df53dba86322b2beedcf9c6712644f521171 100644 --- a/src/api/QGCCorePlugin.h +++ b/src/api/QGCCorePlugin.h @@ -39,6 +39,7 @@ public: Q_PROPERTY(bool showTouchAreas READ showTouchAreas WRITE setShowTouchAreas NOTIFY showTouchAreasChanged) Q_PROPERTY(bool showAdvancedUI READ showAdvancedUI WRITE setShowAdvancedUI NOTIFY showAdvancedUIChanged) + Q_PROPERTY(QString showAdvancedUIMessage READ showAdvancedUIMessage CONSTANT) Q_PROPERTY(QString brandImageIndoor READ brandImageIndoor CONSTANT) Q_PROPERTY(QString brandImageOutdoor READ brandImageOutdoor CONSTANT) @@ -71,6 +72,10 @@ public: /// Return the resource file which contains the brand image for for Outdoor theme. virtual QString brandImageOutdoor(void) const { return QString(); } + /// @return The message to show to the user when they a re prompted to confirm turning on advanced ui. + virtual QString showAdvancedUIMessage(void) const { return tr("WARNING: You are about to enter Advanced Mode. This may expose features which may cause your vehicle to malfunction. " + "You should do so only if instructed by customer support. Are you sure you want to enable Advanced Mode?"); } + bool showTouchAreas(void) const { return _showTouchAreas; } bool showAdvancedUI(void) const { return _showAdvancedUI; } void setShowTouchAreas(bool show); diff --git a/src/ui/toolbar/MainToolBarIndicators.qml b/src/ui/toolbar/MainToolBarIndicators.qml index 4c245192cd6b8f3f9a9e4b68a63b4013cd5e26d1..ab9adff276abaef7a6b5c1e69546eb013a1b408c 100644 --- a/src/ui/toolbar/MainToolBarIndicators.qml +++ b/src/ui/toolbar/MainToolBarIndicators.qml @@ -7,10 +7,10 @@ * ****************************************************************************/ - import QtQuick 2.3 import QtQuick.Controls 1.2 import QtQuick.Layouts 1.2 +import QtQuick.Dialogs 1.2 import QGroundControl 1.0 import QGroundControl.Controls 1.0 @@ -19,20 +19,19 @@ import QGroundControl.ScreenTools 1.0 import QGroundControl.Palette 1.0 Item { - property var _activeVehicle: QGroundControl.multiVehicleManager.activeVehicle - property bool _communicationLost: _activeVehicle ? _activeVehicle.connectionLost : false + property var _activeVehicle: QGroundControl.multiVehicleManager.activeVehicle + property bool _communicationLost: _activeVehicle ? _activeVehicle.connectionLost : false QGCPalette { id: qgcPal } - // Easter egg mechanism MouseArea { anchors.fill: parent onClicked: { - console.log("easter egg click", ++_clickCount) + _clickCount++ eggTimer.restart() - if (_clickCount == 5) { - QGroundControl.corePlugin.showAdvancedUI = true + if (_clickCount == 5 && !QGroundControl.corePlugin.showAdvancedUI) { + advancedModeConfirmation.visible = true } else if (_clickCount == 7) { QGroundControl.corePlugin.showTouchAreas = true } @@ -45,6 +44,18 @@ Item { interval: 1000 onTriggered: parent._clickCount = 0 } + + MessageDialog { + id: advancedModeConfirmation + title: qsTr("Advanced Mode") + text: QGroundControl.corePlugin.showAdvancedUIMessage + standardButtons: StandardButton.Yes | StandardButton.No + + onYes: { + QGroundControl.corePlugin.showAdvancedUI = true + visible = false + } + } } QGCLabel {