From 65c93900ed1fc0c07fb998ead0ed6f7e8829d931 Mon Sep 17 00:00:00 2001 From: Donald Gagne Date: Thu, 23 Mar 2017 19:13:00 -0700 Subject: [PATCH] Easter egg confirmation --- src/api/QGCCorePlugin.h | 5 +++++ src/ui/toolbar/MainToolBarIndicators.qml | 25 +++++++++++++++++------- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/src/api/QGCCorePlugin.h b/src/api/QGCCorePlugin.h index 9589717b4..37c4df53d 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 4c245192c..ab9adff27 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 { -- 2.22.0