From 5a8639b5b669f32455702e8c090080db6d67eb22 Mon Sep 17 00:00:00 2001 From: zedamota Date: Tue, 29 Jun 2010 20:17:28 +0000 Subject: [PATCH] OP37/GCS Fix to WP number in tooltip, added compass to map git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@941 ebee16cc-31ac-478f-84a7-5cbb03baadba --- .../src/mapwidget/images/compas.svg | 248 ++++++++++++++++++ .../src/mapwidget/mapresources.qrc | 1 + .../opmapcontrol/src/mapwidget/mapwidget.pro | 1 + .../src/mapwidget/opmapwidget.cpp | 35 ++- .../opmapcontrol/src/mapwidget/opmapwidget.h | 9 +- .../src/mapwidget/waypointitem.cpp | 4 +- 6 files changed, 290 insertions(+), 8 deletions(-) create mode 100644 ground/src/libs/opmapcontrol/src/mapwidget/images/compas.svg diff --git a/ground/src/libs/opmapcontrol/src/mapwidget/images/compas.svg b/ground/src/libs/opmapcontrol/src/mapwidget/images/compas.svg new file mode 100644 index 000000000..086b865a1 --- /dev/null +++ b/ground/src/libs/opmapcontrol/src/mapwidget/images/compas.svg @@ -0,0 +1,248 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ground/src/libs/opmapcontrol/src/mapwidget/mapresources.qrc b/ground/src/libs/opmapcontrol/src/mapwidget/mapresources.qrc index be2082946..938e0a82e 100644 --- a/ground/src/libs/opmapcontrol/src/mapwidget/mapresources.qrc +++ b/ground/src/libs/opmapcontrol/src/mapwidget/mapresources.qrc @@ -2,5 +2,6 @@ images/bigMarkerGreen.png images/marker.png + images/compas.svg diff --git a/ground/src/libs/opmapcontrol/src/mapwidget/mapwidget.pro b/ground/src/libs/opmapcontrol/src/mapwidget/mapwidget.pro index 3cba3adac..11c20d3d8 100644 --- a/ground/src/libs/opmapcontrol/src/mapwidget/mapwidget.pro +++ b/ground/src/libs/opmapcontrol/src/mapwidget/mapwidget.pro @@ -19,4 +19,5 @@ HEADERS += mapgraphicitem.h \ QT += opengl QT += network QT += sql +QT += svg RESOURCES += mapresources.qrc diff --git a/ground/src/libs/opmapcontrol/src/mapwidget/opmapwidget.cpp b/ground/src/libs/opmapcontrol/src/mapwidget/opmapwidget.cpp index a1db94f67..b9e07a825 100644 --- a/ground/src/libs/opmapcontrol/src/mapwidget/opmapwidget.cpp +++ b/ground/src/libs/opmapcontrol/src/mapwidget/opmapwidget.cpp @@ -33,7 +33,7 @@ namespace mapcontrol { - OPMapWidget::OPMapWidget(QWidget *parent, Configuration *config):QGraphicsView(parent),configuration(config),followmouse(true) + OPMapWidget::OPMapWidget(QWidget *parent, Configuration *config):QGraphicsView(parent),configuration(config),followmouse(true),compass(0) { setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred); core=new internals::Core; @@ -52,6 +52,7 @@ namespace mapcontrol connect(map->core,SIGNAL(OnTileLoadStart()),this,SIGNAL(OnTileLoadStart())); connect(map->core,SIGNAL(OnTilesStillToLoad(int)),this,SIGNAL(OnTilesStillToLoad(int))); this->setMouseTracking(followmouse); + SetShowCompass(true); } void OPMapWidget::resizeEvent(QResizeEvent *event) @@ -60,6 +61,9 @@ namespace mapcontrol scene()->setSceneRect( QRect(QPoint(0, 0), event->size())); QGraphicsView::resizeEvent(event); + if(compass) + compass->setScale(0.1+0.05*(qreal)(event->size().width())/1000*(qreal)(event->size().height())/600); + } QSize OPMapWidget::sizeHint() const { @@ -204,8 +208,33 @@ namespace mapcontrol connect(this,SIGNAL(WPInserted(int,WayPointItem*)),item,SLOT(WPInserted(int,WayPointItem*))); connect(this,SIGNAL(WPNumberChanged(int,int,WayPointItem*)),item,SLOT(WPRenumbered(int,int,WayPointItem*))); connect(this,SIGNAL(WPDeleted(int)),item,SLOT(WPDeleted(int))); -} + } ////////////////////////////////////////////// - + void OPMapWidget::SetShowCompass(const bool &value) + { + if(value) + { + compass=new QGraphicsSvgItem(QString::fromUtf8(":/markers/images/compas.svg")); + compass->setScale(0.1+0.05*(qreal)(this->size().width())/1000*(qreal)(this->size().height())/600); + // compass->setTransformOriginPoint(compass->boundingRect().width(),compass->boundingRect().height()); + compass->setFlag(QGraphicsItem::ItemIsMovable,true); + mscene.addItem(compass); + compass->setTransformOriginPoint(compass->boundingRect().width()/2,compass->boundingRect().height()/2); + compass->setPos(55-compass->boundingRect().width()/2,55-compass->boundingRect().height()/2); + compass->setZValue(3); + compass->setOpacity(0.7); + + } + if(!value && compass) + { + delete compass; + } + } + void OPMapWidget::SetRotate(qreal const& value) + { + map->mapRotate(value); + if(compass) + compass->setRotation(value); + } } diff --git a/ground/src/libs/opmapcontrol/src/mapwidget/opmapwidget.h b/ground/src/libs/opmapcontrol/src/mapwidget/opmapwidget.h index 8942d1788..8d7f0d045 100644 --- a/ground/src/libs/opmapcontrol/src/mapwidget/opmapwidget.h +++ b/ground/src/libs/opmapcontrol/src/mapwidget/opmapwidget.h @@ -36,6 +36,7 @@ #include #include #include "waypointitem.h" +#include "QtSvg/QGraphicsSvgItem" namespace mapcontrol { /** @@ -191,7 +192,7 @@ namespace mapcontrol void SetZoom(double const& value){map->SetZoom(value);} qreal Rotate(){return map->rotation;} - void SetRotate(qreal const& value){map->mapRotate(value);} + void SetRotate(qreal const& value); void ReloadMap(){map->ReloadMap(); map->resize();} @@ -301,6 +302,8 @@ namespace mapcontrol */ void WPRenumber(WayPointItem* item,int const& newnumber); + void SetShowCompass(bool const& value); + private: internals::Core *core; MapGraphicItem *map; @@ -312,8 +315,8 @@ namespace mapcontrol internals::PointLatLng currentmouseposition; bool followmouse; void ConnectWP(WayPointItem* item); - - WayPointItem* item;//apagar + QGraphicsSvgItem *compass; + // WayPointItem* item;//apagar protected: void resizeEvent(QResizeEvent *event); void showEvent ( QShowEvent * event ); diff --git a/ground/src/libs/opmapcontrol/src/mapwidget/waypointitem.cpp b/ground/src/libs/opmapcontrol/src/mapwidget/waypointitem.cpp index 2263bbe50..175176f2c 100644 --- a/ground/src/libs/opmapcontrol/src/mapwidget/waypointitem.cpp +++ b/ground/src/libs/opmapcontrol/src/mapwidget/waypointitem.cpp @@ -33,7 +33,6 @@ namespace mapcontrol text=0; numberI=0; picture.load(QString::fromUtf8(":/markers/images/marker.png")); - RefreshToolTip(); number=WayPointItem::snumber; ++WayPointItem::snumber; this->setFlag(QGraphicsItem::ItemIsMovable,true); @@ -42,6 +41,7 @@ namespace mapcontrol // transf.translate(picture.width()/2,picture.height()); // this->setTransform(transf); SetShowNumber(shownumber); + RefreshToolTip(); RefreshPos(); } WayPointItem::WayPointItem(const internals::PointLatLng &coord,int const& altitude, const QString &description, MapGraphicItem *map):coord(coord),reached(false),description(description),shownumber(true),isDragging(false),altitude(altitude),map(map) @@ -49,7 +49,6 @@ namespace mapcontrol text=0; numberI=0; picture.load(QString::fromUtf8(":/markers/images/marker.png")); - RefreshToolTip(); number=WayPointItem::snumber; ++WayPointItem::snumber; this->setFlag(QGraphicsItem::ItemIsMovable,true); @@ -58,6 +57,7 @@ namespace mapcontrol //transf.translate(picture.width()/2,picture.height()); // this->setTransform(transf); SetShowNumber(shownumber); + RefreshToolTip(); RefreshPos(); }