Qt Virtual Chart Table (QVCT)
CRouteContainer.hpp
Go to the documentation of this file.
1 // INDENTING (emacs/vi): -*- mode:c++; tab-width:2; c-basic-offset:2; intent-tabs-mode:nil; -*- ex: set tabstop=2 expandtab:
2 
3 /*
4  * Qt Virtual Chart Table (QVCT)
5  * Copyright (C) 2012 Cedric Dufour <http://cedric.dufour.name>
6  * Author: Cedric Dufour <http://cedric.dufour.name>
7  *
8  * The Qt Virtual Chart Table (QVCT) is free software:
9  * you can redistribute it and/or modify it under the terms of the GNU General
10  * Public License as published by the Free Software Foundation, Version 3.
11  *
12  * The Qt Virtual Chart Table (QVCT) is distributed in the hope
13  * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
14  * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
15  *
16  * See the GNU General Public License for more details.
17  */
18 
19 #ifndef QVCT_CROUTECONTAINER_HPP
20 #define QVCT_CROUTECONTAINER_HPP
21 
22 // QT
23 #include <QDomElement> // QtXml module
24 #include <QPainter>
25 #include <QPointF>
26 #include <QXmlStreamWriter>
27 
28 // QVCT
29 #include "data/CDataPosition.hpp"
32 class CChart;
33 class CRouteOverlay;
34 class CRoutePoint;
35 
36 
38 
43 {
44 
45  //------------------------------------------------------------------------------
46  // FIELDS
47  //------------------------------------------------------------------------------
48 
49 private:
51  QString qsType;
53  QString qsDescription;
55  QString qsComment;
57  QString qsUrl;
58 
59 
60  //------------------------------------------------------------------------------
61  // CONSTRUCTORS / DESTRUCTOR
62  //------------------------------------------------------------------------------
63 
64 public:
65  CRouteContainer( const QString& _rqsName );
66  virtual ~CRouteContainer();
67 
68 
69  //------------------------------------------------------------------------------
70  // METHODS: COverlayObject (implement/override)
71  //------------------------------------------------------------------------------
72 
73 public:
74  virtual void serialize( QDataStream& _rqDataStream ) const;
75  virtual void unserialize( QDataStream& _rqDataStream );
76 
77 public:
78  virtual COverlay* useOverlay() { return (COverlay*)QTreeWidgetItem::parent(); };
79 
80 public:
81  virtual void draw( const CChart* _poChart, QPainter* _pqPainter );
82  virtual void showDetail();
83  virtual void showEdit();
84 
85 
86  //------------------------------------------------------------------------------
87  // METHODS: COverlayContainer (implement/override)
88  //------------------------------------------------------------------------------
89 
90 public:
91  virtual COverlayPoint* matchScrPosition( const CChart* _poChart, const QPointF& _rqPointFScrPosition ) const;
92 
93 
94  //------------------------------------------------------------------------------
95  // METHODS: COverlayVisibility (override)
96  //------------------------------------------------------------------------------
97 
98 public:
99  virtual void setVisibleName( bool _bVisibleName );
100  virtual void setVisiblePosition( bool _bVisiblePosition );
101  virtual void setVisibleRouting( bool _bVisibleRouting );
102  virtual void toggleVisibility();
103 
104 
105  //------------------------------------------------------------------------------
106  // METHODS
107  //------------------------------------------------------------------------------
108 
109  // SETTERS
110 public:
112  void setType( const QString& _rqsType ) { qsType = _rqsType; };
114  void setDescription( const QString& _rqsDescription ) { qsDescription = _rqsDescription; };
116  void setComment( const QString& _rqsComment ) { qsComment = _rqsComment; };
118  void setUrl( const QString& _rqsUrl ) { qsUrl = _rqsUrl; };
119 
120  // GETTERS
121 public:
123  QString getType() const { return qsType; };
125  QString getDescription() const { return qsDescription; };
127  QString getComment() const { return qsComment; };
129  QString getUrl() const { return qsUrl; };
130 
131  // OTHER
132 public:
134  CRoutePoint* addPoint( const QString& _rqsName, const CDataPosition& _roDataPosition = CDataPosition::UNDEFINED, bool _bMinimizeLength = false );
136  double getLengthRL();
138  int getInsertIndexMinLength( const CDataPosition& _roDataPosition );
139 
140 public:
142  int parseQVCT( const QDomElement& _rqDomElement );
144  int parseGPX( const QDomElement& _rqDomElement );
146  void dumpQVCT( QXmlStreamWriter & _rqXmlStreamWriter, bool bOnlySelected = false ) const;
148  void dumpGPX( QXmlStreamWriter & _rqXmlStreamWriter, bool bOnlySelected = false ) const;
150  int deleteSelection();
151 
152 protected:
154 
155 };
156 
157 #endif // QVCT_CROUTECONTAINER_HPP
[UI] Chart (view)
Definition: CChart.hpp:44
(Geographical) Position data [long,lat,elev]
static const CDataPosition UNDEFINED
Specific value for an undefined position.
Generic overlay container.
Generic overlay point.
Generic overlay visibility.
virtual void toggleVisibility(bool _bIncludeCourse, bool _bIncludeRouting)
Toggle the visibility status.
Generic overlay.
Definition: COverlay.hpp:45
[UI] Route overlay container
virtual void setVisiblePosition(bool _bVisiblePosition)
Sets the position's visibility status.
QString qsComment
Route's comment.
virtual void setVisibleRouting(bool _bVisibleRouting)
Sets the routing's (data) visibility status.
void setType(const QString &_rqsType)
Sets this route's type.
virtual void toggleVisibility()
virtual ~CRouteContainer()
void setComment(const QString &_rqsComment)
Sets this route's comment.
virtual void setVisibleName(bool _bVisibleName)
Sets the name's (tag) visibility status.
void setDescription(const QString &_rqsDescription)
Sets this route's description.
QString getUrl() const
Returns this route's URL.
virtual void serialize(QDataStream &_rqDataStream) const
Serializes (store) this object's data to binary format.
CRoutePoint * addPoint(const QString &_rqsName, const CDataPosition &_roDataPosition=CDataPosition::UNDEFINED, bool _bMinimizeLength=false)
Add a new route (item/point) to this container.
virtual void draw(const CChart *_poChart, QPainter *_pqPainter)
Draws this object (itself or its content)
int deleteSelection()
Deletes selected items within this container.
double getLengthRL()
Returns the route's (rhumb-line) length.
QString getType() const
Returns this route's type.
QString qsUrl
Route's URL.
QString getDescription() const
Returns this route's description.
int getInsertIndexMinLength(const CDataPosition &_roDataPosition)
Returns the given point insertion index that minimizes the route's (rhumb-line) length.
virtual void showDetail()
Displays this object's details (in the appropriate widget/view)
virtual COverlay * useOverlay()
Returns this object's (base) overlay.
virtual void unserialize(QDataStream &_rqDataStream)
Unserializes (restore) this object's data from binary format.
QString qsDescription
Route's description.
virtual COverlayPoint * matchScrPosition(const CChart *_poChart, const QPointF &_rqPointFScrPosition) const
Returns the overlay container's point that (first) matches the given screen position (0 if none is fo...
QString getComment() const
Returns this route's comment.
CRouteContainer(const QString &_rqsName)
void setUrl(const QString &_rqsUrl)
Sets this route's URL.
int parseGPX(const QDomElement &_rqDomElement)
Retrieves this object's content from the given GPX source (file)
virtual void showEdit()
Displays this object's edit widget/view.
QString qsType
Route's type.
void dumpQVCT(QXmlStreamWriter &_rqXmlStreamWriter, bool bOnlySelected=false) const
Stores this object's content to the given QVCT destination (file)
int parseQVCT(const QDomElement &_rqDomElement)
Retrieves this object's content from the given QVCT source (file)
void dumpGPX(QXmlStreamWriter &_rqXmlStreamWriter, bool bOnlySelected=false) const
Stores this object's content to the given GPX destination (file)
[UI] Route overlay container
[UI] Route overlay point (item) / waypoint
Definition: CRoutePoint.hpp:40