diff --git a/src/AutoPilotPlugins/PX4/AirframeComponent.qml b/src/AutoPilotPlugins/PX4/AirframeComponent.qml
index b2c3a5a6f04bb42cb09d12fce0d7cb4429254ba2..f14ed8f698126a2b94404b9c6da57f2e31991d2d 100644
--- a/src/AutoPilotPlugins/PX4/AirframeComponent.qml
+++ b/src/AutoPilotPlugins/PX4/AirframeComponent.qml
@@ -96,30 +96,18 @@ QGCView {
readonly property real spacerHeight: ScreenTools.defaultFontPixelHeight
- QGCLabel {
- id: header
- width: parent.width
- font.pixelSize: ScreenTools.largeFontPixelSize
- text: "AIRFRAME CONFIG"
- }
-
- Item {
- id: headingSpacer
- anchors.top: header.bottom
- height: parent.spacerHeight
- width: 20
- }
-
Item {
id: helpApplyRow
- anchors.top: headingSpacer.bottom
- width: parent.width
+ anchors.top: parent.top
+ anchors.left: parent.left
+ anchors.right: parent.right
height: Math.max(helpText.contentHeight, applyButton.height)
QGCLabel {
id: helpText
width: parent.width - applyButton.width - 5
text: "Please select your airframe type. Click 'Apply and Restart' to reboot the autopilot. Please re-connect then manually."
+ font.pixelSize: ScreenTools.mediumFontPixelSize
wrapMode: Text.WordWrap
}
diff --git a/src/AutoPilotPlugins/PX4/FlightModesComponent.qml b/src/AutoPilotPlugins/PX4/FlightModesComponent.qml
index 7dd4a04cb7c8a2aba06b16465f93111d50695996..5178b1ca699c1c49bbad8301f4f6f66cc6e19cc1 100644
--- a/src/AutoPilotPlugins/PX4/FlightModesComponent.qml
+++ b/src/AutoPilotPlugins/PX4/FlightModesComponent.qml
@@ -42,7 +42,7 @@ QGCView {
// User visible strings
- readonly property string title: "FLIGHT MODES CONFIG"
+ readonly property string title: "FLIGHT MODES"
property string topHelpText: "Assign Flight Modes to radio control channels and adjust the thresholds for triggering them. " +
@@ -216,23 +216,8 @@ QGCView {
id: scrollItem
width: scroll.viewport.width
- QGCLabel {
- id: header
- width: parent.width
- font.pixelSize: ScreenTools.largeFontPixelSize
- text: title
- }
-
- Item {
- id: headingSpacer
- anchors.top: header.bottom
- height: ScreenTools.defaultFontPixelHeight
- width: 20
- }
-
Item {
id: helpApplyRow
- anchors.top: headingSpacer.bottom
width: parent.width
height: Math.max(helpText.contentHeight, applyButton.height)
@@ -242,6 +227,7 @@ QGCView {
anchors.left: parent.left
anchors.right: applyButton.left
text: topHelpText
+ font.pixelSize: ScreenTools.mediumFontPixelSize
wrapMode: Text.WordWrap
}
diff --git a/src/AutoPilotPlugins/PX4/PowerComponent.qml b/src/AutoPilotPlugins/PX4/PowerComponent.qml
index 241ee2538fe17047c4b97947dc0dd30d316df215..c2fe072390b38d7dfb6aefba1ee493628d7da7bd 100644
--- a/src/AutoPilotPlugins/PX4/PowerComponent.qml
+++ b/src/AutoPilotPlugins/PX4/PowerComponent.qml
@@ -115,11 +115,6 @@ QGCView {
anchors.right: parent.right
spacing: ScreenTools.defaultFontPixelHeight
- QGCLabel {
- text: "POWER CONFIG"
- font.pixelSize: ScreenTools.largeFontPixelSize
- }
-
QGCLabel {
text: "Battery"
font.pixelSize: ScreenTools.mediumFontPixelSize
diff --git a/src/AutoPilotPlugins/PX4/RadioComponent.qml b/src/AutoPilotPlugins/PX4/RadioComponent.qml
index aa88b2d2b82ec2dba6bb87648417c8320a3d5ddb..e59449ec6af4f7062732ae91c19be013725d0141 100644
--- a/src/AutoPilotPlugins/PX4/RadioComponent.qml
+++ b/src/AutoPilotPlugins/PX4/RadioComponent.qml
@@ -42,7 +42,7 @@ QGCView {
QGCPalette { id: qgcPal; colorGroupEnabled: panel.enabled }
- readonly property string dialogTitle: "Radio Config"
+ readonly property string dialogTitle: "Radio"
readonly property real labelToMonitorMargin: defaultTextWidth * 3
property bool controllerCompleted: false
property bool controllerAndViewReady: false
@@ -269,23 +269,10 @@ QGCView {
// Main view Qml starts here
- QGCLabel {
- id: header
- font.pixelSize: ScreenTools.largeFontPixelSize
- text: "RADIO CONFIG"
- }
-
- Item {
- id: spacer
- anchors.top: header.bottom
- width: parent.width
- height: 10
- }
-
// Left side column
Column {
id: leftColumn
- anchors.top: spacer.bottom
+ anchors.top: parent.top
anchors.left: parent.left
anchors.right: columnSpacer.left
spacing: 10
@@ -504,7 +491,7 @@ QGCView {
// Right side column
Column {
id: rightColumn
- anchors.top: spacer.bottom
+ anchors.top: parent.top
anchors.right: parent.right
width: defaultTextWidth * 35
spacing: 10
diff --git a/src/AutoPilotPlugins/PX4/SafetyComponent.qml b/src/AutoPilotPlugins/PX4/SafetyComponent.qml
index 89a27a51399115ed2ac146c5290bee2a9f47d429..9c6ca9601f465f667bb85b0efae9282ad14e2c62 100644
--- a/src/AutoPilotPlugins/PX4/SafetyComponent.qml
+++ b/src/AutoPilotPlugins/PX4/SafetyComponent.qml
@@ -56,13 +56,6 @@ QGCView {
Column {
anchors.fill: parent
- QGCLabel {
- text: "SAFETY CONFIG"
- font.pixelSize: ScreenTools.largeFontPixelSize
- }
-
- Item { height: 20; width: 10 } // spacer
-
//-----------------------------------------------------------------
//-- Return Home Triggers
diff --git a/src/AutoPilotPlugins/PX4/SensorsComponent.qml b/src/AutoPilotPlugins/PX4/SensorsComponent.qml
index ddf214c72814c1944880351f053e3e7c01337123..c08e7acb732a1c44ab15fe65ec7802fa97d58df7 100644
--- a/src/AutoPilotPlugins/PX4/SensorsComponent.qml
+++ b/src/AutoPilotPlugins/PX4/SensorsComponent.qml
@@ -278,13 +278,6 @@ QGCView {
Column {
anchors.fill: parent
- QGCLabel {
- text: "SENSORS CONFIG"
- font.pixelSize: ScreenTools.largeFontPixelSize
- }
-
- Item { height: ScreenTools.defaultFontPixelHeight; width: 10 } // spacer
-
Row {
readonly property int buttonWidth: ScreenTools.defaultFontPixelWidth * 15
diff --git a/src/QGCApplication.cc b/src/QGCApplication.cc
index ec577fb27979e9fd7ce09286db0bdce6613b8655..e3e6fba534f69b96fce5f10ccd8da912a7ba4106 100644
--- a/src/QGCApplication.cc
+++ b/src/QGCApplication.cc
@@ -296,8 +296,9 @@ QGCApplication::QGCApplication(int &argc, char* argv[], bool unitTesting)
QSettings::setDefaultFormat(QSettings::IniFormat);
QSettings settings;
+ qDebug() << "Settings location" << settings.fileName() << settings.isWritable();
+
#ifdef UNITTEST_BUILD
- qDebug() << "Settings location" << settings.fileName();
Q_ASSERT(settings.isWritable());
#endif
// The setting will delete all settings on this boot
@@ -316,7 +317,6 @@ QGCApplication::QGCApplication(int &argc, char* argv[], bool unitTesting)
// Initialize Video Streaming
initializeVideoStreaming(argc, argv);
-
}
QGCApplication::~QGCApplication()
@@ -421,6 +421,8 @@ void QGCApplication::_initCommon(void)
}
qDebug() << "Saved files location" << savedFilesLocation;
settings.setValue(_savedFilesLocationKey, savedFilesLocation);
+
+ settings.sync();
}
bool QGCApplication::_initForNormalAppBoot(void)
diff --git a/src/QGCMessageBox.h b/src/QGCMessageBox.h
index 646fdc8548ff8c9058e48a792457dc36b9b2ff22..e74295f726693b9f67a250d143e3167a68634d2d 100644
--- a/src/QGCMessageBox.h
+++ b/src/QGCMessageBox.h
@@ -107,10 +107,11 @@ private:
}
}
+ qDebug() << "QGCMessageBox (unit testing)" << title << text;
+
#ifdef QT_DEBUG
#ifndef __mobile__
if (qgcApp()->runningUnitTests()) {
- qDebug() << "QGCMessageBox (unit testing)" << title << text;
return UnitTest::_messageBox(icon, title, text, buttons, defaultButton);
} else
#endif
diff --git a/src/QmlControls/ParameterEditor.qml b/src/QmlControls/ParameterEditor.qml
index 64378485fd1739f4cc66249396a2ffd5eba16a20..2e04d8274d670372187b1b0879c22cfb08624437 100644
--- a/src/QmlControls/ParameterEditor.qml
+++ b/src/QmlControls/ParameterEditor.qml
@@ -212,6 +212,8 @@ QGCView {
width: defaultTextWidth * 25
height: parent.height
+ Component.onCompleted: flickableItem.flickableDirection = Flickable.VerticalFlick
+
Column {
Repeater {
model: controller.componentIds
@@ -317,8 +319,8 @@ QGCView {
QGCLabel {
id: titleText
- font.pixelSize: ScreenTools.largeFontPixelSize
- text: "PARAMETER EDITOR"
+ font.pixelSize: ScreenTools.mediumFontPixelSize
+ text: "PARAMETERS"
}
QGCButton {
diff --git a/src/VehicleSetup/FirmwareUpgrade.qml b/src/VehicleSetup/FirmwareUpgrade.qml
index 864a48bf9e79d4ac4ab0a18bca6b8958ed033434..131605548f4b1d6510792251e48676c4e5c1b3df 100644
--- a/src/VehicleSetup/FirmwareUpgrade.qml
+++ b/src/VehicleSetup/FirmwareUpgrade.qml
@@ -38,7 +38,7 @@ QGCView {
viewPanel: panel
// User visible strings
- readonly property string title: "FIRMWARE UPDATE"
+ readonly property string title: "FIRMWARE"
readonly property string highlightPrefix: ""
readonly property string highlightSuffix: ""
readonly property string welcomeText: "QGroundControl can upgrade the firmware on Pixhawk devices, 3DR Radios and PX4 Flow Smart Cameras."
@@ -392,7 +392,7 @@ QGCView {
QGCLabel {
id: titleLabel
text: title
- font.pixelSize: ScreenTools.largeFontPixelSize
+ font.pixelSize: ScreenTools.mediumFontPixelSize
}
ProgressBar {
diff --git a/src/VehicleSetup/JoystickConfig.qml b/src/VehicleSetup/JoystickConfig.qml
index 80cfd128c286ae188ba3bc9b144ebbcd50035490..fdba90d6cb5e3e59e9922b2695cdef683190e223 100644
--- a/src/VehicleSetup/JoystickConfig.qml
+++ b/src/VehicleSetup/JoystickConfig.qml
@@ -149,8 +149,8 @@ QGCView {
QGCLabel {
id: header
- font.pixelSize: ScreenTools.largeFontPixelSize
- text: "JOYSTICK CONFIG"
+ font.pixelSize: ScreenTools.mediumFontPixelSize
+ text: "JOYSTICK"
}
Item {
diff --git a/src/VehicleSetup/SetupView.qml b/src/VehicleSetup/SetupView.qml
index 09ab45f64442d2b1bee71e58782ea1bb66288ec0..cc039b6bd6544f0206a07b0a949212751b90a8ba 100644
--- a/src/VehicleSetup/SetupView.qml
+++ b/src/VehicleSetup/SetupView.qml
@@ -34,29 +34,25 @@ import QGroundControl.Controls 1.0
import QGroundControl.ScreenTools 1.0
import QGroundControl.MultiVehicleManager 1.0
-Rectangle {
- id: topLevel
- color: palette.window
- z: zOrder // zOrder comes from the Loader in MainWindow.qml
+Item {
+ z: zOrder // zOrder comes from the Loader in MainWindow.qml
- QGCPalette { id: palette; colorGroupEnabled: true }
+ QGCPalette { id: qgcPal; colorGroupEnabled: true }
ExclusiveGroup { id: setupButtonGroup }
- QGCLabel { id: _textMeasure; text: "X"; visible: false }
+ readonly property real _defaultTextHeight: ScreenTools.defaultFontPixelHeight
+ readonly property real _defaultTextWidth: ScreenTools.defaultFontPixelWidth
+ readonly property real _margin: _defaultTextHeight / 2
+ readonly property real _buttonWidth: _defaultTextWidth * 15
+ readonly property string _armedVehicleText: "This operation cannot be performed while vehicle is armed."
- readonly property real defaultTextHeight: _textMeasure.contentHeight
- readonly property real defaultTextWidth: _textMeasure.contentWidth
- readonly property real buttonWidth: defaultTextWidth * 15
-
- property string messagePanelText: "missing message panel text"
- readonly property string armedVehicleText: "This operation cannot be performed while vehicle is armed."
-
- property bool fullParameterVehicleAvailable: multiVehicleManager.parameterReadyVehicleAvailable && !multiVehicleManager.activeVehicle.missingParameters
+ property string _messagePanelText: "missing message panel text"
+ property bool _fullParameterVehicleAvailable: multiVehicleManager.parameterReadyVehicleAvailable && !multiVehicleManager.activeVehicle.missingParameters
function showSummaryPanel()
{
- if (fullParameterVehicleAvailable) {
+ if (_fullParameterVehicleAvailable) {
panelLoader.source = "VehicleSummary.qml";
} else if (multiVehicleManager.parameterReadyVehicleAvailable) {
panelLoader.sourceComponent = missingParametersVehicleSummaryComponent
@@ -69,7 +65,7 @@ Rectangle {
{
if (!ScreenTools.isMobile) {
if (multiVehicleManager.activeVehicleAvailable && multiVehicleManager.activeVehicle.armed) {
- messagePanelText = armedVehicleText
+ _messagePanelText = _armedVehicleText
panelLoader.sourceComponent = messagePanelComponent
} else {
panelLoader.source = "FirmwareUpgrade.qml";
@@ -80,7 +76,7 @@ Rectangle {
function showJoystickPanel()
{
if (multiVehicleManager.activeVehicleAvailable && multiVehicleManager.activeVehicle.armed) {
- messagePanelText = armedVehicleText
+ _messagePanelText = _armedVehicleText
panelLoader.sourceComponent = messagePanelComponent
} else {
panelLoader.source = "JoystickConfig.qml";
@@ -95,11 +91,11 @@ Rectangle {
function showVehicleComponentPanel(vehicleComponent)
{
if (multiVehicleManager.activeVehicle.armed) {
- messagePanelText = armedVehicleText
+ _messagePanelText = _armedVehicleText
panelLoader.sourceComponent = messagePanelComponent
} else {
if (vehicleComponent.prerequisiteSetup != "") {
- messagePanelText = vehicleComponent.prerequisiteSetup + " setup must be completed prior to " + vehicleComponent.name + " setup."
+ _messagePanelText = vehicleComponent.prerequisiteSetup + " setup must be completed prior to " + vehicleComponent.name + " setup."
panelLoader.sourceComponent = messagePanelComponent
} else {
panelLoader.source = vehicleComponent.setupSource
@@ -122,20 +118,20 @@ Rectangle {
id: disconnectedVehicleSummaryComponent
Rectangle {
- color: palette.windowShade
+ color: qgcPal.windowShade
QGCLabel {
- anchors.margins: defaultTextWidth * 2
+ anchors.margins: _defaultTextWidth * 2
anchors.fill: parent
verticalAlignment: Text.AlignVCenter
horizontalAlignment: Text.AlignHCenter
wrapMode: Text.WordWrap
font.pixelSize: ScreenTools.mediumFontPixelSize
text: "Welcome to QGroundControl. " +
- "QGroundControl supports any mavlink enabled vehicle. " +
- "If you are using the PX4 Flight Stack, you also get full support for setting up and calibrating your vehicle. "+
- "Otherwise you will only get support for flying a vehicle which has been setup and calibrated using other means. " +
- "Use the Connect button above to connect to your vehicle."
+ "QGroundControl supports any mavlink enabled vehicle. " +
+ "If you are using the PX4 Flight Stack, you also get full support for setting up and calibrating your vehicle. "+
+ "Otherwise you will only get support for flying a vehicle which has been setup and calibrated using other means. " +
+ "Use the Connect button above to connect to your vehicle."
onLinkActivated: Qt.openUrlExternally(link)
}
@@ -146,17 +142,17 @@ Rectangle {
id: missingParametersVehicleSummaryComponent
Rectangle {
- color: palette.windowShade
+ color: qgcPal.windowShade
QGCLabel {
- anchors.margins: defaultTextWidth * 2
+ anchors.margins: _defaultTextWidth * 2
anchors.fill: parent
verticalAlignment: Text.AlignVCenter
horizontalAlignment: Text.AlignHCenter
wrapMode: Text.WordWrap
font.pixelSize: ScreenTools.mediumFontPixelSize
text: "You are currently connected to a vehicle, but that vehicle did not return back the full parameter list. " +
- "Because of this the full set of vehicle setup options are not available."
+ "Because of this the full set of vehicle setup options are not available."
onLinkActivated: Qt.openUrlExternally(link)
}
@@ -168,98 +164,126 @@ Rectangle {
Item {
QGCLabel {
- anchors.margins: defaultTextWidth * 2
+ anchors.margins: _defaultTextWidth * 2
anchors.fill: parent
verticalAlignment: Text.AlignVCenter
horizontalAlignment: Text.AlignHCenter
wrapMode: Text.WordWrap
font.pixelSize: ScreenTools.mediumFontPixelSize
- text: messagePanelText
+ text: _messagePanelText
}
}
}
- Flickable {
- id: buttonFlickable
- width: buttonWidth
- height: parent.height
- contentWidth: buttonWidth
- contentHeight: buttonColumn.height
- flickableDirection: Flickable.VerticalFlick
-
- Column {
- id: buttonColumn
- width: buttonWidth
-
- SubMenuButton {
- id: summaryButton
- width: buttonWidth
- imageResource: "/qmlimages/VehicleSummaryIcon.png"
- setupIndicator: false
- exclusiveGroup: setupButtonGroup
- text: "SUMMARY"
-
- onClicked: showSummaryPanel()
- }
-
- SubMenuButton {
- id: firmwareButton
- width: buttonWidth
- imageResource: "/qmlimages/FirmwareUpgradeIcon.png"
- setupIndicator: false
- exclusiveGroup: setupButtonGroup
- visible: !ScreenTools.isMobile
- text: "FIRMWARE"
-
- onClicked: showFirmwarePanel()
- }
-
- SubMenuButton {
- id: joystickButton
- width: buttonWidth
- setupIndicator: true
- setupComplete: joystickManager.activeJoystick ? joystickManager.activeJoystick.calibrated : false
- exclusiveGroup: setupButtonGroup
- visible: fullParameterVehicleAvailable && joystickManager.joysticks.length != 0
- text: "JOYSTICK"
-
- onClicked: showJoystickPanel()
- }
-
- Repeater {
- model: fullParameterVehicleAvailable ? multiVehicleManager.activeVehicle.autopilot.vehicleComponents : 0
-
- SubMenuButton {
- width: buttonWidth
- imageResource: modelData.iconResource
- setupIndicator: modelData.requiresSetup
- setupComplete: modelData.setupComplete
- exclusiveGroup: setupButtonGroup
- text: modelData.name.toUpperCase()
-
- onClicked: showVehicleComponentPanel(modelData)
- }
- }
-
- SubMenuButton {
- width: buttonWidth
- setupIndicator: false
- exclusiveGroup: setupButtonGroup
- visible: multiVehicleManager.parameterReadyVehicleAvailable
- text: "PARAMETERS"
+ Rectangle {
+ //anchors.margins: _defaultTextHeight * 2
+ anchors.fill: parent
+ color: qgcPal.window
+ opacity: 0.8
+
+ QGCLabel {
+ id: title
+ anchors.topMargin: _margin
+ anchors.top: parent.top
+ anchors.left: parent.left
+ anchors.right: parent.right
+ horizontalAlignment: Text.AlignHCenter
+ font.pixelSize: ScreenTools.largeFontPixelSize
+ text: "Vehicle Setup"
+ }
- onClicked: showParametersPanel()
+ Rectangle {
+ anchors.topMargin: _margin
+ anchors.top: title.bottom
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ anchors.right: parent.right
+ color: qgcPal.windowShade
+
+ Flickable {
+ id: buttonFlickable
+ width: _buttonWidth
+ height: parent.height
+ contentWidth: _buttonWidth
+ contentHeight: buttonColumn.height
+ flickableDirection: Flickable.VerticalFlick
+
+ Column {
+ id: buttonColumn
+ width: _buttonWidth
+ spacing: _defaultTextHeight / 2
+
+ SubMenuButton {
+ id: summaryButton
+ width: _buttonWidth
+ imageResource: "/qmlimages/VehicleSummaryIcon.png"
+ setupIndicator: false
+ exclusiveGroup: setupButtonGroup
+ text: "SUMMARY"
+
+ onClicked: showSummaryPanel()
+ }
+
+ SubMenuButton {
+ id: firmwareButton
+ width: _buttonWidth
+ imageResource: "/qmlimages/FirmwareUpgradeIcon.png"
+ setupIndicator: false
+ exclusiveGroup: setupButtonGroup
+ visible: !ScreenTools.isMobile
+ text: "FIRMWARE"
+
+ onClicked: showFirmwarePanel()
+ }
+
+ SubMenuButton {
+ id: joystickButton
+ width: _buttonWidth
+ setupIndicator: true
+ setupComplete: joystickManager.activeJoystick ? joystickManager.activeJoystick.calibrated : false
+ exclusiveGroup: setupButtonGroup
+ visible: _fullParameterVehicleAvailable && joystickManager.joysticks.length != 0
+ text: "JOYSTICK"
+
+ onClicked: showJoystickPanel()
+ }
+
+ Repeater {
+ model: _fullParameterVehicleAvailable ? multiVehicleManager.activeVehicle.autopilot.vehicleComponents : 0
+
+ SubMenuButton {
+ width: _buttonWidth
+ imageResource: modelData.iconResource
+ setupIndicator: modelData.requiresSetup
+ setupComplete: modelData.setupComplete
+ exclusiveGroup: setupButtonGroup
+ text: modelData.name.toUpperCase()
+
+ onClicked: showVehicleComponentPanel(modelData)
+ }
+ }
+
+ SubMenuButton {
+ width: _buttonWidth
+ setupIndicator: false
+ exclusiveGroup: setupButtonGroup
+ visible: multiVehicleManager.parameterReadyVehicleAvailable
+ text: "PARAMETERS"
+
+ onClicked: showParametersPanel()
+ }
+ } // Column
+ } // Flickable
+
+ Loader {
+ id: panelLoader
+ anchors.leftMargin: _defaultTextWidth
+ anchors.rightMargin: _defaultTextWidth
+ anchors.left: buttonFlickable.right
+ anchors.right: parent.right
+ anchors.top: parent.top
+ anchors.bottom: parent.bottom
}
- } // Column
- } // Flickable
-
- Loader {
- id: panelLoader
- anchors.leftMargin: defaultTextWidth
- anchors.rightMargin: defaultTextWidth
- anchors.left: buttonFlickable.right
- anchors.right: parent.right
- anchors.top: parent.top
- anchors.bottom: parent.bottom
+ }
}
}
diff --git a/src/VehicleSetup/VehicleSummary.qml b/src/VehicleSetup/VehicleSummary.qml
index fb918799a03235bde65e4905735968ab33b4a930..9e37fb46175f6c2ba7fa49a6e30ca45dd63b1914 100644
--- a/src/VehicleSetup/VehicleSummary.qml
+++ b/src/VehicleSetup/VehicleSummary.qml
@@ -43,16 +43,11 @@ Rectangle {
anchors.fill: parent
spacing: ScreenTools.defaultFontPixelHeight
- QGCLabel {
- text: "VEHICLE SUMMARY"
- font.pixelSize: ScreenTools.largeFontPixelSize
- }
-
QGCLabel {
width: parent.width
wrapMode: Text.WordWrap
color: setupComplete ? qgcPal.text : qgcPal.warningText
- font.pixelSize: setupComplete ? ScreenTools.defaultFontPixelSize : ScreenTools.mediumFontPixelSize
+ font.pixelSize: ScreenTools.mediumFontPixelSize
text: setupComplete ?
"Below you will find a summary of the settings for your vehicle. To the left are the setup menus for each component." :
"WARNING: Your vehicle requires setup prior to flight. Please resolve the items marked in red using the menu on the left."
diff --git a/src/ui/toolbar/MainToolBar.qml b/src/ui/toolbar/MainToolBar.qml
index 21a95a01124880ba913edc28fcf680f2c5dd6119..83987c50f64129634857870759ba914d6789c2bf 100644
--- a/src/ui/toolbar/MainToolBar.qml
+++ b/src/ui/toolbar/MainToolBar.qml
@@ -193,6 +193,15 @@ Item {
_controller.onPlanView();
}
}
+
+ MenuSeparator { }
+
+
+ MenuItem {
+ text: "QGroundControl Settings"
+
+ onTriggered: controller.showSettings()
+ }
} // Menu
Component {
diff --git a/src/ui/toolbar/MainToolBarController.cc b/src/ui/toolbar/MainToolBarController.cc
index 3ae149475707086841c94e20203bc14d7602ed3d..dc8242f919be5e0cc7922dd02a32b680a9f07db8 100644
--- a/src/ui/toolbar/MainToolBarController.cc
+++ b/src/ui/toolbar/MainToolBarController.cc
@@ -339,3 +339,8 @@ void MainToolBarController::onToolBarMessageClosed(void)
_toolbarMessageVisible = false;
_delayedShowToolBarMessage();
}
+
+void MainToolBarController::showSettings(void)
+{
+ MainWindow::instance()->showSettings();
+}
diff --git a/src/ui/toolbar/MainToolBarController.h b/src/ui/toolbar/MainToolBarController.h
index 43d29663267c60a1b4de626d0f06ef0a8ada946b..eaf5d14a8396bc285bcf451221cc3fd98ed3401f 100644
--- a/src/ui/toolbar/MainToolBarController.h
+++ b/src/ui/toolbar/MainToolBarController.h
@@ -57,6 +57,7 @@ public:
Q_INVOKABLE void onDisconnect(QString conf);
Q_INVOKABLE void onEnterMessageArea(int x, int y);
Q_INVOKABLE void onToolBarMessageClosed(void);
+ Q_INVOKABLE void showSettings(void);
Q_PROPERTY(double height MEMBER _toolbarHeight NOTIFY heightChanged)
Q_PROPERTY(QStringList configList MEMBER _linkConfigurations NOTIFY configListChanged)