mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2025-02-18 08:54:15 +01:00
GCS/OPMap - Changed several foreach chield methods to signal/slot
This commit is contained in:
parent
2a4c54a073
commit
4b8bfcb997
@ -74,9 +74,15 @@ namespace mapcontrol
|
||||
{
|
||||
if(timer.elapsed()>trailtime*1000)
|
||||
{
|
||||
trail->addToGroup(new TrailItem(position,altitude,Qt::green,this));
|
||||
TrailItem * ob=new TrailItem(position,altitude,Qt::green,map);
|
||||
trail->addToGroup(ob);
|
||||
connect(this,SIGNAL(setChildPosition()),ob,SLOT(setPosSLOT()));
|
||||
if(!lasttrailline.IsEmpty())
|
||||
trailLine->addToGroup((new TrailLineItem(lasttrailline,position,Qt::green,map)));
|
||||
{
|
||||
TrailLineItem * obj=new TrailLineItem(lasttrailline,position,Qt::red,map);
|
||||
trailLine->addToGroup(obj);
|
||||
connect(this,SIGNAL(setChildLine()),obj,SLOT(setLineSlot()));
|
||||
}
|
||||
lasttrailline=position;
|
||||
timer.restart();
|
||||
}
|
||||
@ -86,10 +92,15 @@ namespace mapcontrol
|
||||
{
|
||||
if(qAbs(internals::PureProjection::DistanceBetweenLatLng(lastcoord,position)*1000)>traildistance)
|
||||
{
|
||||
trail->addToGroup(new TrailItem(position,altitude,Qt::green,this));
|
||||
TrailItem * ob=new TrailItem(position,altitude,Qt::green,map);
|
||||
trail->addToGroup(ob);
|
||||
connect(this,SIGNAL(setChildPosition()),ob,SLOT(setPosSLOT()));
|
||||
if(!lasttrailline.IsEmpty())
|
||||
|
||||
trailLine->addToGroup((new TrailLineItem(lasttrailline,position,Qt::green,this)));
|
||||
{
|
||||
TrailLineItem * obj=new TrailLineItem(lasttrailline,position,Qt::red,map);
|
||||
trailLine->addToGroup(obj);
|
||||
connect(this,SIGNAL(setChildLine()),obj,SLOT(setLineSlot()));
|
||||
}
|
||||
lasttrailline=position;
|
||||
lastcoord=position;
|
||||
}
|
||||
@ -127,18 +138,8 @@ namespace mapcontrol
|
||||
{
|
||||
localposition=map->FromLatLngToLocal(coord);
|
||||
this->setPos(localposition.X(),localposition.Y());
|
||||
foreach(QGraphicsItem* i,trail->childItems())
|
||||
{
|
||||
TrailItem* w=qgraphicsitem_cast<TrailItem*>(i);
|
||||
if(w)
|
||||
w->setPos(map->FromLatLngToLocal(w->coord).X(),map->FromLatLngToLocal(w->coord).Y());
|
||||
}
|
||||
foreach(QGraphicsItem* i,trailLine->childItems())
|
||||
{
|
||||
TrailLineItem* ww=qgraphicsitem_cast<TrailLineItem*>(i);
|
||||
if(ww)
|
||||
ww->setLine(map->FromLatLngToLocal(ww->coord1).X(),map->FromLatLngToLocal(ww->coord1).Y(),map->FromLatLngToLocal(ww->coord2).X(),map->FromLatLngToLocal(ww->coord2).Y());
|
||||
}
|
||||
emit setChildPosition();
|
||||
emit setChildLine();
|
||||
|
||||
}
|
||||
|
||||
|
@ -222,6 +222,8 @@ namespace mapcontrol
|
||||
signals:
|
||||
void UAVReachedWayPoint(int const& waypointnumber,WayPointItem* waypoint);
|
||||
void UAVLeftSafetyBouble(internals::PointLatLng const& position);
|
||||
void setChildPosition();
|
||||
void setChildLine();
|
||||
};
|
||||
}
|
||||
#endif // GPSITEM_H
|
||||
|
@ -98,8 +98,7 @@ namespace mapcontrol
|
||||
QSize size=boundingRect().size().toSize();
|
||||
size.setWidth(size.width()*2*zoomdiff);
|
||||
size.setHeight(size.height()*2*zoomdiff);
|
||||
temp=QImage(size,
|
||||
QImage::Format_ARGB32_Premultiplied);
|
||||
temp=QImage(size,QImage::Format_ARGB32_Premultiplied);
|
||||
temp.fill(0);
|
||||
QPainter imagePainter(&temp);
|
||||
imagePainter.translate(-boundingRect().topLeft());
|
||||
|
@ -28,9 +28,8 @@
|
||||
#include <QDateTime>
|
||||
namespace mapcontrol
|
||||
{
|
||||
TrailItem::TrailItem(internals::PointLatLng const& coord,int const& altitude, QBrush color, QGraphicsItem* parent):QGraphicsItem(parent),coord(coord)
|
||||
TrailItem::TrailItem(internals::PointLatLng const& coord,int const& altitude, QBrush color, MapGraphicItem *map):QGraphicsItem(map),coord(coord),m_brush(color),m_map(map)
|
||||
{
|
||||
m_brush=color;
|
||||
QDateTime time=QDateTime::currentDateTime();
|
||||
QString coord_str = " " + QString::number(coord.Lat(), 'f', 6) + " " + QString::number(coord.Lng(), 'f', 6);
|
||||
setToolTip(QString(tr("Position:")+"%1\n"+tr("Altitude:")+"%2\n"+tr("Time:")+"%3").arg(coord_str).arg(QString::number(altitude)).arg(time.toString()));
|
||||
@ -52,5 +51,8 @@ namespace mapcontrol
|
||||
return Type;
|
||||
}
|
||||
|
||||
|
||||
void TrailItem::setPosSLOT()
|
||||
{
|
||||
setPos(m_map->FromLatLngToLocal(this->coord).X(),m_map->FromLatLngToLocal(this->coord).Y());
|
||||
}
|
||||
}
|
||||
|
@ -32,6 +32,7 @@
|
||||
#include <QLabel>
|
||||
#include "../internals/pointlatlng.h"
|
||||
#include <QObject>
|
||||
#include "mapgraphicitem.h"
|
||||
|
||||
namespace mapcontrol
|
||||
{
|
||||
@ -42,7 +43,7 @@ namespace mapcontrol
|
||||
Q_INTERFACES(QGraphicsItem)
|
||||
public:
|
||||
enum { Type = UserType + 3 };
|
||||
TrailItem(internals::PointLatLng const& coord,int const& altitude, QBrush color, QGraphicsItem* parent);
|
||||
TrailItem(internals::PointLatLng const& coord,int const& altitude, QBrush color,MapGraphicItem * map);
|
||||
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
|
||||
QWidget *widget);
|
||||
QRectF boundingRect() const;
|
||||
@ -50,10 +51,9 @@ namespace mapcontrol
|
||||
internals::PointLatLng coord;
|
||||
private:
|
||||
QBrush m_brush;
|
||||
|
||||
|
||||
MapGraphicItem * m_map;
|
||||
public slots:
|
||||
|
||||
void setPosSLOT();
|
||||
signals:
|
||||
|
||||
};
|
||||
|
@ -28,9 +28,8 @@
|
||||
|
||||
namespace mapcontrol
|
||||
{
|
||||
TrailLineItem::TrailLineItem(internals::PointLatLng const& coord1,internals::PointLatLng const& coord2, QBrush color, QGraphicsItem* parent):QGraphicsLineItem(parent),coord1(coord1),coord2(coord2)
|
||||
TrailLineItem::TrailLineItem(internals::PointLatLng const& coord1,internals::PointLatLng const& coord2, QBrush color, MapGraphicItem * map):QGraphicsLineItem(map),coord1(coord1),coord2(coord2),m_brush(color),m_map(map)
|
||||
{
|
||||
m_brush=color;
|
||||
QPen pen;
|
||||
pen.setBrush(m_brush);
|
||||
pen.setWidth(1);
|
||||
@ -42,5 +41,8 @@ namespace mapcontrol
|
||||
return Type;
|
||||
}
|
||||
|
||||
|
||||
void TrailLineItem::setLineSlot()
|
||||
{
|
||||
setLine(m_map->FromLatLngToLocal(this->coord1).X(),m_map->FromLatLngToLocal(this->coord1).Y(),m_map->FromLatLngToLocal(this->coord2).X(),m_map->FromLatLngToLocal(this->coord2).Y());
|
||||
}
|
||||
}
|
||||
|
@ -32,6 +32,7 @@
|
||||
#include <QLabel>
|
||||
#include "../internals/pointlatlng.h"
|
||||
#include <QObject>
|
||||
#include "mapgraphicitem.h"
|
||||
|
||||
namespace mapcontrol
|
||||
{
|
||||
@ -42,16 +43,15 @@ namespace mapcontrol
|
||||
Q_INTERFACES(QGraphicsItem)
|
||||
public:
|
||||
enum { Type = UserType + 7 };
|
||||
TrailLineItem(internals::PointLatLng const& coord1,internals::PointLatLng const& coord2, QBrush color, QGraphicsItem* parent);
|
||||
TrailLineItem(internals::PointLatLng const& coord1,internals::PointLatLng const& coord2, QBrush color,MapGraphicItem * map);
|
||||
int type() const;
|
||||
internals::PointLatLng coord1;
|
||||
internals::PointLatLng coord2;
|
||||
private:
|
||||
QBrush m_brush;
|
||||
|
||||
|
||||
MapGraphicItem * m_map;
|
||||
public slots:
|
||||
|
||||
void setLineSlot();
|
||||
signals:
|
||||
|
||||
};
|
||||
|
@ -297,9 +297,15 @@ namespace mapcontrol
|
||||
{
|
||||
if(timer.elapsed()>trailtime*1000)
|
||||
{
|
||||
trail->addToGroup(new TrailItem(position,altitude,Qt::red,this));
|
||||
TrailItem * ob=new TrailItem(position,altitude,Qt::green,map);
|
||||
trail->addToGroup(ob);
|
||||
connect(this,SIGNAL(setChildPosition()),ob,SLOT(setPosSLOT()));
|
||||
if(!lasttrailline.IsEmpty())
|
||||
trailLine->addToGroup((new TrailLineItem(lasttrailline,position,Qt::red,map)));
|
||||
{
|
||||
TrailLineItem * obj=new TrailLineItem(lasttrailline,position,Qt::red,map);
|
||||
trailLine->addToGroup(obj);
|
||||
connect(this,SIGNAL(setChildLine()),obj,SLOT(setLineSlot()));
|
||||
}
|
||||
lasttrailline=position;
|
||||
timer.restart();
|
||||
}
|
||||
@ -309,9 +315,15 @@ namespace mapcontrol
|
||||
{
|
||||
if(qAbs(internals::PureProjection::DistanceBetweenLatLng(lastcoord,position)*1000)>traildistance)
|
||||
{
|
||||
trail->addToGroup(new TrailItem(position,altitude,Qt::red,this));
|
||||
TrailItem * ob=new TrailItem(position,altitude,Qt::green,map);
|
||||
trail->addToGroup(ob);
|
||||
connect(this,SIGNAL(setChildPosition()),ob,SLOT(setPosSLOT()));
|
||||
if(!lasttrailline.IsEmpty())
|
||||
trailLine->addToGroup((new TrailLineItem(lasttrailline,position,Qt::red,map)));
|
||||
{
|
||||
TrailLineItem * obj=new TrailLineItem(lasttrailline,position,Qt::red,map);
|
||||
trailLine->addToGroup(obj);
|
||||
connect(this,SIGNAL(setChildLine()),obj,SLOT(setLineSlot()));
|
||||
}
|
||||
lasttrailline=position;
|
||||
lastcoord=position;
|
||||
}
|
||||
@ -395,19 +407,8 @@ namespace mapcontrol
|
||||
{
|
||||
localposition=map->FromLatLngToLocal(coord);
|
||||
this->setPos(localposition.X(),localposition.Y());
|
||||
foreach(QGraphicsItem* i,trail->childItems())
|
||||
{
|
||||
TrailItem* w=qgraphicsitem_cast<TrailItem*>(i);
|
||||
if(w)
|
||||
w->setPos(map->FromLatLngToLocal(w->coord).X(),map->FromLatLngToLocal(w->coord).Y());
|
||||
}
|
||||
foreach(QGraphicsItem* i,trailLine->childItems())
|
||||
{
|
||||
TrailLineItem* ww=qgraphicsitem_cast<TrailLineItem*>(i);
|
||||
if(ww)
|
||||
ww->setLine(map->FromLatLngToLocal(ww->coord1).X(),map->FromLatLngToLocal(ww->coord1).Y(),map->FromLatLngToLocal(ww->coord2).X(),map->FromLatLngToLocal(ww->coord2).Y());
|
||||
}
|
||||
|
||||
emit setChildPosition();
|
||||
emit setChildLine();
|
||||
refreshPaint_flag=true;
|
||||
}
|
||||
|
||||
|
@ -223,6 +223,7 @@ namespace mapcontrol
|
||||
void generateArrowhead();
|
||||
|
||||
MapGraphicItem* map;
|
||||
OPMapWidget* mapwidget;
|
||||
QPolygonF arrowHead;
|
||||
QLineF arrowShaft;
|
||||
int altitude;
|
||||
@ -237,7 +238,6 @@ namespace mapcontrol
|
||||
double yawRate_dps;
|
||||
QPixmap pic;
|
||||
core::Point localposition;
|
||||
OPMapWidget* mapwidget;
|
||||
QGraphicsItemGroup* trail;
|
||||
QGraphicsItemGroup * trailLine;
|
||||
internals::PointLatLng lasttrailline;
|
||||
@ -265,6 +265,8 @@ namespace mapcontrol
|
||||
signals:
|
||||
void UAVReachedWayPoint(int const& waypointnumber,WayPointItem* waypoint);
|
||||
void UAVLeftSafetyBouble(internals::PointLatLng const& position);
|
||||
void setChildPosition();
|
||||
void setChildLine();
|
||||
};
|
||||
}
|
||||
#endif // UAVITEM_H
|
||||
|
Loading…
x
Reference in New Issue
Block a user