23 changed files with 325 additions and 465 deletions
@ -0,0 +1,198 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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