Browse Source

Minor tweaks on waypoint interaction. Suspected bug in OPMapControl mouse position handling.

QGC4.4
lm 14 years ago
parent
commit
e869bac6d6
  1. 6
      src/ui/map/QGCMapWidget.cc
  2. 5
      src/ui/map/Waypoint2DIcon.cc

6
src/ui/map/QGCMapWidget.cc

@ -362,13 +362,13 @@ void QGCMapWidget::setUpdateRateLimit(float seconds) @@ -362,13 +362,13 @@ void QGCMapWidget::setUpdateRateLimit(float seconds)
void QGCMapWidget::handleMapWaypointEdit(mapcontrol::WayPointItem* waypoint)
{
qDebug() << "UPDATING WP FROM MAP";
// Block circle updates
Waypoint* wp = iconsToWaypoints.value(waypoint, NULL);
// Protect from vicious double update cycle
if (firingWaypointChange == wp || !wp) return;
if (firingWaypointChange == wp) return;
// Not in cycle, block now from entering it
firingWaypointChange = wp;
qDebug() << "UPDATING WP FROM MAP";
// Update WP values
internals::PointLatLng pos = waypoint->Coord();
@ -376,6 +376,8 @@ void QGCMapWidget::handleMapWaypointEdit(mapcontrol::WayPointItem* waypoint) @@ -376,6 +376,8 @@ void QGCMapWidget::handleMapWaypointEdit(mapcontrol::WayPointItem* waypoint)
wp->setLongitude(pos.Lng());
wp->setAltitude(waypoint->Altitude());
qDebug() << "WP: LAT:" << pos.Lat() << "LON:" << pos.Lng();
emit waypointChanged(wp);
firingWaypointChange = NULL;
}

5
src/ui/map/Waypoint2DIcon.cc

@ -35,7 +35,7 @@ Waypoint2DIcon::Waypoint2DIcon(mapcontrol::MapGraphicItem* map, mapcontrol::OPMa @@ -35,7 +35,7 @@ Waypoint2DIcon::Waypoint2DIcon(mapcontrol::MapGraphicItem* map, mapcontrol::OPMa
// drawIcon(mypen);
this->setFlag(QGraphicsItem::ItemIgnoresTransformations,true);
picture = QPixmap(radius+1, radius+1);
drawIcon();
updateWaypoint();
}
Waypoint2DIcon::~Waypoint2DIcon()
@ -63,6 +63,9 @@ void Waypoint2DIcon::updateWaypoint() @@ -63,6 +63,9 @@ void Waypoint2DIcon::updateWaypoint()
SetHeading(waypoint->getYaw());
SetCoord(internals::PointLatLng(waypoint->getLatitude(), waypoint->getLongitude()));
qDebug() << "UPDATING WP:" << waypoint->getId() << "LAT:" << waypoint->getLatitude() << "LON:" << waypoint->getLongitude();
SetDescription(waypoint->getDescription());
SetAltitude(waypoint->getAltitude());
// FIXME Add SetNumber (currently needs a separate call)

Loading…
Cancel
Save