Commit c4c02219 authored by Gus Grubba's avatar Gus Grubba

Merge pull request #2305 from dogmaphobic/qmlLinkConfig

First pass at Comm Link settings (in QML)
parents 59df13a2 7c7606ef
......@@ -17,6 +17,7 @@
<file alias="FlightModesComponent.qml">src/AutoPilotPlugins/PX4/FlightModesComponent.qml</file>
<file alias="FlightModesComponentSummary.qml">src/AutoPilotPlugins/PX4/FlightModesComponentSummary.qml</file>
<file alias="GeneralSettings.qml">src/ui/preferences/GeneralSettings.qml</file>
<file alias="LinkSettings.qml">src/ui/preferences/LinkSettings.qml</file>
<file alias="JoystickConfig.qml">src/VehicleSetup/JoystickConfig.qml</file>
<file alias="MainToolBar.qml">src/ui/toolbar/MainToolBar.qml</file>
<file alias="MainWindow.qml">src/ui/MainWindow.qml</file>
......
......@@ -80,7 +80,9 @@ public:
Q_PROPERTY(bool autoconnectPixhawk READ autoconnectPixhawk WRITE setAutoconnectPixhawk NOTIFY autoconnectPixhawkChanged)
Q_PROPERTY(bool autoconnect3DRRadio READ autoconnect3DRRadio WRITE setAutoconnect3DRRadio NOTIFY autoconnect3DRRadioChanged)
Q_PROPERTY(bool autoconnectPX4Flow READ autoconnectPX4Flow WRITE setAutoconnectPX4Flow NOTIFY autoconnectPX4FlowChanged)
//-- LinkInterface
Q_PROPERTY(QmlObjectListModel* links READ links CONSTANT)
//-- LinkConfiguration
Q_PROPERTY(QmlObjectListModel* linkConfigurations READ linkConfigurations CONSTANT)
// Property accessors
......
......@@ -34,7 +34,7 @@ import QGroundControl.ScreenTools 1.0
//-- Left Menu
Item {
id: __leftPanel
id: settingsMenu
anchors.fill: parent
property alias animateShowDialog: __animateShowDialog
......@@ -52,6 +52,11 @@ Item {
}
}
function closeSettings() {
__rightPanel.source = ""
mainWindow.hideLeftMenu()
}
ParallelAnimation {
id: __animateShowDialog
NumberAnimation {
......@@ -59,14 +64,14 @@ Item {
properties: "opacity"
from: 0.0
to: 0.8
duration: __leftPanel.__animationDuration
duration: settingsMenu.__animationDuration
}
NumberAnimation {
target: __transparentSection
properties: "width"
from: 1
to: mainWindow.width
duration: __leftPanel.__animationDuration
duration: settingsMenu.__animationDuration
}
}
......@@ -77,14 +82,14 @@ Item {
properties: "opacity"
from: 0.8
to: 0.0
duration: __leftPanel.__animationDuration
duration: settingsMenu.__animationDuration
}
NumberAnimation {
target: __transparentSection
properties: "width"
from: mainWindow.width
to: 1
duration: __leftPanel.__animationDuration
duration: settingsMenu.__animationDuration
}
onRunningChanged: {
if (!running) {
......@@ -156,6 +161,19 @@ Item {
checked = true
}
}
QGCButton {
width: parent.width * 0.8
height: ScreenTools.defaultFontPixelHeight * 2.5
text: "Comm Links"
exclusiveGroup: panelActionGroup
anchors.horizontalCenter: parent.horizontalCenter
onClicked: {
if(__rightPanel.source != "LinkSettings.qml") {
__rightPanel.source = "LinkSettings.qml"
}
checked = true
}
}
QGCButton {
width: parent.width * 0.8
height: ScreenTools.defaultFontPixelHeight * 2.5
......
/*=====================================================================
QGroundControl Open Source Ground Control Station
(c) 2009 - 2015 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
This file is part of the QGROUNDCONTROL project
QGROUNDCONTROL is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
QGROUNDCONTROL is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with QGROUNDCONTROL. If not, see <http://www.gnu.org/licenses/>.
======================================================================*/
import QtQuick 2.5
import QtQuick.Controls 1.2
import QtQuick.Controls.Styles 1.2
import QtQuick.Dialogs 1.1
import QGroundControl 1.0
import QGroundControl.Controls 1.0
import QGroundControl.ScreenTools 1.0
import QGroundControl.Palette 1.0
Rectangle {
id: _linkRoot
color: __qgcPal.window
property var _currentSelection: null
ExclusiveGroup { id: linkGroup }
QGCPalette {
id: qgcPal
colorGroupEnabled: enabled
}
Flickable {
clip: true
anchors.top: parent.top
width: parent.width
height: parent.height - buttonRow.height
anchors.margins: ScreenTools.defaultFontPixelWidth
contentHeight: settingsColumn.height
contentWidth: _linkRoot.width
flickableDirection: Flickable.VerticalFlick
boundsBehavior: Flickable.StopAtBounds
Column {
id: settingsColumn
width: _linkRoot.width
anchors.margins: ScreenTools.defaultFontPixelWidth
spacing: ScreenTools.defaultFontPixelHeight / 2
Item {
height: ScreenTools.defaultFontPixelHeight / 2
width: parent.width
}
QGCLabel {
text: "WIP: Not fully functional"
color: __qgcPal.warningText
anchors.horizontalCenter: parent.horizontalCenter
}
Item {
height: ScreenTools.defaultFontPixelHeight / 2
width: parent.width
}
Repeater {
model: QGroundControl.linkManager.linkConfigurations
delegate:
QGCButton {
text: object.name
width: _linkRoot.width * 0.5
exclusiveGroup: linkGroup
anchors.horizontalCenter: parent.horizontalCenter
onClicked: {
checked = true
_currentSelection = object
}
}
}
}
}
Row {
id: buttonRow
spacing: ScreenTools.defaultFontPixelWidth
anchors.bottom: parent.bottom
anchors.margins: ScreenTools.defaultFontPixelWidth
anchors.horizontalCenter: parent.horizontalCenter
QGCButton {
width: ScreenTools.defaultFontPixelWidth * 10
text: "Delete"
enabled: false
onClicked: {
}
}
QGCButton {
width: ScreenTools.defaultFontPixelWidth * 10
text: "Edit"
enabled: false
onClicked: {
}
}
QGCButton {
width: ScreenTools.defaultFontPixelWidth * 10
text: "Add"
enabled: false
onClicked: {
}
}
QGCButton {
width: ScreenTools.defaultFontPixelWidth * 10
text: "Connect"
enabled: _currentSelection && !_currentSelection.link
onClicked: {
QGroundControl.linkManager.createConnectedLink(_currentSelection)
settingsMenu.closeSettings()
}
}
QGCButton {
width: ScreenTools.defaultFontPixelWidth * 10
text: "Disconnect"
enabled: _currentSelection && _currentSelection.link
onClicked: {
QGroundControl.linkManager.disconnectLink(_currentSelection.link, false)
}
}
}
}
......@@ -306,8 +306,7 @@ Row {
//-- Vehicle Selector
QGCButton {
id: vehicleSelectorButton
width: ScreenTools.defaultFontPixelSize * 12
height: mainWindow.tbButtonWidth
width: ScreenTools.defaultFontPixelSize * 8
text: "Vehicle " + (activeVehicle ? activeVehicle.id : "None")
visible: QGroundControl.multiVehicleManager.vehicles.count > 1
anchors.verticalCenter: parent.verticalCenter
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment