Browse Source

Merge pull request #5867 from gigorvd/slowmap

'manual control lost' when connected joystick with armed UAV
QGC4.4
Gus Grubba 7 years ago committed by GitHub
parent
commit
18a9b13a37
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 51
      src/QmlControls/QGroundControlQmlGlobal.cc
  2. 7
      src/QmlControls/QGroundControlQmlGlobal.h

51
src/QmlControls/QGroundControlQmlGlobal.cc

@ -24,6 +24,9 @@ const char* QGroundControlQmlGlobal::_flightMapPositionLatitudeSettingsKey = @@ -24,6 +24,9 @@ const char* QGroundControlQmlGlobal::_flightMapPositionLatitudeSettingsKey =
const char* QGroundControlQmlGlobal::_flightMapPositionLongitudeSettingsKey = "Longitude";
const char* QGroundControlQmlGlobal::_flightMapZoomSettingsKey = "FlightMapZoom";
QGeoCoordinate QGroundControlQmlGlobal::_coord = QGeoCoordinate(0.0,0.0);
double QGroundControlQmlGlobal::_zoom = 17;
QGroundControlQmlGlobal::QGroundControlQmlGlobal(QGCApplication* app, QGCToolbox* toolbox)
: QGCTool(app, toolbox)
, _flightMapInitialZoom(17.0)
@ -41,11 +44,26 @@ QGroundControlQmlGlobal::QGroundControlQmlGlobal(QGCApplication* app, QGCToolbox @@ -41,11 +44,26 @@ QGroundControlQmlGlobal::QGroundControlQmlGlobal(QGCApplication* app, QGCToolbox
{
// We clear the parent on this object since we run into shutdown problems caused by hybrid qml app. Instead we let it leak on shutdown.
setParent(NULL);
// Load last coordinates and zoom from config file
QSettings settings;
settings.beginGroup(_flightMapPositionSettingsGroup);
_coord.setLatitude(settings.value(_flightMapPositionLatitudeSettingsKey, 0).toDouble());
_coord.setLongitude(settings.value(_flightMapPositionLongitudeSettingsKey, 0).toDouble());
_zoom = settings.value(_flightMapZoomSettingsKey, 2).toDouble();
//if config file is clear
if(_zoom == 0) _zoom = 17.0;
}
QGroundControlQmlGlobal::~QGroundControlQmlGlobal()
{
// Save last coordinates and zoom to config file
QSettings settings;
settings.beginGroup(_flightMapPositionSettingsGroup);
settings.setValue(_flightMapPositionLatitudeSettingsKey, _coord.latitude());
settings.setValue(_flightMapPositionLongitudeSettingsKey, _coord.longitude());
settings.setValue(_flightMapZoomSettingsKey, _zoom);
}
void QGroundControlQmlGlobal::setToolbox(QGCToolbox* toolbox)
@ -198,34 +216,12 @@ void QGroundControlQmlGlobal::setSkipSetupPage(bool skip) @@ -198,34 +216,12 @@ void QGroundControlQmlGlobal::setSkipSetupPage(bool skip)
}
}
QGeoCoordinate QGroundControlQmlGlobal::flightMapPosition(void)
{
QSettings settings;
QGeoCoordinate coord;
settings.beginGroup(_flightMapPositionSettingsGroup);
coord.setLatitude(settings.value(_flightMapPositionLatitudeSettingsKey, 0).toDouble());
coord.setLongitude(settings.value(_flightMapPositionLongitudeSettingsKey, 0).toDouble());
return coord;
}
double QGroundControlQmlGlobal::flightMapZoom(void)
{
QSettings settings;
settings.beginGroup(_flightMapPositionSettingsGroup);
return settings.value(_flightMapZoomSettingsKey, 2).toDouble();
}
void QGroundControlQmlGlobal::setFlightMapPosition(QGeoCoordinate& coordinate)
{
if (coordinate != flightMapPosition()) {
QSettings settings;
_coord.setLatitude(coordinate.latitude());
_coord.setLongitude(coordinate.longitude());
settings.beginGroup(_flightMapPositionSettingsGroup);
settings.setValue(_flightMapPositionLatitudeSettingsKey, coordinate.latitude());
settings.setValue(_flightMapPositionLongitudeSettingsKey, coordinate.longitude());
emit flightMapPositionChanged(coordinate);
}
}
@ -233,10 +229,7 @@ void QGroundControlQmlGlobal::setFlightMapPosition(QGeoCoordinate& coordinate) @@ -233,10 +229,7 @@ void QGroundControlQmlGlobal::setFlightMapPosition(QGeoCoordinate& coordinate)
void QGroundControlQmlGlobal::setFlightMapZoom(double zoom)
{
if (zoom != flightMapZoom()) {
QSettings settings;
settings.beginGroup(_flightMapPositionSettingsGroup);
settings.setValue(_flightMapZoomSettingsKey, zoom);
_zoom = zoom;
emit flightMapZoomChanged(zoom);
}
}

7
src/QmlControls/QGroundControlQmlGlobal.h

@ -142,8 +142,8 @@ public: @@ -142,8 +142,8 @@ public:
QGCCorePlugin* corePlugin () { return _corePlugin; }
SettingsManager* settingsManager () { return _settingsManager; }
FactGroup* gpsRtkFactGroup () { return &_gpsRtkFactGroup; }
static QGeoCoordinate flightMapPosition ();
static double flightMapZoom ();
static QGeoCoordinate flightMapPosition () { return _coord; }
static double flightMapZoom () { return _zoom; }
qreal zOrderTopMost () { return 1000; }
qreal zOrderWidgets () { return 100; }
@ -209,6 +209,9 @@ private: @@ -209,6 +209,9 @@ private:
static const char* _flightMapPositionLatitudeSettingsKey;
static const char* _flightMapPositionLongitudeSettingsKey;
static const char* _flightMapZoomSettingsKey;
static QGeoCoordinate _coord;
static double _zoom;
};
#endif

Loading…
Cancel
Save