diff --git a/src/FlightMap/Widgets/QGCInstrumentWidget.qml b/src/FlightMap/Widgets/QGCInstrumentWidget.qml index b90f1b0325e892c3a52d1fa475c4e1d9bf62d55f..0573beb78829fe5f37afdb4d66752a6ec347093e 100644 --- a/src/FlightMap/Widgets/QGCInstrumentWidget.qml +++ b/src/FlightMap/Widgets/QGCInstrumentWidget.qml @@ -131,7 +131,7 @@ Item { Rectangle { anchors.fill: _valuesWidget color: _backgroundColor - visible: !_showCompass && _activeVehicle + visible: !_showCompass radius: _spacing } @@ -145,7 +145,6 @@ Item { } } - Rectangle { id: _spacer2 height: 1 diff --git a/src/FlightMap/Widgets/ValuesWidget.qml b/src/FlightMap/Widgets/ValuesWidget.qml index 596e2fdb3e00b74bf9f9e3bbee107653510519ec..0e275e52a2d8559c6775465d6f9df23ef8ab8b92 100644 --- a/src/FlightMap/Widgets/ValuesWidget.qml +++ b/src/FlightMap/Widgets/ValuesWidget.qml @@ -33,7 +33,6 @@ import QGroundControl 1.0 QGCFlickable { id: _root - visible: _activeVehicle height: Math.min(maxHeight, _smallFlow.y + _smallFlow.height) contentHeight: _smallFlow.y + _smallFlow.height flickableDirection: Flickable.VerticalFlick @@ -43,7 +42,7 @@ QGCFlickable { property color textColor property var maxHeight - property var _activeVehicle: QGroundControl.multiVehicleManager.activeVehicle + property var _activeVehicle: QGroundControl.multiVehicleManager.activeVehicle ? QGroundControl.multiVehicleManager.activeVehicle : QGroundControl.multiVehicleManager.disconnectedVehicle property real _margins: ScreenTools.defaultFontPixelWidth / 2 QGCPalette { id:qgcPal; colorGroupEnabled: true } diff --git a/src/FlightMap/Widgets/VibrationWidget.qml b/src/FlightMap/Widgets/VibrationWidget.qml index 83f838d7ee1fcb612c136b808bb64781c462f48b..cc973fef8977b30c74be4881eb6f588bc9816a4c 100644 --- a/src/FlightMap/Widgets/VibrationWidget.qml +++ b/src/FlightMap/Widgets/VibrationWidget.qml @@ -33,7 +33,6 @@ import QGroundControl 1.0 QGCFlickable { id: _root - visible: _activeVehicle height: Math.min(maxHeight, innerItem.height) contentHeight: innerItem.height flickableDirection: Flickable.VerticalFlick @@ -43,7 +42,7 @@ QGCFlickable { property color backgroundColor property var maxHeight - property var _activeVehicle: QGroundControl.multiVehicleManager.activeVehicle + property var _activeVehicle: QGroundControl.multiVehicleManager.activeVehicle ? QGroundControl.multiVehicleManager.activeVehicle : QGroundControl.multiVehicleManager.disconnectedVehicle property real _margins: ScreenTools.defaultFontPixelWidth / 2 property real _barWidth: Math.round(ScreenTools.defaultFontPixelWidth * 3) diff --git a/src/QmlControls/QGroundControlQmlGlobal.h b/src/QmlControls/QGroundControlQmlGlobal.h index beae9422e7fcb4271f9350c93c6156086f716f02..de35f4963127cd228f0c8ebadc30eaf9a591dbd6 100644 --- a/src/QmlControls/QGroundControlQmlGlobal.h +++ b/src/QmlControls/QGroundControlQmlGlobal.h @@ -55,7 +55,7 @@ public: Q_PROPERTY(LinkManager* linkManager READ linkManager CONSTANT) Q_PROPERTY(MissionCommands* missionCommands READ missionCommands CONSTANT) Q_PROPERTY(MultiVehicleManager* multiVehicleManager READ multiVehicleManager CONSTANT) - Q_PROPERTY(QGCMapEngineManager* mapEngineManager READ mapEngineManager CONSTANT) + Q_PROPERTY(QGCMapEngineManager* mapEngineManager READ mapEngineManager CONSTANT) Q_PROPERTY(qreal zOrderTopMost READ zOrderTopMost CONSTANT) ///< z order for top most items, toolbar, main window sub view Q_PROPERTY(qreal zOrderWidgets READ zOrderWidgets CONSTANT) ///< z order value to widgets, for example: zoom controls, hud widgetss diff --git a/src/Vehicle/MultiVehicleManager.cc b/src/Vehicle/MultiVehicleManager.cc index 7646e92e82fb5248337c4374c735898592892de0..019694d295efc4ed93e9b8d153e8ee6d6c0d091d 100644 --- a/src/Vehicle/MultiVehicleManager.cc +++ b/src/Vehicle/MultiVehicleManager.cc @@ -50,6 +50,7 @@ MultiVehicleManager::MultiVehicleManager(QGCApplication* app) , _activeVehicleAvailable(false) , _parameterReadyVehicleAvailable(false) , _activeVehicle(NULL) + , _disconnectedVehicle(NULL) , _firmwarePluginManager(NULL) , _autopilotPluginManager(NULL) , _joystickManager(NULL) @@ -66,6 +67,8 @@ MultiVehicleManager::MultiVehicleManager(QGCApplication* app) if (_gcsHeartbeatEnabled) { _gcsHeartbeatTimer.start(); } + + _disconnectedVehicle = new Vehicle(this); } void MultiVehicleManager::setToolbox(QGCToolbox *toolbox) diff --git a/src/Vehicle/MultiVehicleManager.h b/src/Vehicle/MultiVehicleManager.h index c1bd65915c2241e243c2843b41d9569af8a19a7a..31fb92fba1764bd37cbd69093a9afe377b107163 100644 --- a/src/Vehicle/MultiVehicleManager.h +++ b/src/Vehicle/MultiVehicleManager.h @@ -57,6 +57,9 @@ public: Q_PROPERTY(QmlObjectListModel* vehicles READ vehicles CONSTANT) Q_PROPERTY(bool gcsHeartBeatEnabled READ gcsHeartbeatEnabled WRITE setGcsHeartbeatEnabled NOTIFY gcsHeartBeatEnabledChanged) + /// A disconnected vehicle is used to access FactGroup information for the Vehicle object when no active vehicle is available + Q_PROPERTY(Vehicle* disconnectedVehicle MEMBER _disconnectedVehicle CONSTANT) + // Methods Q_INVOKABLE Vehicle* getVehicleById(int vehicleId); @@ -104,6 +107,7 @@ private: bool _activeVehicleAvailable; ///< true: An active vehicle is available bool _parameterReadyVehicleAvailable; ///< true: An active vehicle with ready parameters is available Vehicle* _activeVehicle; ///< Currently active vehicle from a ui perspective + Vehicle* _disconnectedVehicle; ///< Disconnected vechicle for FactGroup access QList _vehiclesBeingDeleted; ///< List of Vehicles being deleted in queued phases Vehicle* _vehicleBeingSetActive; ///< Vehicle being set active in queued phases