diff --git a/qgroundcontrol.qrc b/qgroundcontrol.qrc index 1264e3e68149ce6b15eaf82e5f25c4b2aa027c60..595fe8ada565e7bdc764f76012b7fa8ae39087ea 100644 --- a/qgroundcontrol.qrc +++ b/qgroundcontrol.qrc @@ -103,6 +103,7 @@ src/FlightMap/Widgets/QGCAttitudeWidget.qml src/FlightMap/Widgets/QGCCompassWidget.qml src/FlightMap/Widgets/QGCInstrumentWidget.qml + src/FlightMap/Widgets/QGCInstrumentWidgetAlternate.qml src/FlightMap/Widgets/QGCPitchIndicator.qml src/FlightMap/Widgets/QGCSlider.qml src/FlightMap/QGCVideoBackground.qml diff --git a/src/FlightDisplay/FlightDisplayViewWidgets.qml b/src/FlightDisplay/FlightDisplayViewWidgets.qml index 3c63b84b86b053e67209f0eef664ffa797ace02a..b348dc3973eeff2e4404dd92fc1b5448e1ef9424 100644 --- a/src/FlightDisplay/FlightDisplayViewWidgets.qml +++ b/src/FlightDisplay/FlightDisplayViewWidgets.qml @@ -38,7 +38,8 @@ import QGroundControl.FlightMap 1.0 Item { id: _root - property var _activeVehicle: multiVehicleManager.activeVehicle + property var _activeVehicle: multiVehicleManager.activeVehicle + property bool _isSatellite: _mainIsMap ? _flightMap ? _flightMap.isSatelliteMap : true : true QGCMapPalette { id: mapPal; lightColors: !isBackgroundDark } @@ -103,59 +104,42 @@ Item { altitudeFact: _altitudeAMSLFact groundSpeedFact: _groundSpeedFact airSpeedFact: _airSpeedFact - isSatellite: _mainIsMap ? _flightMap ? _flightMap.isSatelliteMap : true : true + isSatellite: _isSatellite z: QGroundControl.zOrderWidgets qgcView: parent.parent.qgcView maxHeight: parent.height - (ScreenTools.defaultFontPixelHeight * 2) } - //-- Alternate Instrument Panel - Rectangle { + QGCInstrumentWidgetAlternate { + id: instrumentGadgetAlternate + anchors.margins: ScreenTools.defaultFontPixelHeight + anchors.top: parent.top + anchors.right: parent.right + visible: QGroundControl.virtualTabletJoystick + width: getGadgetWidth() + active: _activeVehicle != null + heading: _heading + rollAngle: _roll + pitchAngle: _pitch + altitudeFact: _altitudeAMSLFact + groundSpeedFact: _groundSpeedFact + airSpeedFact: _airSpeedFact + isSatellite: _isSatellite + z: QGroundControl.zOrderWidgets + } + + ValuesWidget { + anchors.topMargin: ScreenTools.defaultFontPixelHeight + anchors.top: instrumentGadgetAlternate.bottom + anchors.left: instrumentGadgetAlternate.left + width: getGadgetWidth() + qgcView: parent.parent.qgcView + textColor: _isSatellite ? "white" : "black" visible: QGroundControl.virtualTabletJoystick - anchors.margins: ScreenTools.defaultFontPixelHeight - anchors.right: parent.right - anchors.bottom: parent.bottom - width: pipSize - height: pipSize * (9/16) - color: Qt.rgba(0,0,0,0.75) - Column { - id: instruments - width: parent.width - spacing: ScreenTools.defaultFontPixelSize * 0.33 - anchors.verticalCenter: parent.verticalCenter - QGCLabel { - text: _altitudeAMSLFact.shortDescription + "(" + _altitudeAMSLFact.units + ")" - font.pixelSize: ScreenTools.defaultFontPixelSize * 0.75 - width: parent.width - height: ScreenTools.defaultFontPixelSize * 0.75 - color: "white" - horizontalAlignment: TextEdit.AlignHCenter - } - QGCLabel { - text: _altitudeAMSLFact.valueString - font.pixelSize: ScreenTools.defaultFontPixelSize * 1.5 - font.weight: Font.DemiBold - width: parent.width - color: "white" - horizontalAlignment: TextEdit.AlignHCenter - } - QGCLabel { - text: _groundSpeedFact.shortDescription + "(" + _groundSpeedFact.units + ")" - font.pixelSize: ScreenTools.defaultFontPixelSize * 0.75 - width: parent.width - height: ScreenTools.defaultFontPixelSize * 0.75 - color: "white" - horizontalAlignment: TextEdit.AlignHCenter - } - QGCLabel { - text: _groundSpeedFact.valueString - font.pixelSize: ScreenTools.defaultFontPixelSize - font.weight: Font.DemiBold - width: parent.width - color: "white" - horizontalAlignment: TextEdit.AlignHCenter - } - } + maxHeight: multiTouchItem.y - y + + Component.onCompleted: console.log(y) + onHeightChanged: console.log(y, height, multiTouchItem.y) } //-- Vertical Tool Buttons diff --git a/src/FlightMap/Widgets/QGCInstrumentWidgetAlternate.qml b/src/FlightMap/Widgets/QGCInstrumentWidgetAlternate.qml new file mode 100644 index 0000000000000000000000000000000000000000..21b1b5ac7d26841adf1e090456963864a9685a9e --- /dev/null +++ b/src/FlightMap/Widgets/QGCInstrumentWidgetAlternate.qml @@ -0,0 +1,79 @@ +/*===================================================================== + +QGroundControl Open Source Ground Control Station + +(c) 2009, 2015 QGROUNDCONTROL PROJECT + +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 . + +======================================================================*/ + +import QtQuick 2.4 + +import QGroundControl.Controls 1.0 +import QGroundControl.ScreenTools 1.0 +import QGroundControl.FactSystem 1.0 +import QGroundControl.FlightMap 1.0 + +/// Instrument panel shown when virtual thumbsticks are visible +Rectangle { + id: root + height: _outerRadius * 2 + radius: _outerRadius + color: isSatellite ? Qt.rgba(1,1,1,0.75) : Qt.rgba(0,0,0,0.75) + + property alias heading: compass.heading + property alias rollAngle: attitude.rollAngle + property alias pitchAngle: attitude.pitchAngle + property real size: _defaultSize + property bool isSatellite: false + property bool active: false + + property Fact _emptyFact: Fact { } + property Fact groundSpeedFact: _emptyFact + property Fact airSpeedFact: _emptyFact + property Fact altitudeFact: _emptyFact + + property real _innerRadius: (width - (_topBottomMargin * 3)) / 4 + property real _outerRadius: _innerRadius + _topBottomMargin + + property real _defaultSize: ScreenTools.defaultFontPixelSize * (9) + + property real _sizeRatio: ScreenTools.isTinyScreen ? (size / _defaultSize) * 0.5 : size / _defaultSize + property real _bigFontSize: ScreenTools.defaultFontPixelSize * 2.5 * _sizeRatio + property real _normalFontSize:ScreenTools.defaultFontPixelSize * 1.5 * _sizeRatio + property real _labelFontSize: ScreenTools.defaultFontPixelSize * 0.75 * _sizeRatio + property real _spacing: ScreenTools.defaultFontPixelSize * 0.33 + property real _topBottomMargin: (size * 0.05) / 2 + + QGCAttitudeWidget { + id: attitude + anchors.leftMargin: _topBottomMargin + anchors.left: parent.left + size: _innerRadius * 2 + active: active + anchors.verticalCenter: parent.verticalCenter + } + + QGCCompassWidget { + id: compass + anchors.leftMargin: _spacing + anchors.left: attitude.right + size: _innerRadius * 2 + active: active + anchors.verticalCenter: parent.verticalCenter + } +} diff --git a/src/FlightMap/qmldir b/src/FlightMap/qmldir index cd915c52abe6693561bac9b2b4c2a03a3ec5ec98..f7dfa06b8ddeedca560b6bab06163c75c1caa775 100644 --- a/src/FlightMap/qmldir +++ b/src/FlightMap/qmldir @@ -5,14 +5,15 @@ FlightMap 1.0 FlightMap.qml QGCVideoBackground 1.0 QGCVideoBackground.qml # Widgets -QGCArtificialHorizon 1.0 QGCArtificialHorizon.qml -QGCAttitudeHUD 1.0 QGCAttitudeHUD.qml -QGCAttitudeWidget 1.0 QGCAttitudeWidget.qml -QGCCompassWidget 1.0 QGCCompassWidget.qml -QGCInstrumentWidget 1.0 QGCInstrumentWidget.qml -QGCPitchIndicator 1.0 QGCPitchIndicator.qml -QGCSlider 1.0 QGCSlider.qml -ValuesWidget 1.0 ValuesWidget.qml +QGCArtificialHorizon 1.0 QGCArtificialHorizon.qml +QGCAttitudeHUD 1.0 QGCAttitudeHUD.qml +QGCAttitudeWidget 1.0 QGCAttitudeWidget.qml +QGCCompassWidget 1.0 QGCCompassWidget.qml +QGCInstrumentWidget 1.0 QGCInstrumentWidget.qml +QGCInstrumentWidgetAlternate 1.0 QGCInstrumentWidgetAlternate.qml +QGCPitchIndicator 1.0 QGCPitchIndicator.qml +QGCSlider 1.0 QGCSlider.qml +ValuesWidget 1.0 ValuesWidget.qml # Map items MissionItemIndicator 1.0 MissionItemIndicator.qml