/** ** ** @RDE_HEADER@ ** Definition of internal data of base class for rubberbands ** $Id$ ** $HeadURL$ ** $Author$ ** ** ----------------------------------------------------------------------------------------------- ** ** Hardware-Environment: Intel-PC ** Software-Environment: Windows 7, Qt 5.4. ArcGIS 10.2.5 ** ** Language ........: C++ 11 ** ** ----------------------------------------------------------------------------------------------- ** ** Author ...........: Joerg Turla, SPD G, Tel. 3132 ** ** ----------------------------------------------------------------------------------------------- ** ** Notes .........: ** ** 16.06.2015, JT : First edition for use with Qt5 ** ** ----------------------------------------------------------------------------------------------- */ #include "rubberband_internal.h" #include "rubberband.h" #include "rubberband_drawable.h" #include "rubberband_handle.h" #include "rubberband_handle_proxy.h" #include #include namespace SituationMap { namespace RB { Rubberband::InternalData::InternalData( SituationMap::Map * map ) : _mapView(nullptr) , _mapScene(nullptr) , _handleList() , _constructionObjectDraw(nullptr) , _connectedPreviewPixmap(nullptr) , _lastClickPosition(-1,-1) , _constrainFailedMarker(nullptr) , _logger(getLogger("Rubberband")) { SituationMap::MapImpl * mapImpl = dynamic_cast(map); if (mapImpl) { _mapView = mapImpl -> getEsriMapGraphicsView(); if (_mapView != nullptr) { _mapScene = _mapView -> scene(); } } } /* InternalData */ Rubberband::InternalData::~InternalData() { /* Because of using shared RefPointer we don't need to call delete for every handle, * just clear the handle-list. for (auto handle : _handleList) { handle = nullptr;; } */ _handleList.clear(); delete _constructionObjectDraw; _constructionObjectDraw = nullptr; if (_mapScene) { if (nullptr != _connectedPreviewPixmap) { _mapScene->removeItem( _connectedPreviewPixmap ); delete _connectedPreviewPixmap; _connectedPreviewPixmap = nullptr; } delete _constrainFailedMarker; } _mapView = nullptr; _mapScene = nullptr; } /* ~InternalData */ } } /* namespace SituationMap::RB */