diff --git a/src/ui/map/MAV2DIcon.cc b/src/ui/map/MAV2DIcon.cc index 26de51e19554395112f8b72a8a127491c591ef90..4fd378181b55efe0143f8f70bb2b8d2928b0d0fa 100644 --- a/src/ui/map/MAV2DIcon.cc +++ b/src/ui/map/MAV2DIcon.cc @@ -15,31 +15,24 @@ MAV2DIcon::MAV2DIcon(mapcontrol::MapGraphicItem* map,mapcontrol::OPMapWidget* pa selected(uas->getSelected()), uasid(uas->getUASID()) { - //connect size = QSize(radius, radius); - mypen = new QPen(uas->getColor()); - drawIcon(mypen); + pic = QPixmap(size); + drawIcon(); } -MAV2DIcon::MAV2DIcon(mapcontrol::MapGraphicItem* map, mapcontrol::OPMapWidget* parent, qreal lat, qreal lon, qreal alt, QPen* pen) +MAV2DIcon::MAV2DIcon(mapcontrol::MapGraphicItem* map, mapcontrol::OPMapWidget* parent, qreal lat, qreal lon, qreal alt, QColor color) : UAVItem(map,parent), radius(20), type(0), airframe(0), - iconColor(Qt::yellow), + iconColor(color), selected(false), uasid(0) { - if (pen == NULL) - { - mypen = new QPen(Qt::red); - drawIcon(mypen); - } - else - { - drawIcon(pen); - } size = QSize(radius, radius); + pic = QPixmap(size); + drawIcon(); + SetUAVPos(internals::PointLatLng(lat, lon), alt, color); } MAV2DIcon::~MAV2DIcon() @@ -47,19 +40,10 @@ MAV2DIcon::~MAV2DIcon() //delete pic; } -void MAV2DIcon::setPen(QPen* pen) -{ - if (pen != NULL) - { - mypen = pen; - drawIcon(pen); - } -} - void MAV2DIcon::setSelectedUAS(bool selected) { this->selected = selected; - drawIcon(mypen); + drawIcon(); } /** @@ -77,14 +61,13 @@ void MAV2DIcon::setYaw(float yaw) if (diff > 0.1f) { this->yaw = yaw; - drawIcon(mypen); + drawIcon(); // FIXME } } -void MAV2DIcon::drawIcon(QPen* pen) +void MAV2DIcon::drawIcon() { - Q_UNUSED(pen); pic.fill(Qt::transparent); QPainter painter(&pic); painter.setRenderHint(QPainter::TextAntialiasing); @@ -97,21 +80,19 @@ void MAV2DIcon::drawIcon(QPen* pen) painter.translate(radius/2, radius/2); // Draw selected indicator + painter.setBrush(Qt::NoBrush); if (selected) { - // qDebug() << "SYSTEM IS NOW SELECTED"; - // QColor color(Qt::yellow); - // color.setAlpha(0.3f); - painter.setBrush(Qt::NoBrush); - // QPen selPen(color); - // int width = 5; - // selPen.setWidth(width); QPen pen(Qt::yellow); pen.setWidth(2); painter.setPen(pen); - painter.drawEllipse(QPoint(0, 0), radius/2-1, radius/2-1); - //qDebug() << "Painting ellipse" << radius/2-width << width; - //selPen->deleteLater(); } + else + { + QPen pen(Qt::white); + pen.setWidth(1); + painter.setPen(pen); + } + painter.drawEllipse(QPoint(0, 0), radius/2-1, radius/2-1); drawAirframePolygon(airframe, painter, radius, iconColor, yaw); } diff --git a/src/ui/map/MAV2DIcon.h b/src/ui/map/MAV2DIcon.h index b65d18cd5233a9182186c6fb513fabc4c33ed21e..be83312c314b656a6f1ea120e350827b7975271c 100644 --- a/src/ui/map/MAV2DIcon.h +++ b/src/ui/map/MAV2DIcon.h @@ -27,7 +27,7 @@ public: * @param alignment alignment (Middle or TopLeft) * @param pen QPen for drawing */ - MAV2DIcon(mapcontrol::MapGraphicItem* map,mapcontrol::OPMapWidget* parent, UASInterface* uas, int radius = 10, int type=0); + MAV2DIcon(mapcontrol::MapGraphicItem* map,mapcontrol::OPMapWidget* parent, UASInterface* uas, int radius = 40, int type=0); /*! * @@ -37,18 +37,10 @@ public: * @param alignment alignment (Middle or TopLeft) * @param pen QPen for drawing */ - MAV2DIcon(mapcontrol::MapGraphicItem* map,mapcontrol::OPMapWidget* parent, qreal lat=0, qreal lon=0, qreal alt=0, QPen* pen=0); + MAV2DIcon(mapcontrol::MapGraphicItem* map,mapcontrol::OPMapWidget* parent, qreal lat=0, qreal lon=0, qreal alt=0, QColor color=QColor()); virtual ~MAV2DIcon(); - //! sets the QPen which is used for drawing the circle - /*! - * A QPen can be used to modify the look of the drawn circle - * @param pen the QPen which should be used for drawing - * @see http://doc.trolltech.com/4.3/qpen.html - */ - virtual void setPen(QPen* pen); - /** @brief Mark this system as selected */ void setSelectedUAS(bool selected); void setYaw(float yaw); @@ -62,10 +54,7 @@ public: return uasid; } - void drawIcon(QPen* pen); - void drawIcon() { - drawIcon(mypen); - } + void drawIcon(); static void drawAirframePolygon(int airframe, QPainter& painter, int radius, QColor& iconColor, float yaw); protected: @@ -76,7 +65,6 @@ protected: QColor iconColor; ///< Color to be used for the icon bool selected; ///< Wether this is the system currently in focus int uasid; ///< ID of tracked system - QPen* mypen; QSize size; };