20 #include <QDomElement>
43 QTreeWidgetItem::setFlags( Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsUserCheckable | Qt::ItemIsDragEnabled );
57 QTreeWidgetItem::setFlags( Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsUserCheckable | Qt::ItemIsDragEnabled );
84 static const QPointF __qPointFSymbol(-32,-32);
85 static const QSize __qSizeSymbol(32,32);
91 COverlayPoint::drawMarker( _poChart, _pqPainter, 0, __poOverlayObjectSelected ==
this || __poOverlayObjectSelected == QTreeWidgetItem::parent() );
108 if( __poLandmarkPointEditView->exec() == QDialog::Accepted )
114 delete __poLandmarkPointEditView;
151 if( _rqDomElement.hasAttribute(
"longitude" ) && _rqDomElement.hasAttribute(
"longitude" ) )
154 _rqDomElement.attribute(
"latitude" ).toDouble(),
157 qsType = _rqDomElement.attribute(
"type" );
158 qsSymbol = _rqDomElement.attribute(
"symbol" );
159 qsUrl = _rqDomElement.attribute(
"url" );
160 qsDescription = _rqDomElement.firstChildElement(
"Description" ).text();
161 qsComment = _rqDomElement.firstChildElement(
"Comment" ).text();
167 if( _rqDomElement.hasAttribute(
"lon" ) && _rqDomElement.hasAttribute(
"lat" ) )
169 QString __qsElevation = _rqDomElement.firstChildElement(
"ele" ).text();
172 _rqDomElement.attribute(
"lat" ).toDouble(),
173 __qsElevation.toDouble() );
175 qsType = _rqDomElement.firstChildElement(
"type" ).text();
176 qsDescription = _rqDomElement.firstChildElement(
"desc" ).text();
177 qsComment = _rqDomElement.firstChildElement(
"cmt" ).text();
178 qsSymbol = _rqDomElement.firstChildElement(
"sym" ).text();
179 qsUrl = _rqDomElement.firstChildElement(
"link" ).attribute(
"href" );
186 _rqXmlStreamWriter.writeStartElement(
"Point" );
188 if( !
qsName.isEmpty() ) _rqXmlStreamWriter.writeAttribute(
"name",
qsName );
198 if( !
qsType.isEmpty() ) _rqXmlStreamWriter.writeAttribute(
"type",
qsType );
200 if( !
qsSymbol.isEmpty() ) _rqXmlStreamWriter.writeAttribute(
"symbol",
qsSymbol );
202 if( !
qsUrl.isEmpty() ) _rqXmlStreamWriter.writeAttribute(
"url",
qsUrl );
206 _rqXmlStreamWriter.writeStartElement(
"Description" );
208 _rqXmlStreamWriter.writeEndElement();
213 _rqXmlStreamWriter.writeStartElement(
"Comment" );
214 _rqXmlStreamWriter.writeCDATA(
qsComment );
215 _rqXmlStreamWriter.writeEndElement();
218 _rqXmlStreamWriter.writeEndElement();
226 _rqXmlStreamWriter.writeStartElement(
"wpt" );
233 _rqXmlStreamWriter.writeStartElement(
"name" );
234 _rqXmlStreamWriter.writeCharacters(
qsName );
235 _rqXmlStreamWriter.writeEndElement();
240 _rqXmlStreamWriter.writeStartElement(
"ele" );
242 _rqXmlStreamWriter.writeEndElement();
247 _rqXmlStreamWriter.writeStartElement(
"type" );
248 _rqXmlStreamWriter.writeCharacters(
qsType );
249 _rqXmlStreamWriter.writeEndElement();
254 _rqXmlStreamWriter.writeStartElement(
"desc" );
256 _rqXmlStreamWriter.writeEndElement();
261 _rqXmlStreamWriter.writeStartElement(
"cmt" );
262 _rqXmlStreamWriter.writeCDATA(
qsComment );
263 _rqXmlStreamWriter.writeEndElement();
268 _rqXmlStreamWriter.writeStartElement(
"sym" );
269 _rqXmlStreamWriter.writeCharacters(
qsSymbol );
270 _rqXmlStreamWriter.writeEndElement();
273 if( !
qsUrl.isEmpty() )
275 _rqXmlStreamWriter.writeStartElement(
"link" );
276 _rqXmlStreamWriter.writeAttribute(
"href",
qsUrl );
277 _rqXmlStreamWriter.writeEndElement();
280 _rqXmlStreamWriter.writeEndElement();
COverlayObject * getOverlayObjectSelected() const
Returns the currently selected overlay object.
void updateChart()
Update the (current) chart content (on screen)
void setOverlayObjectSelected(COverlayObject *_poOverlayObject)
Sets the currently selected overlay object.
QRectF getDrawArea() const
Returns the viewport draw area.
QPointF toDrawPosition(const CDataPosition &_roGeoPosition) const
Converts the given (geographical) position [long,lat,elev] to chart draw point [px].
(Geographical) Position data [long,lat,elev]
double getLongitude() const
Returns this position's longitude, in degrees.
double getElevation() const
Returns this position's elevation, in meters.
double getLatitude() const
Returns this position's latitude, in degrees.
static const CDataPosition UNDEFINED
Specific value for an undefined position.
void setPosition(double _fdLongitude, double _fdLatitude, double _fdElevation=UNDEFINED_ELEVATION)
Sets new coordinates.
static constexpr double UNDEFINED_ELEVATION
Specific value for an undefined elevation.
@ SELECT
Landmark selection status.
@ VISIBLE
Landmark visibility status.
virtual void refreshContent()
Refreshes the content of the underlying widget.
[UI] Landmark item's edit view
void dumpGPX(QXmlStreamWriter &_rqXmlStreamWriter) const
Stores this object's content to the given GPX destination (file)
QString qsType
Landmark's type.
void parseGPX(const QDomElement &_rqDomElement)
Retrieves this object's content from the given GPX source (file)
QString qsDescription
Landmark's description.
QString qsSymbol
Landmark's symbol.
virtual void showEdit()
Displays this object's edit widget/view.
void toggleMultiSelected()
Toggles this landmark's selection status.
QString qsUrl
Landmark's URL.
virtual void showDetail()
Displays this object's details (in the appropriate widget/view)
virtual void draw(const CChart *_poChart, QPainter *_pqPainter)
Draws this object (itself or its content)
CLandmarkPoint(const QString &_rqsName)
virtual void unserialize(QDataStream &_rqDataStream)
Unserializes (restore) this object's data from binary format.
void dumpQVCT(QXmlStreamWriter &_rqXmlStreamWriter) const
Stores this object's content to the given QVCT destination (file)
QString qsComment
Landmark's comment.
virtual bool matchScrPosition(const CChart *_poChart, const QPointF &_rqPointFScrPosition) const
Returns whether this point matches the given screen position.
void parseQVCT(const QDomElement &_rqDomElement)
Retrieves this object's content from the given QVCT source (file)
virtual void serialize(QDataStream &_rqDataStream) const
Serializes (store) this object's data to binary format.
void switchView(EView eView)
Displays the requested container/item details (switching to the appropriate widget)
@ LANDMARK_POINT
Landmark point.
@ LANDMARK
Landmark overlay.
void switchView(EView eView)
Displays the requested overlay (switching to the appropriate tab)
void setOverlayObject(COverlayObject *_poOverlayObject)
Sets the overlay object to be displayed (and refreshes the underlying widget)
QString qsName
Object name.
virtual bool matchScrPosition(const CChart *_poChart, const QPointF &_rqPointFScrPosition) const
Returns whether this point matches the given screen position.
virtual void drawSymbol(const CChart *_poChart, QPainter *_pqPainter, const QString &_rqsSymbol)
Draws the symbol (user-defined)
virtual void drawTag(const CChart *_poChart, QPainter *_pqPainter, ETagPosition _eTagPosition=TAG_AUTO, const CDataTimeValidity *_poDataTimeValidity=0, const CDataPositionValidity *_poDataPositionValidity=0)
Draws the tag (name)
virtual void drawMarker(const CChart *_poChart, QPainter *_pqPainter, const CDataPositionValidity *_poDataPositionValidity=0, bool _bSelected=false)
Draws the point (marker)
virtual void unserialize(QDataStream &_rqDataStream)
Unserializes (restore) this object's data from binary format.
virtual void serialize(QDataStream &_rqDataStream) const
Serializes (store) this object's data to binary format.
void setVisibility(int _iVisibilityCode)
Sets the global (coded) visibility status.
bool bVisible
Global (marker) visibility status.
int getVisibility() const
Returns the global (coded) visibility status.
void forceRedraw()
Forces this overlay's rendering (not matter its cache content)
static COverlayDetailView * useOverlayDetailView()
static CLandmarkPointDetailView * useLandmarkPointDetailView()
static COverlayListView * useOverlayListView()
static CChartTable * useChartTable()
static CSettings * useSettings()
static CLandmarkOverlay * useLandmarkOverlay()