Qt Virtual Chart Table (QVCT)
CTrackContainer.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_CTRACKCONTAINER_HPP
20 #define QVCT_CTRACKCONTAINER_HPP
21 
22 // QT
23 #include <QDomElement> // QtXml module
24 #include <QPainter>
25 #include <QPointF>
26 #include <QTreeWidgetItem>
27 #include <QXmlStreamWriter>
28 
29 // QVCT
30 #include "data/CDataPosition.hpp"
33 class CChart;
34 class CTrackOverlay;
35 class CTrackPoint;
36 class CTrackSubContainer;
37 
38 
40 
45 {
46 
47  //------------------------------------------------------------------------------
48  // FIELDS
49  //------------------------------------------------------------------------------
50 
51 private:
53  QString qsType;
55  QString qsDescription;
57  QString qsComment;
59  QString qsUrl;
60 
61 
62  //------------------------------------------------------------------------------
63  // CONSTRUCTORS / DESTRUCTOR
64  //------------------------------------------------------------------------------
65 
66 public:
67  CTrackContainer( const QString& _rqsName );
68  virtual ~CTrackContainer();
69 
70 
71  //------------------------------------------------------------------------------
72  // METHODS: COverlayObject (implement/override)
73  //------------------------------------------------------------------------------
74 
75 public:
76  virtual void serialize( QDataStream& _rqDataStream ) const;
77  virtual void unserialize( QDataStream& _rqDataStream );
78 
79 public:
80  virtual COverlay* useOverlay() { return (COverlay*)QTreeWidgetItem::parent(); };
81 
82 public:
83  virtual void draw( const CChart* _poChart, QPainter* _pqPainter );
84  virtual void showDetail();
85  virtual void showEdit();
86 
87 
88  //------------------------------------------------------------------------------
89  // METHODS: COverlayContainer (implement/override)
90  //------------------------------------------------------------------------------
91 
92 public:
93  virtual COverlayPoint* matchScrPosition( const CChart* _poChart, const QPointF& _rqPointFScrPosition ) const;
94 
95 
96  //------------------------------------------------------------------------------
97  // METHODS: COverlayVisibility (override)
98  //------------------------------------------------------------------------------
99 
100 public:
101  virtual void setVisibleName( bool _bVisibleName );
102  virtual void setVisiblePosition( bool _bVisiblePosition );
103  virtual void setVisibleRouting( bool _bVisibleRouting );
104  virtual void toggleVisibility();
105 
106 
107  //------------------------------------------------------------------------------
108  // METHODS
109  //------------------------------------------------------------------------------
110 
111  // SETTERS
112 public:
114  void setType( const QString& _rqsType ) { qsType = _rqsType; };
116  void setDescription( const QString& _rqsDescription ) { qsDescription = _rqsDescription; };
118  void setComment( const QString& _rqsComment ) { qsComment = _rqsComment; };
120  void setUrl( const QString& _rqsUrl ) { qsUrl = _rqsUrl; };
121 
122  // GETTERS
123 public:
125  QString getType() const { return qsType; };
127  QString getDescription() const { return qsDescription; };
129  QString getComment() const { return qsComment; };
131  QString getUrl() const { return qsUrl; };
132 
133  // OTHER
134 public:
136 
139 
142  double getLengthRL();
144  double getTimeElapsed();
145 
146 public:
148  int parseQVCT( const QDomElement& _rqDomElement );
150  int parseGPX( const QDomElement& _rqDomElement );
152  void dumpQVCT( QXmlStreamWriter & _rqXmlStreamWriter, bool bOnlySelected = false ) const;
154  void dumpGPX( QXmlStreamWriter & _rqXmlStreamWriter, bool bOnlySelected = false ) const;
156  int deleteSelection();
157 
158 protected:
160 };
161 
162 #endif // QVCT_CTRACKCONTAINER_HPP
[UI] Chart (view)
Definition: CChart.hpp:44
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] Track overlay container
int parseGPX(const QDomElement &_rqDomElement)
Retrieves this object's content from the given GPX source (file)
CTrackSubContainer * pickSubContainer()
Returns the last/current sub-container of this container.
QString qsUrl
Track's URL.
CTrackContainer(const QString &_rqsName)
QString qsComment
Track's comment.
QString qsDescription
Track's description.
virtual void draw(const CChart *_poChart, QPainter *_pqPainter)
Draws this object (itself or its content)
virtual void setVisibleName(bool _bVisibleName)
Sets the name's (tag) visibility status.
virtual void setVisibleRouting(bool _bVisibleRouting)
Sets the routing's (data) visibility status.
int deleteSelection()
Deletes selected items within this container.
QString getUrl() const
Returns this track's URL.
virtual void setVisiblePosition(bool _bVisiblePosition)
Sets the position's visibility status.
QString qsType
Track's type.
QString getType() const
Returns this track's type.
void dumpQVCT(QXmlStreamWriter &_rqXmlStreamWriter, bool bOnlySelected=false) const
Stores this object's content to the given QVCT destination (file)
virtual void serialize(QDataStream &_rqDataStream) const
Serializes (store) this object's data to binary format.
QString getDescription() const
Returns this track's description.
void setUrl(const QString &_rqsUrl)
Sets this track's URL.
virtual void showDetail()
Displays this object's details (in the appropriate widget/view)
int parseQVCT(const QDomElement &_rqDomElement)
Retrieves this object's content from the given QVCT source (file)
void setType(const QString &_rqsType)
Sets this track's type.
virtual void toggleVisibility()
void setComment(const QString &_rqsComment)
Sets this track's comment.
double getLengthRL()
Returns the track's (rhumb-line) length.
virtual void showEdit()
Displays this object's edit widget/view.
virtual COverlay * useOverlay()
Returns this object's (base) overlay.
void dumpGPX(QXmlStreamWriter &_rqXmlStreamWriter, bool bOnlySelected=false) const
Stores this object's content to the given GPX destination (file)
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...
virtual ~CTrackContainer()
double getTimeElapsed()
Returns the track's elapsed time.
QString getComment() const
Returns this track's comment.
void setDescription(const QString &_rqsDescription)
Sets this track's description.
virtual void unserialize(QDataStream &_rqDataStream)
Unserializes (restore) this object's data from binary format.
CTrackSubContainer * addSubContainer()
Add a new sub-container to this container.
[UI] Track overlay container
[UI] Track overlay point (item)
Definition: CTrackPoint.hpp:40
[UI] Track overlay sub-container