Browse Source

Merge pull request #2799 from DonLakeFlyer/CopyFlyPosition

Copy Fly view position to Plan
QGC4.4
Don Gagne 9 years ago
parent
commit
7c46cbe994
  1. 3
      src/FlightDisplay/FlightDisplayViewMap.qml
  2. 20
      src/MissionEditor/MissionEditor.qml
  3. 4
      src/QmlControls/QGroundControlQmlGlobal.h

3
src/FlightDisplay/FlightDisplayViewMap.qml

@ -44,6 +44,9 @@ FlightMap { @@ -44,6 +44,9 @@ FlightMap {
property bool _activeVehicleCoordinateValid: multiVehicleManager.activeVehicle ? multiVehicleManager.activeVehicle.coordinateValid : false
property var activeVehicleCoordinate: multiVehicleManager.activeVehicle ? multiVehicleManager.activeVehicle.coordinate : QtPositioning.coordinate()
Component.onCompleted: QGroundControl.flightMapPosition = center
onCenterChanged: QGroundControl.flightMapPosition = center
onActiveVehicleCoordinateChanged: {
if (_followVehicle && _activeVehicleCoordinateValid && activeVehicleCoordinate.isValid) {
_initialMapPositionSet = true

20
src/MissionEditor/MissionEditor.qml

@ -67,7 +67,6 @@ QGCView { @@ -67,7 +67,6 @@ QGCView {
property bool _syncInProgress: _activeVehicle ? _activeVehicle.missionManager.inProgress : false
Component.onCompleted: updateMapToVehiclePosition()
onActiveVehiclePositionChanged: updateMapToVehiclePosition()
Connections {
@ -118,8 +117,11 @@ QGCView { @@ -118,8 +117,11 @@ QGCView {
return lon + 180.0
}
/// Fix the map viewport to the current mission items. We don't fit the home position in this process.
/// Fix the map viewport to the current mission items.
function fitViewportToMissionItems() {
if (_missionItems.count == 1) {
editorMap.center = _missionItems.get(0).coordinate
} else {
var missionItem = _missionItems.get(0)
var north = normalizeLat(missionItem.coordinate.latitude)
var south = north
@ -139,9 +141,9 @@ QGCView { @@ -139,9 +141,9 @@ QGCView {
west = Math.min(west, lon)
}
}
editorMap.visibleRegion = QtPositioning.rectangle(QtPositioning.coordinate(north - 90.0, west - 180.0), QtPositioning.coordinate(south - 90.0, east - 180.0))
}
}
MissionController {
id: controller
@ -286,6 +288,9 @@ QGCView { @@ -286,6 +288,9 @@ QGCView {
readonly property real animationDuration: 500
// Initial map position duplicates Fly view position
Component.onCompleted: editorMap.center = QGroundControl.flightMapPosition
Behavior on zoomLevel {
NumberAnimation {
duration: editorMap.animationDuration
@ -541,6 +546,15 @@ QGCView { @@ -541,6 +546,15 @@ QGCView {
}
QGCButton {
text: "Mission"
onClicked: {
centerMapButton.hideDropDown()
fitViewportToMissionItems()
}
}
QGCButton {
text: "Vehicle"
enabled: activeVehicle && activeVehicle.latitude != 0 && activeVehicle.longitude != 0

4
src/QmlControls/QGroundControlQmlGlobal.h

@ -76,6 +76,7 @@ public: @@ -76,6 +76,7 @@ public:
Q_PROPERTY(Fact* offlineEditingFirmwareType READ offlineEditingFirmwareType CONSTANT)
Q_PROPERTY(QGeoCoordinate lastKnownHomePosition READ lastKnownHomePosition CONSTANT)
Q_PROPERTY(QGeoCoordinate flightMapPosition MEMBER _flightMapPosition NOTIFY flightMapPositionChanged)
Q_INVOKABLE void saveGlobalSetting (const QString& key, const QString& value);
Q_INVOKABLE QString loadGlobalSetting (const QString& key, const QString& defaultValue);
@ -142,6 +143,7 @@ signals: @@ -142,6 +143,7 @@ signals:
void isMultiplexingEnabledChanged (bool enabled);
void isVersionCheckEnabledChanged (bool enabled);
void mavlinkSystemIDChanged (int id);
void flightMapPositionChanged (QGeoCoordinate flightMapPosition);
private:
FlightMapSettings* _flightMapSettings;
@ -152,6 +154,8 @@ private: @@ -152,6 +154,8 @@ private:
bool _virtualTabletJoystick;
QGeoCoordinate _flightMapPosition;
SettingsFact _offlineEditingFirmwareTypeFact;
FactMetaData _offlineEditingFirmwareTypeMetaData;

Loading…
Cancel
Save