diff --git a/qgroundcontrol.pro b/qgroundcontrol.pro
index c7329a7..d213b17 100644
--- a/qgroundcontrol.pro
+++ b/qgroundcontrol.pro
@@ -238,7 +238,6 @@ FORMS += \
src/ui/QGCTabbedInfoView.ui \
src/ui/QGCUASFileView.ui \
src/ui/QGCUASFileViewMulti.ui \
- src/ui/SettingsDialog.ui \
src/ui/uas/UASQuickView.ui \
src/ui/uas/UASQuickViewItemSelect.ui \
src/ui/UASInfo.ui \
@@ -363,7 +362,6 @@ HEADERS += \
src/ui/MultiVehicleDockWidget.h \
src/ui/QGCMAVLinkLogPlayer.h \
src/ui/QGCMapRCToParamDialog.h \
- src/ui/SettingsDialog.h \
src/ui/uas/UASMessageView.h \
src/ui/uas/QGCUnconnectedInfoWidget.h \
src/ui/QGCDataPlot2D.h \
@@ -490,7 +488,6 @@ SOURCES += \
src/ui/uas/UASMessageView.cc \
src/uas/FileManager.cc \
src/ui/uas/QGCUnconnectedInfoWidget.cc \
- src/ui/SettingsDialog.cc \
src/ui/MAVLinkDecoder.cc \
src/ui/MAVLinkSettingsWidget.cc \
src/ui/QGCMapRCToParamDialog.cpp \
diff --git a/qgroundcontrol.qrc b/qgroundcontrol.qrc
index 1c2b007..4fd2138 100644
--- a/qgroundcontrol.qrc
+++ b/qgroundcontrol.qrc
@@ -37,7 +37,7 @@
src/ui/MainWindowHybrid.qml
src/ui/MainWindowInner.qml
src/ui/MainWindowNative.qml
- src/ui/MainWindowLeftPanel.qml
+ src/ui/AppSettings.qml
src/MissionEditor/MissionEditor.qml
src/AutoPilotPlugins/Common/MotorComponent.qml
src/AutoPilotPlugins/PX4/PowerComponent.qml
diff --git a/src/FirmwarePlugin/APM/MavCmdInfoCommon.json b/src/FirmwarePlugin/APM/MavCmdInfoCommon.json
index d67684e..bcbb1bf 100644
--- a/src/FirmwarePlugin/APM/MavCmdInfoCommon.json
+++ b/src/FirmwarePlugin/APM/MavCmdInfoCommon.json
@@ -12,7 +12,7 @@
"category": "Basic",
"param1": {
"label": "Pitch:",
- "units": "degrees",
+ "units": "deg",
"default": 15,
"decimalPlaces": 2
},
diff --git a/src/FirmwarePlugin/APM/MavCmdInfoFixedWing.json b/src/FirmwarePlugin/APM/MavCmdInfoFixedWing.json
index 0494750..e6bc1ea 100644
--- a/src/FirmwarePlugin/APM/MavCmdInfoFixedWing.json
+++ b/src/FirmwarePlugin/APM/MavCmdInfoFixedWing.json
@@ -147,7 +147,7 @@
"category": "Basic",
"param1": {
"label": "Pitch:",
- "units": "degrees",
+ "units": "deg",
"default": 10,
"decimalPlaces": 0
},
diff --git a/src/FirmwarePlugin/PX4/MavCmdInfoFixedWing.json b/src/FirmwarePlugin/PX4/MavCmdInfoFixedWing.json
index acaa580..97ed87a 100644
--- a/src/FirmwarePlugin/PX4/MavCmdInfoFixedWing.json
+++ b/src/FirmwarePlugin/PX4/MavCmdInfoFixedWing.json
@@ -135,7 +135,7 @@
"category": "Basic",
"param1": {
"label": "Pitch:",
- "units": "degrees",
+ "units": "deg",
"default": 10,
"decimalPlaces": 0
},
diff --git a/src/FlightDisplay/FlightDisplayViewWidgets.qml b/src/FlightDisplay/FlightDisplayViewWidgets.qml
index cfe307c..dd054d3 100644
--- a/src/FlightDisplay/FlightDisplayViewWidgets.qml
+++ b/src/FlightDisplay/FlightDisplayViewWidgets.qml
@@ -30,13 +30,13 @@ Item {
property var _activeVehicle: QGroundControl.multiVehicleManager.activeVehicle
property bool _isSatellite: _mainIsMap ? (_flightMap ? _flightMap.isSatelliteMap : true) : true
- property bool _lightWidgetBorders: _mainIsMap ? (_flightMap ? _flightMap.isSatelliteMap : true) : true
+ property bool _lightWidgetBorders: _isSatellite
property bool _useAlternateInstruments: QGroundControl.virtualTabletJoystick || ScreenTools.isTinyScreen
+ readonly property real _margins: ScreenTools.defaultFontPixelHeight / 2
+ readonly property real _toolButtonTopMargin: parent.height - ScreenTools.availableHeight + (ScreenTools.defaultFontPixelHeight / 2)
- readonly property real _margins: ScreenTools.defaultFontPixelHeight / 2
-
- QGCMapPalette { id: mapPal; lightColors: !isBackgroundDark }
+ QGCMapPalette { id: mapPal; lightColors: isBackgroundDark }
QGCPalette { id: qgcPal }
function getGadgetWidth() {
@@ -139,14 +139,25 @@ Item {
maxHeight: virtualJoystickMultiTouch.visible ? virtualJoystickMultiTouch.y - y : parent.height - anchors.margins - y
}
+ QGCLabel {
+ id: flyLabel
+ text: qsTr("Fly")
+ color: mapPal.text
+ visible: !ScreenTools.isShortScreen
+ anchors.topMargin: _toolButtonTopMargin
+ anchors.horizontalCenter: toolColumn.horizontalCenter
+ anchors.top: parent.top
+ }
+
//-- Vertical Tool Buttons
Column {
- id: toolColumn
- visible: _mainIsMap
- anchors.margins: ScreenTools.defaultFontPixelHeight
- anchors.left: parent.left
- anchors.top: parent.top
- spacing: ScreenTools.defaultFontPixelHeight
+ id: toolColumn
+ anchors.topMargin: ScreenTools.isShortScreen ? _toolButtonTopMargin : ScreenTools.defaultFontPixelHeight / 2
+ anchors.leftMargin: ScreenTools.defaultFontPixelHeight
+ anchors.left: parent.left
+ anchors.top: ScreenTools.isShortScreen ? parent.top : flyLabel.bottom
+ spacing: ScreenTools.defaultFontPixelHeight
+ visible: _mainIsMap
//-- Map Center Control
DropButton {
diff --git a/src/MissionEditor/MissionEditor.qml b/src/MissionEditor/MissionEditor.qml
index 1ba80e1..4716a9b 100644
--- a/src/MissionEditor/MissionEditor.qml
+++ b/src/MissionEditor/MissionEditor.qml
@@ -33,17 +33,19 @@ QGCView {
// zOrder comes from the Loader in MainWindow.qml
z: QGroundControl.zOrderTopMost
- readonly property int _decimalPlaces: 8
- readonly property real _horizontalMargin: ScreenTools.defaultFontPixelWidth / 2
- readonly property real _margin: ScreenTools.defaultFontPixelHeight * 0.5
- readonly property var _activeVehicle: QGroundControl.multiVehicleManager.activeVehicle
- readonly property real _rightPanelWidth: Math.min(parent.width / 3, ScreenTools.defaultFontPixelWidth * 30)
- readonly property real _rightPanelOpacity: 0.8
- readonly property int _toolButtonCount: 6
- readonly property string _autoSyncKey: "AutoSync"
+ readonly property int _decimalPlaces: 8
+ readonly property real _horizontalMargin: ScreenTools.defaultFontPixelWidth / 2
+ readonly property real _margin: ScreenTools.defaultFontPixelHeight * 0.5
+ readonly property var _activeVehicle: QGroundControl.multiVehicleManager.activeVehicle
+ readonly property real _rightPanelWidth: Math.min(parent.width / 3, ScreenTools.defaultFontPixelWidth * 30)
+ readonly property real _rightPanelOpacity: 0.8
+ readonly property int _toolButtonCount: 6
+ readonly property string _autoSyncKey: "AutoSync"
+ readonly property real _toolButtonTopMargin: parent.height - ScreenTools.availableHeight + (ScreenTools.defaultFontPixelHeight / 2)
readonly property int _addMissionItemsButtonAutoOffTimeout: 10000
readonly property var _defaultVehicleCoordinate: QtPositioning.coordinate(37.803784, -122.462276)
+
property bool _syncNeeded: controller.visualItems.dirty // Unsaved changes, visible to parent container
property var _visualItems: controller.visualItems
property var _currentMissionItem
@@ -272,6 +274,8 @@ QGCView {
}
}
+ QGCMapPalette { id: mapPal; lightColors: editorMap.isSatelliteMap }
+
MouseArea {
//-- It's a whole lot faster to just fill parent and deal with top offset below
// than computing the coordinate offset.
@@ -524,13 +528,23 @@ QGCView {
}
}
+ QGCLabel {
+ id: planLabel
+ text: qsTr("Plan")
+ color: mapPal.text
+ visible: !ScreenTools.isShortScreen
+ anchors.topMargin: _toolButtonTopMargin
+ anchors.horizontalCenter: toolColumn.horizontalCenter
+ anchors.top: parent.top
+ }
+
//-- Vertical Tool Buttons
Column {
id: toolColumn
- anchors.topMargin: parent.height - ScreenTools.availableHeight + ScreenTools.defaultFontPixelHeight
- anchors.margins: ScreenTools.defaultFontPixelHeight
+ anchors.topMargin: ScreenTools.isShortScreen ? _toolButtonTopMargin : ScreenTools.defaultFontPixelHeight / 2
+ anchors.leftMargin: ScreenTools.defaultFontPixelHeight
anchors.left: parent.left
- anchors.top: parent.top
+ anchors.top: ScreenTools.isShortScreen ? parent.top : planLabel.bottom
spacing: ScreenTools.defaultFontPixelHeight
z: QGroundControl.zOrderWidgets
@@ -749,7 +763,7 @@ QGCView {
width: sendSaveGrid.width
wrapMode: Text.WordWrap
text: _syncNeeded && !controller.autoSync ?
- qsTr("You have unsaved changed to you mission. You should send to your vehicle, or save to a file:") :
+ qsTr("You have unsaved changes to your mission. You should send to your vehicle, or save to a file:") :
qsTr("Sync:")
}
GridLayout {
diff --git a/src/MissionManager/MavCmdInfoCommon.json b/src/MissionManager/MavCmdInfoCommon.json
index 9f26513..e4180eb 100644
--- a/src/MissionManager/MavCmdInfoCommon.json
+++ b/src/MissionManager/MavCmdInfoCommon.json
@@ -138,7 +138,7 @@
"category": "Basic",
"param1": {
"label": "Pitch:",
- "units": "degrees",
+ "units": "deg",
"default": 15,
"decimalPlaces": 2
},
@@ -250,7 +250,7 @@
"param4": {
"label": "Heading goal:",
"default": 0,
- "units": "degrees",
+ "units": "deg",
"decimalPlaces": 2
}
},
@@ -280,7 +280,7 @@
"category": "VTOL",
"param4": {
"label": "Heading:",
- "units": "degrees",
+ "units": "deg",
"default": 0.0,
"decimalPlaces": 2
}
@@ -295,7 +295,7 @@
"category": "VTOL",
"param4": {
"label": "Heading:",
- "units": "degrees",
+ "units": "deg",
"default": 0.0,
"decimalPlaces": 2
},
@@ -371,7 +371,7 @@
"category": "Conditionals",
"param1": {
"label": "Heading:",
- "units": "degrees",
+ "units": "deg",
"default": 0,
"decimalPlaces": 1
},
diff --git a/src/QGCMapPalette.h b/src/QGCMapPalette.h
index 6e0e88f..4c19361 100644
--- a/src/QGCMapPalette.h
+++ b/src/QGCMapPalette.h
@@ -28,7 +28,7 @@ class QGCMapPalette : public QObject
// text - Text color
// thumbJoystick - Thumb joystick indicator
- Q_PROPERTY(QColor text READ text NOTIFY paletteChanged)
+ Q_PROPERTY(QColor text READ text NOTIFY paletteChanged)
Q_PROPERTY(QColor thumbJoystick READ thumbJoystick NOTIFY paletteChanged)
public:
@@ -37,11 +37,12 @@ public:
bool lightColors(void) const { return _lightColors; }
void setLightColors(bool lightColors);
- QColor text(void) const { return _text[_lightColors]; }
- QColor thumbJoystick(void) const { return _thumbJoystick[_lightColors]; }
+ QColor text(void) const { return _text[_lightColors ? 0 : 1]; }
+ QColor thumbJoystick(void) const { return _thumbJoystick[_lightColors ? 0 : 1]; }
signals:
void paletteChanged(void);
+ void lightColorsChanged(bool lightColors);
private:
bool _lightColors;
diff --git a/src/Vehicle/GPSFact.json b/src/Vehicle/GPSFact.json
index 826ae1d..a8b2cb5 100644
--- a/src/Vehicle/GPSFact.json
+++ b/src/Vehicle/GPSFact.json
@@ -19,7 +19,7 @@
"shortDescription": "Course Over Ground",
"type": "double",
"decimalPlaces": 1,
- "units": "degrees"
+ "units": "deg"
},
{
"name": "lock",
diff --git a/src/Vehicle/VehicleFact.json b/src/Vehicle/VehicleFact.json
index ffa3ff1..d905366 100644
--- a/src/Vehicle/VehicleFact.json
+++ b/src/Vehicle/VehicleFact.json
@@ -7,21 +7,21 @@
"shortDescription": "Roll",
"type": "double",
"decimalPlaces": 1,
- "units": "degrees"
+ "units": "deg"
},
{
"name": "pitch",
"shortDescription": "Pitch",
"type": "double",
"decimalPlaces": 1,
- "units": "degrees"
+ "units": "deg"
},
{
"name": "heading",
"shortDescription": "Heading",
"type": "double",
"decimalPlaces": 0,
- "units": "degrees"
+ "units": "deg"
},
{
"name": "groundSpeed",
diff --git a/src/Vehicle/WindFact.json b/src/Vehicle/WindFact.json
index 881c5ee..d9cec3d 100644
--- a/src/Vehicle/WindFact.json
+++ b/src/Vehicle/WindFact.json
@@ -7,7 +7,7 @@
"shortDescription": "Wind Direction",
"type": "double",
"decimalPlaces": 1,
- "units": "degrees"
+ "units": "deg"
},
{
"name": "speed",
diff --git a/src/VehicleSetup/SetupView.qml b/src/VehicleSetup/SetupView.qml
index 4901597..b4dbce5 100644
--- a/src/VehicleSetup/SetupView.qml
+++ b/src/VehicleSetup/SetupView.qml
@@ -23,7 +23,7 @@ import QGroundControl.ScreenTools 1.0
import QGroundControl.MultiVehicleManager 1.0
Rectangle {
- id: setupView
+ id: setupView
color: qgcPal.window
z: QGroundControl.zOrderTopMost
@@ -33,8 +33,9 @@ Rectangle {
readonly property real _defaultTextHeight: ScreenTools.defaultFontPixelHeight
readonly property real _defaultTextWidth: ScreenTools.defaultFontPixelWidth
- readonly property real _margin: Math.round(_defaultTextHeight / 2)
- readonly property real _buttonWidth: Math.round(_defaultTextWidth * 18)
+ readonly property real _horizontalMargin: _defaultTextWidth / 2
+ readonly property real _verticalMargin: _defaultTextHeight / 2
+ readonly property real _buttonWidth: _defaultTextWidth * 18
readonly property string _armedVehicleText: qsTr("This operation cannot be performed while vehicle is armed.")
property string _messagePanelText: "missing message panel text"
@@ -211,6 +212,8 @@ Rectangle {
anchors.topMargin: _defaultTextHeight / 2
anchors.top: parent.top
anchors.bottom: parent.bottom
+ anchors.leftMargin: _horizontalMargin
+ anchors.left: parent.left
contentHeight: buttonColumn.height
flickableDirection: Flickable.VerticalFlick
clip: true
@@ -245,6 +248,15 @@ Rectangle {
}
}
+ QGCLabel {
+ anchors.left: parent.left
+ anchors.right: parent.right
+ text: qsTr("Vehicle Setup")
+ wrapMode: Text.WordWrap
+ horizontalAlignment: Text.AlignHCenter
+ visible: !ScreenTools.isShortScreen
+ }
+
SubMenuButton {
id: summaryButton
imageResource: "/qmlimages/VehicleSummaryIcon.png"
@@ -315,13 +327,25 @@ Rectangle {
}
}
+ Rectangle {
+ id: divider
+ anchors.topMargin: _verticalMargin
+ anchors.bottomMargin: _verticalMargin
+ anchors.leftMargin: _horizontalMargin
+ anchors.left: buttonScroll.right
+ anchors.top: parent.top
+ anchors.bottom: parent.bottom
+ width: 1
+ color: qgcPal.windowShade
+ }
+
Loader {
id: panelLoader
- anchors.topMargin: _margin
- anchors.bottomMargin: _margin
- anchors.leftMargin: _defaultTextWidth
- anchors.rightMargin: _defaultTextWidth
- anchors.left: buttonScroll.right
+ anchors.topMargin: _verticalMargin
+ anchors.bottomMargin: _verticalMargin
+ anchors.leftMargin: _horizontalMargin
+ anchors.rightMargin: _horizontalMargin
+ anchors.left: divider.right
anchors.right: parent.right
anchors.top: parent.top
anchors.bottom: parent.bottom
diff --git a/src/ui/AppSettings.qml b/src/ui/AppSettings.qml
new file mode 100644
index 0000000..f6ce5a4
--- /dev/null
+++ b/src/ui/AppSettings.qml
@@ -0,0 +1,198 @@
+/****************************************************************************
+ *
+ * (c) 2009-2016 QGROUNDCONTROL PROJECT
+ *
+ * QGroundControl is licensed according to the terms in the file
+ * COPYING.md in the root of the source code directory.
+ *
+ ****************************************************************************/
+
+
+import QtQuick 2.5
+import QtQuick.Controls 1.2
+import QtPositioning 5.2
+
+import QGroundControl 1.0
+import QGroundControl.Palette 1.0
+import QGroundControl.Controls 1.0
+import QGroundControl.FlightDisplay 1.0
+import QGroundControl.ScreenTools 1.0
+
+Rectangle {
+ id: settingsView
+ color: qgcPal.window
+ z: QGroundControl.zOrderTopMost
+
+ readonly property real _defaultTextHeight: ScreenTools.defaultFontPixelHeight
+ readonly property real _defaultTextWidth: ScreenTools.defaultFontPixelWidth
+ readonly property real _horizontalMargin: _defaultTextWidth / 2
+ readonly property real _verticalMargin: _defaultTextHeight / 2
+ readonly property real _buttonHeight: ScreenTools.isTinyScreen ? ScreenTools.defaultFontPixelHeight * 3 : ScreenTools.defaultFontPixelHeight * 2
+ readonly property real _buttonWidth: ScreenTools.defaultFontPixelWidth * 10
+
+ QGCPalette { id: qgcPal }
+
+ Component.onCompleted: {
+ //-- Default to General Settings
+ __rightPanel.source = "GeneralSettings.qml"
+ _generalButton.checked = true
+ panelActionGroup.current = _generalButton
+ }
+
+ QGCFlickable {
+ id: buttonList
+ width: buttonColumn.width
+ anchors.topMargin: _verticalMargin
+ anchors.top: parent.top
+ anchors.bottom: parent.bottom
+ anchors.leftMargin: _horizontalMargin
+ anchors.left: parent.left
+ contentHeight: buttonColumn.height + _verticalMargin
+ flickableDirection: Flickable.VerticalFlick
+ clip: true
+
+ ExclusiveGroup { id: panelActionGroup }
+
+ Column {
+ id: buttonColumn
+ width: _maxButtonWidth
+ spacing: _verticalMargin
+
+ property real _maxButtonWidth: 0
+
+ Component.onCompleted: reflowWidths()
+
+ function reflowWidths() {
+ buttonColumn._maxButtonWidth = 0
+ for (var i = 0; i < children.length; i++) {
+ buttonColumn._maxButtonWidth = Math.max(buttonColumn._maxButtonWidth, children[i].width)
+ }
+ for (var j = 0; j < children.length; j++) {
+ children[j].width = buttonColumn._maxButtonWidth
+ }
+ }
+
+ QGCLabel {
+ anchors.left: parent.left
+ anchors.right: parent.right
+ text: qsTr("Application Settings")
+ wrapMode: Text.WordWrap
+ horizontalAlignment: Text.AlignHCenter
+ visible: !ScreenTools.isShortScreen
+ }
+
+ QGCButton {
+ id: _generalButton
+ height: _buttonHeight
+ text: qsTr("General")
+ exclusiveGroup: panelActionGroup
+ onClicked: {
+ if(__rightPanel.source != "GeneralSettings.qml") {
+ __rightPanel.source = "GeneralSettings.qml"
+ }
+ checked = true
+ }
+ }
+
+ QGCButton {
+ height: _buttonHeight
+ text: qsTr("Comm Links")
+ exclusiveGroup: panelActionGroup
+ onClicked: {
+ if(__rightPanel.source != "LinkSettings.qml") {
+ __rightPanel.source = "LinkSettings.qml"
+ }
+ checked = true
+ }
+ }
+
+ QGCButton {
+ height: _buttonHeight
+ text: qsTr("Offline Maps")
+ exclusiveGroup: panelActionGroup
+ onClicked: {
+ if(__rightPanel.source != "OfflineMap.qml") {
+ __rightPanel.source = "OfflineMap.qml"
+ }
+ checked = true
+ }
+ }
+
+ QGCButton {
+ height: _buttonHeight
+ text: qsTr("MavLink")
+ exclusiveGroup: panelActionGroup
+ onClicked: {
+ if(__rightPanel.source != "MavlinkSettings.qml") {
+ __rightPanel.source = "MavlinkSettings.qml"
+ }
+ checked = true
+ }
+ }
+
+ QGCButton {
+ height: _buttonHeight
+ text: qsTr("Console")
+ exclusiveGroup: panelActionGroup
+ onClicked: {
+ if(__rightPanel.source != "QGroundControl/Controls/AppMessages.qml") {
+ __rightPanel.source = "QGroundControl/Controls/AppMessages.qml"
+ }
+ checked = true
+ }
+ }
+
+ QGCButton {
+ height: _buttonHeight
+ text: qsTr("Mock Link")
+ visible: ScreenTools.isDebug
+ exclusiveGroup: panelActionGroup
+ onClicked: {
+ if(__rightPanel.source != "MockLink.qml") {
+ __rightPanel.source = "MockLink.qml"
+ }
+ checked = true
+ }
+ }
+
+ QGCButton {
+ height: _buttonHeight
+ text: qsTr("Debug")
+ visible: ScreenTools.isDebug
+ exclusiveGroup: panelActionGroup
+ onClicked: {
+ if(__rightPanel.source != "DebugWindow.qml") {
+ __rightPanel.source = "DebugWindow.qml"
+ }
+ checked = true
+ }
+ }
+ }
+ }
+
+ Rectangle {
+ id: divider
+ anchors.topMargin: _verticalMargin
+ anchors.bottomMargin: _verticalMargin
+ anchors.leftMargin: _horizontalMargin
+ anchors.left: buttonList.right
+ anchors.top: parent.top
+ anchors.bottom: parent.bottom
+ width: 1
+ color: qgcPal.windowShade
+ }
+
+ //-- Panel Contents
+ Loader {
+ id: __rightPanel
+ anchors.leftMargin: _horizontalMargin
+ anchors.rightMargin: _horizontalMargin
+ anchors.topMargin: _verticalMargin
+ anchors.bottomMargin: _verticalMargin
+ anchors.left: divider.right
+ anchors.right: parent.right
+ anchors.top: parent.top
+ anchors.bottom: parent.bottom
+ }
+}
+
diff --git a/src/ui/MainWindow.cc b/src/ui/MainWindow.cc
index 596142a..c2c9f01 100644
--- a/src/ui/MainWindow.cc
+++ b/src/ui/MainWindow.cc
@@ -25,6 +25,7 @@
#include
#include
#include
+#include
#include "QGC.h"
#include "MAVLinkProtocol.h"
@@ -42,7 +43,6 @@
#include "QGCImageProvider.h"
#ifndef __mobile__
-#include "SettingsDialog.h"
#include "QGCDataPlot2D.h"
#include "Linecharts.h"
#include "QGCUASFileViewMulti.h"
@@ -489,9 +489,6 @@ void MainWindow::connectCommonActions()
connect(qgcApp()->toolbox()->audioOutput(), &GAudioOutput::mutedChanged, _ui.actionMuteAudioOutput, &QAction::setChecked);
connect(_ui.actionMuteAudioOutput, &QAction::triggered, qgcApp()->toolbox()->audioOutput(), &GAudioOutput::mute);
- // Application Settings
- connect(_ui.actionSettings, &QAction::triggered, this, &MainWindow::showSettings);
-
// Connect internal actions
connect(qgcApp()->toolbox()->multiVehicleManager(), &MultiVehicleManager::vehicleAdded, this, &MainWindow::_vehicleAdded);
}
@@ -503,14 +500,6 @@ void MainWindow::_openUrl(const QString& url, const QString& errorMessage)
}
}
-#ifndef __mobile__
-void MainWindow::showSettings()
-{
- SettingsDialog settings(this);
- settings.exec();
-}
-#endif
-
void MainWindow::_vehicleAdded(Vehicle* vehicle)
{
connect(vehicle->uas(), &UAS::valueChanged, this, &MainWindow::valueChanged);
diff --git a/src/ui/MainWindow.h b/src/ui/MainWindow.h
index 9d2dd07..3f7c31d 100644
--- a/src/ui/MainWindow.h
+++ b/src/ui/MainWindow.h
@@ -89,10 +89,6 @@ public:
QObject* rootQmlObject(void);
public slots:
-#ifndef __mobile__
- void showSettings();
-#endif
-
/** @brief Save power by reducing update rates */
void enableLowPowerMode(bool enabled) { _lowPowerMode = enabled; }
diff --git a/src/ui/MainWindow.ui b/src/ui/MainWindow.ui
index 4f1730f..4d6bb7f 100644
--- a/src/ui/MainWindow.ui
+++ b/src/ui/MainWindow.ui
@@ -61,7 +61,6 @@
-
@@ -95,17 +94,6 @@
Mute Audio Output
-
-
- Settings
-
-
- Application settings
-
-
- QAction::PreferencesRole
-
-
true
diff --git a/src/ui/MainWindowInner.qml b/src/ui/MainWindowInner.qml
index 5d3a8f9..cfedeaa 100644
--- a/src/ui/MainWindowInner.qml
+++ b/src/ui/MainWindowInner.qml
@@ -29,7 +29,7 @@ Item {
readonly property string _planViewSource: "MissionEditor.qml"
readonly property string _setupViewSource: "SetupView.qml"
- readonly property string _preferencesSource: "MainWindowLeftPanel.qml"
+ readonly property string _settingsViewSource: "AppSettings.qml"
QGCPalette { id: qgcPal; colorGroupEnabled: true }
@@ -56,7 +56,7 @@ Item {
currentPopUp.close()
}
ScreenTools.availableHeight = parent.height - toolBar.height
- preferencesPanel.visible = false
+ settingsViewLoader.visible = false
flightView.visible = true
setupViewLoader.visible = false
planViewLoader.visible = false
@@ -71,7 +71,7 @@ Item {
planViewLoader.source = _planViewSource
}
ScreenTools.availableHeight = parent.height - toolBar.height
- preferencesPanel.visible = false
+ settingsViewLoader.visible = false
flightView.visible = false
setupViewLoader.visible = false
planViewLoader.visible = true
@@ -87,27 +87,27 @@ Item {
if (setupViewLoader.source != _setupViewSource) {
setupViewLoader.source = _setupViewSource
}
- preferencesPanel.visible = false
+ settingsViewLoader.visible = false
flightView.visible = false
setupViewLoader.visible = true
planViewLoader.visible = false
toolBar.checkSetupButton()
}
- function showPreferences() {
+ function showSettingsView() {
if(currentPopUp) {
currentPopUp.close()
}
//-- In preferences view, the full height is available. Set to 0 so it is ignored.
ScreenTools.availableHeight = 0
- if (preferencesPanel.source != _preferencesSource) {
- preferencesPanel.source = _preferencesSource
+ if (settingsViewLoader.source != _settingsViewSource) {
+ settingsViewLoader.source = _settingsViewSource
}
flightView.visible = false
setupViewLoader.visible = false
planViewLoader.visible = false
- preferencesPanel.visible = true
- toolBar.checkPreferencesButton()
+ settingsViewLoader.visible = true
+ toolBar.checkSettingsButton()
}
// The following are use for unit testing only
@@ -260,20 +260,6 @@ Item {
currentPopUp = indicatorDropdown
}
- //-- Left Settings Menu
- Loader {
- id: preferencesPanel
- anchors.fill: parent
- visible: false
- z: QGroundControl.zOrderTopMost + 100
- active: visible
- onVisibleChanged: {
- if(!visible) {
- source = ""
- }
- }
- }
-
//-- Main UI
MainToolBar {
@@ -283,13 +269,12 @@ Item {
anchors.right: parent.right
anchors.top: parent.top
mainWindow: mainWindow
- opaqueBackground: preferencesPanel.visible
isBackgroundDark: flightView.isBackgroundDark
z: QGroundControl.zOrderTopMost
onShowSetupView: mainWindow.showSetupView()
onShowPlanView: mainWindow.showPlanView()
onShowFlyView: mainWindow.showFlyView()
- onShowPreferences: mainWindow.showPreferences()
+ onShowSettingsView: mainWindow.showSettingsView()
Component.onCompleted: {
ScreenTools.availableHeight = parent.height - toolBar.height
}
@@ -316,6 +301,22 @@ Item {
visible: false
}
+ Loader {
+ id: settingsViewLoader
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.top: toolBar.bottom
+ anchors.bottom: parent.bottom
+ visible: false
+
+ onVisibleChanged: {
+ if (!visible) {
+ // Free up the memory for this when not shown. No need to persist.
+ source = ""
+ }
+ }
+ }
+
//-------------------------------------------------------------------------
//-- Dismiss Pop Up Messages
MouseArea {
diff --git a/src/ui/MainWindowLeftPanel.qml b/src/ui/MainWindowLeftPanel.qml
deleted file mode 100644
index 71f330a..0000000
--- a/src/ui/MainWindowLeftPanel.qml
+++ /dev/null
@@ -1,222 +0,0 @@
-/****************************************************************************
- *
- * (c) 2009-2016 QGROUNDCONTROL PROJECT
- *
- * QGroundControl is licensed according to the terms in the file
- * COPYING.md in the root of the source code directory.
- *
- ****************************************************************************/
-
-
-import QtQuick 2.5
-import QtQuick.Controls 1.2
-import QtPositioning 5.2
-
-import QGroundControl 1.0
-import QGroundControl.Palette 1.0
-import QGroundControl.Controls 1.0
-import QGroundControl.FlightDisplay 1.0
-import QGroundControl.ScreenTools 1.0
-
-
-//-- Left Menu
-Item {
- id: settingsMenu
- anchors.fill: parent
-
- readonly property real __closeButtonSize: ScreenTools.defaultFontPixelHeight * 1.5
- readonly property real _margins: ScreenTools.defaultFontPixelHeight * 0.5
- readonly property real _buttonHeight: ScreenTools.isTinyScreen ? ScreenTools.defaultFontPixelHeight * 3 : ScreenTools.defaultFontPixelHeight * 2
-
- QGCPalette { id: qgcPal }
-
- Component.onCompleted: {
- //-- Default to General Settings
- __rightPanel.source = "GeneralSettings.qml"
- _generalButton.checked = true
- panelActionGroup.current = _generalButton
- }
-
- // This covers the screen with a transparent section
- Rectangle {
- id: __transparentSection
- height: parent.height - toolBar.height
- anchors.bottom: parent.bottom
- anchors.left: parent.left
- opacity: 0.0
- color: qgcPal.window
- visible: __rightPanel.source == ""
- }
-
- //-- Top Separator
- Rectangle {
- id: __topSeparator
- width: parent.width
- height: 1
- y: toolBar.height
- anchors.left: parent.left
- color: QGroundControl.isDarkStyle ? "#909090" : "#7f7f7f"
- }
-
- // This is the menu dialog panel which is anchored to the left edge
- Rectangle {
- id: __leftMenu
- width: ScreenTools.defaultFontPixelWidth * 16
- anchors.left: parent.left
- anchors.top: __topSeparator.bottom
- anchors.bottom: parent.bottom
- color: qgcPal.windowShadeDark
-
- QGCFlickable {
- anchors.fill: parent
- contentHeight: buttonColumn.height + _margins
- flickableDirection: Flickable.VerticalFlick
- clip: true
-
- ExclusiveGroup { id: panelActionGroup }
-
- Column {
- id: buttonColumn
- anchors.leftMargin: _margins
- anchors.rightMargin: _margins
- anchors.left: parent.left
- anchors.right: parent.right
- anchors.topMargin: _margins
- anchors.top: parent.top
- spacing: ScreenTools.defaultFontPixelHeight * 0.5
-
- QGCLabel {
- text: qsTr("Preferences")
- anchors.horizontalCenter: parent.horizontalCenter
- }
-
- QGCButton {
- id: _generalButton
- height: _buttonHeight
- anchors.left: parent.left
- anchors.right: parent.right
- text: qsTr("General")
- exclusiveGroup: panelActionGroup
- onClicked: {
- if(__rightPanel.source != "GeneralSettings.qml") {
- __rightPanel.source = "GeneralSettings.qml"
- }
- checked = true
- }
- }
-
- QGCButton {
- height: _buttonHeight
- anchors.left: parent.left
- anchors.right: parent.right
- text: qsTr("Comm Links")
- exclusiveGroup: panelActionGroup
- onClicked: {
- if(__rightPanel.source != "LinkSettings.qml") {
- __rightPanel.source = "LinkSettings.qml"
- }
- checked = true
- }
- }
-
- QGCButton {
- height: _buttonHeight
- anchors.left: parent.left
- anchors.right: parent.right
- text: qsTr("Offline Maps")
- exclusiveGroup: panelActionGroup
- onClicked: {
- if(__rightPanel.source != "OfflineMap.qml") {
- __rightPanel.source = "OfflineMap.qml"
- }
- checked = true
- }
- }
-
- QGCButton {
- height: _buttonHeight
- anchors.left: parent.left
- anchors.right: parent.right
- text: qsTr("MavLink")
- exclusiveGroup: panelActionGroup
- onClicked: {
- if(__rightPanel.source != "MavlinkSettings.qml") {
- __rightPanel.source = "MavlinkSettings.qml"
- }
- checked = true
- }
- }
-
- QGCButton {
- height: _buttonHeight
- anchors.left: parent.left
- anchors.right: parent.right
- text: qsTr("Console")
- exclusiveGroup: panelActionGroup
- onClicked: {
- if(__rightPanel.source != "QGroundControl/Controls/AppMessages.qml") {
- __rightPanel.source = "QGroundControl/Controls/AppMessages.qml"
- }
- checked = true
- }
- }
-
- QGCButton {
- height: _buttonHeight
- anchors.left: parent.left
- anchors.right: parent.right
- text: qsTr("Mock Link")
- visible: ScreenTools.isDebug
- exclusiveGroup: panelActionGroup
- onClicked: {
- if(__rightPanel.source != "MockLink.qml") {
- __rightPanel.source = "MockLink.qml"
- }
- checked = true
- }
- }
-
- QGCButton {
- height: _buttonHeight
- anchors.left: parent.left
- anchors.right: parent.right
- text: qsTr("Debug")
- visible: ScreenTools.isDebug
- exclusiveGroup: panelActionGroup
- onClicked: {
- if(__rightPanel.source != "DebugWindow.qml") {
- __rightPanel.source = "DebugWindow.qml"
- }
- checked = true
- }
- }
- }
- }
- }
-
- //-- Vertical Separator
- Rectangle {
- id: __verticalSeparator
- width: 1
- height: parent.height - toolBar.height
- anchors.left: __leftMenu.right
- anchors.bottom: parent.bottom
- color: QGroundControl.isDarkStyle ? "#909090" : "#7f7f7f"
- }
-
- //-- Main Setting Display Area
- Rectangle {
- id: settingDisplayArea
- anchors.left: __verticalSeparator.right
- width: mainWindow.width - __leftMenu.width - __verticalSeparator.width
- height: parent.height - toolBar.height - __topSeparator.height
- anchors.bottom: parent.bottom
- visible: __rightPanel.source != ""
- color: qgcPal.window
- //-- Panel Contents
- Loader {
- id: __rightPanel
- anchors.fill: parent
- }
- }
-}
diff --git a/src/ui/SettingsDialog.cc b/src/ui/SettingsDialog.cc
deleted file mode 100644
index 4ce0df1..0000000
--- a/src/ui/SettingsDialog.cc
+++ /dev/null
@@ -1,57 +0,0 @@
-/****************************************************************************
- *
- * (c) 2009-2016 QGROUNDCONTROL PROJECT
- *
- * QGroundControl is licensed according to the terms in the file
- * COPYING.md in the root of the source code directory.
- *
- ****************************************************************************/
-
-
-#include
-#include
-
-#include "SettingsDialog.h"
-#include "MainWindow.h"
-#include "ui_SettingsDialog.h"
-
-#include "LinkManager.h"
-#include "MAVLinkProtocol.h"
-#include "MAVLinkSettingsWidget.h"
-#include "GAudioOutput.h"
-#include "QGCApplication.h"
-#include "QGCFileDialog.h"
-#include "QGCMessageBox.h"
-#include "MainToolBarController.h"
-#include "FlightMapSettings.h"
-
-SettingsDialog::SettingsDialog(QWidget *parent, Qt::WindowFlags flags)
- : QDialog(parent, flags)
- , _ui(new Ui::SettingsDialog)
-{
- _ui->setupUi(this);
-
- // Center the window on the screen.
- QDesktopWidget *desktop = QApplication::desktop();
- int screen = desktop->screenNumber(parent);
-
- QRect position = frameGeometry();
- position.moveCenter(QApplication::desktop()->availableGeometry(screen).center());
- move(position.topLeft());
-
- MAVLinkSettingsWidget* pMavsettings = new MAVLinkSettingsWidget(qgcApp()->toolbox()->mavlinkProtocol(), this);
-
- // Add the MAVLink settings pane
- _ui->tabWidget->addTab(pMavsettings, "MAVLink");
-
- this->window()->setWindowTitle(tr("QGroundControl Settings"));
-
- _ui->tabWidget->setCurrentWidget(pMavsettings);
-
- connect(_ui->buttonBox, &QDialogButtonBox::accepted, this, &SettingsDialog::accept);
-}
-
-SettingsDialog::~SettingsDialog()
-{
- delete _ui;
-}
diff --git a/src/ui/SettingsDialog.h b/src/ui/SettingsDialog.h
deleted file mode 100644
index 3c12cc1..0000000
--- a/src/ui/SettingsDialog.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/****************************************************************************
- *
- * (c) 2009-2016 QGROUNDCONTROL PROJECT
- *
- * QGroundControl is licensed according to the terms in the file
- * COPYING.md in the root of the source code directory.
- *
- ****************************************************************************/
-
-
-#ifndef SETTINGSDIALOG_H
-#define SETTINGSDIALOG_H
-
-#include
-
-#include "MainWindow.h"
-#include "GAudioOutput.h"
-#include "FlightMapSettings.h"
-
-namespace Ui
-{
- class SettingsDialog;
-}
-
-class SettingsDialog : public QDialog
-{
- Q_OBJECT
-
-public:
- SettingsDialog(QWidget *parent = 0, Qt::WindowFlags flags = Qt::Sheet);
- ~SettingsDialog();
-
-private:
- Ui::SettingsDialog* _ui;
-};
-
-#endif
diff --git a/src/ui/SettingsDialog.ui b/src/ui/SettingsDialog.ui
deleted file mode 100644
index a216922..0000000
--- a/src/ui/SettingsDialog.ui
+++ /dev/null
@@ -1,43 +0,0 @@
-
-
- SettingsDialog
-
-
-
- 0
- 0
- 500
- 689
-
-
-
-
- 0
- 0
-
-
-
- Dialog
-
-
- -
-
-
- -
-
-
- Qt::Horizontal
-
-
- QDialogButtonBox::Ok
-
-
- false
-
-
-
-
-
-
-
-
diff --git a/src/ui/toolbar/MainToolBar.qml b/src/ui/toolbar/MainToolBar.qml
index af7e642..1b38d73 100644
--- a/src/ui/toolbar/MainToolBar.qml
+++ b/src/ui/toolbar/MainToolBar.qml
@@ -45,14 +45,14 @@ Rectangle {
readonly property var colorBlue: "#636efe"
readonly property var colorWhite: "#ffffff"
- signal showPreferences()
+ signal showSettingsView()
signal showSetupView()
signal showPlanView()
signal showFlyView()
MainToolBarController { id: _controller }
- function checkPreferencesButton() {
+ function checkSettingsButton() {
preferencesButton.checked = true
}
@@ -332,7 +332,7 @@ Rectangle {
exclusiveGroup: mainActionGroup
source: "/res/QGCLogoWhite"
logo: true
- onClicked: toolBar.showPreferences()
+ onClicked: toolBar.showSettingsView()
}
QGCToolBarButton {