From 7e55b31ca17d490aead1f73ded4a70a38814e715 Mon Sep 17 00:00:00 2001 From: Laura Sebesta Date: Fri, 17 Aug 2012 09:46:35 +0200 Subject: [PATCH] Fixed bounding box size. Conflicts: ground/openpilotgcs/src/libs/opmapcontrol/src/mapwidget/uavitem.h --- .../opmapcontrol/src/mapwidget/uavitem.cpp | 19 +++++++++++++------ .../libs/opmapcontrol/src/mapwidget/uavitem.h | 2 ++ .../src/plugins/opmap/opmapgadgetwidget.cpp | 1 - 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/ground/openpilotgcs/src/libs/opmapcontrol/src/mapwidget/uavitem.cpp b/ground/openpilotgcs/src/libs/opmapcontrol/src/mapwidget/uavitem.cpp index 9ef52384b..f96d0815d 100644 --- a/ground/openpilotgcs/src/libs/opmapcontrol/src/mapwidget/uavitem.cpp +++ b/ground/openpilotgcs/src/libs/opmapcontrol/src/mapwidget/uavitem.cpp @@ -34,7 +34,7 @@ namespace mapcontrol double UAVItem::groundspeed_mps_filt = 0; UAVItem::UAVItem(MapGraphicItem* map,OPMapWidget* parent,QString uavPic):map(map),mapwidget(parent),showtrail(true),showtrailline(true),trailtime(5),traildistance(50),autosetreached(true) - ,autosetdistance(100),altitude(0),showUAVInfo(false) + ,autosetdistance(100),altitude(0),showUAVInfo(false),showJustChanged(false) { pic.load(uavPic); this->setFlag(QGraphicsItem::ItemIsMovable,true); @@ -65,8 +65,10 @@ namespace mapcontrol painter->drawPixmap(-pic.width()/2,-pic.height()/2,pic); //Return if context menu switch for UAV info is off - if(!showUAVInfo) + if(!showUAVInfo){ + showJustChanged=false; return; + } QPen myPen; @@ -81,9 +83,6 @@ namespace mapcontrol myPen.setColor(myColor); painter->setPen(myPen); - //Set brush attributes -// painter->setBrush(myColor); - //Create line from (0,0), to (1,1). Later, we'll scale and rotate it QLineF line(0,0,1.0,1.0); @@ -232,11 +231,17 @@ namespace mapcontrol painter->setPen(myPen); painter->drawPath(path); + + //Last thing to do: set bound rectangle as function of largest object + boundingRectSize=groundspeed_mps_filt*ringTime*4*meters2pixels+10; //Largest object is currently the biggest ring + a little bit of margin for the text } QRectF UAVItem::boundingRect()const { - return QRectF(-pic.width()/2,-pic.height()/2,pic.width(),pic.height()); + if(showUAVInfo || showJustChanged) + return QRectF(-boundingRectSize,-boundingRectSize,2*boundingRectSize,2*boundingRectSize); + else + return QRectF(-pic.width()/2,-pic.height()/2,pic.width(),pic.height()); } void UAVItem::SetNED(double NED[3]){ @@ -425,6 +430,8 @@ namespace mapcontrol void UAVItem::SetShowUAVInfo(bool const& value) { showUAVInfo=value; + showJustChanged=true; + update(); } } diff --git a/ground/openpilotgcs/src/libs/opmapcontrol/src/mapwidget/uavitem.h b/ground/openpilotgcs/src/libs/opmapcontrol/src/mapwidget/uavitem.h index 8e59e268c..155f61581 100644 --- a/ground/openpilotgcs/src/libs/opmapcontrol/src/mapwidget/uavitem.h +++ b/ground/openpilotgcs/src/libs/opmapcontrol/src/mapwidget/uavitem.h @@ -249,6 +249,8 @@ namespace mapcontrol double autosetdistance; bool showUAVInfo; static double groundspeed_mps_filt; + float boundingRectSize; + bool showJustChanged; public slots: diff --git a/ground/openpilotgcs/src/plugins/opmap/opmapgadgetwidget.cpp b/ground/openpilotgcs/src/plugins/opmap/opmapgadgetwidget.cpp index bcc1de88b..155e0a741 100644 --- a/ground/openpilotgcs/src/plugins/opmap/opmapgadgetwidget.cpp +++ b/ground/openpilotgcs/src/plugins/opmap/opmapgadgetwidget.cpp @@ -1555,7 +1555,6 @@ void OPMapGadgetWidget::onShowUAVInfo_toggled(bool show) return; m_map->UAV->SetShowUAVInfo(show); - update(); } void OPMapGadgetWidget::onShowHomeAct_toggled(bool show)