23 changed files with 325 additions and 465 deletions
@ -0,0 +1,198 @@ |
|||||||
|
/**************************************************************************** |
||||||
|
* |
||||||
|
* (c) 2009-2016 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org> |
||||||
|
* |
||||||
|
* 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 |
||||||
|
} |
||||||
|
} |
||||||
|
|
@ -1,222 +0,0 @@ |
|||||||
/**************************************************************************** |
|
||||||
* |
|
||||||
* (c) 2009-2016 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org> |
|
||||||
* |
|
||||||
* 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 |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
@ -1,57 +0,0 @@ |
|||||||
/****************************************************************************
|
|
||||||
* |
|
||||||
* (c) 2009-2016 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
|
|
||||||
* |
|
||||||
* QGroundControl is licensed according to the terms in the file |
|
||||||
* COPYING.md in the root of the source code directory. |
|
||||||
* |
|
||||||
****************************************************************************/ |
|
||||||
|
|
||||||
|
|
||||||
#include <QSettings> |
|
||||||
#include <QDesktopWidget> |
|
||||||
|
|
||||||
#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; |
|
||||||
} |
|
@ -1,37 +0,0 @@ |
|||||||
/****************************************************************************
|
|
||||||
* |
|
||||||
* (c) 2009-2016 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
|
|
||||||
* |
|
||||||
* 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 <QDialog> |
|
||||||
|
|
||||||
#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 |
|
@ -1,43 +0,0 @@ |
|||||||
<?xml version="1.0" encoding="UTF-8"?> |
|
||||||
<ui version="4.0"> |
|
||||||
<class>SettingsDialog</class> |
|
||||||
<widget class="QDialog" name="SettingsDialog"> |
|
||||||
<property name="geometry"> |
|
||||||
<rect> |
|
||||||
<x>0</x> |
|
||||||
<y>0</y> |
|
||||||
<width>500</width> |
|
||||||
<height>689</height> |
|
||||||
</rect> |
|
||||||
</property> |
|
||||||
<property name="sizePolicy"> |
|
||||||
<sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding"> |
|
||||||
<horstretch>0</horstretch> |
|
||||||
<verstretch>0</verstretch> |
|
||||||
</sizepolicy> |
|
||||||
</property> |
|
||||||
<property name="windowTitle"> |
|
||||||
<string>Dialog</string> |
|
||||||
</property> |
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_5"> |
|
||||||
<item> |
|
||||||
<widget class="QTabWidget" name="tabWidget"/> |
|
||||||
</item> |
|
||||||
<item> |
|
||||||
<widget class="QDialogButtonBox" name="buttonBox"> |
|
||||||
<property name="orientation"> |
|
||||||
<enum>Qt::Horizontal</enum> |
|
||||||
</property> |
|
||||||
<property name="standardButtons"> |
|
||||||
<set>QDialogButtonBox::Ok</set> |
|
||||||
</property> |
|
||||||
<property name="centerButtons"> |
|
||||||
<bool>false</bool> |
|
||||||
</property> |
|
||||||
</widget> |
|
||||||
</item> |
|
||||||
</layout> |
|
||||||
</widget> |
|
||||||
<resources/> |
|
||||||
<connections/> |
|
||||||
</ui> |
|
Loading…
Reference in new issue