Qt Virtual Chart Table (QVCT)
CTrackSubContainer.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_CTRACKSUBCONTAINER_HPP
20 #define QVCT_CTRACKSUBCONTAINER_HPP
21 
22 // QT
23 #include <QDomElement> // QtXml module
24 #include <QPainter>
25 #include <QPointF>
26 #include <QTreeWidgetItem>
27 #include <QXmlStreamWriter>
28 
29 // QVCT
32 class CChart;
33 class CTrackOverlay;
34 
35 
37 
42 {
43 
44  //------------------------------------------------------------------------------
45  // CONSTRUCTORS / DESTRUCTOR
46  //------------------------------------------------------------------------------
47 
48 public:
49  CTrackSubContainer( const QString& _rqsName );
50  virtual ~CTrackSubContainer();
51 
52 
53  //------------------------------------------------------------------------------
54  // METHODS: COverlayObject (implement/override)
55  //------------------------------------------------------------------------------
56 
57 public:
58  virtual void unserialize( QDataStream& _rqDataStream );
59 
60 public:
61  virtual COverlay* useOverlay() { return (COverlay*)QTreeWidgetItem::parent()->parent(); };
62 
63 public:
64  virtual void draw( const CChart* _poChart, QPainter* _pqPainter );
65  virtual void showDetail();
66  virtual void showEdit() {};
67 
68 
69  //------------------------------------------------------------------------------
70  // METHODS: COverlayContainer (implement/override)
71  //------------------------------------------------------------------------------
72 
73 public:
74  virtual COverlayPoint* matchScrPosition( const CChart* _poChart, const QPointF& _rqPointFScrPosition ) const;
75 
76 
77  //------------------------------------------------------------------------------
78  // METHODS: COverlayVisibility (override)
79  //------------------------------------------------------------------------------
80 
81 public:
82  virtual void setVisibleName( bool _bVisibleName );
83  virtual void setVisiblePosition( bool _bVisiblePosition );
84  virtual void setVisibleRouting( bool _bVisibleRouting );
85  virtual void toggleVisibility();
86 
87 
88  //------------------------------------------------------------------------------
89  // METHODS
90  //------------------------------------------------------------------------------
91 
92  // OTHER
93 public:
97  CTrackPoint* addPoint( const QString& _rqsName, const CDataPosition& _roDataPosition = CDataPosition::UNDEFINED );
99  double getLengthRL();
101  double getTimeElapsed();
102 
103 public:
105  int parseQVCT( const QDomElement& _rqDomElement );
107  int parseGPX( const QDomElement& _rqDomElement );
109  void dumpQVCT( QXmlStreamWriter & _rqXmlStreamWriter, bool bOnlySelected = false ) const;
111  void dumpGPX( QXmlStreamWriter & _rqXmlStreamWriter, bool bOnlySelected = false ) const;
113  int deleteSelection();
114 
115 protected:
117 };
118 
119 #endif // QVCT_CTRACKSUBCONTAINER_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] Track overlay container
[UI] Track overlay point (item)
Definition: CTrackPoint.hpp:40
[UI] Track overlay sub-container
int parseGPX(const QDomElement &_rqDomElement)
Retrieves this object's content from the given GPX source (file)
virtual void showDetail()
Displays this object's details (in the appropriate widget/view)
virtual void setVisibleRouting(bool _bVisibleRouting)
Sets the routing's (data) visibility status.
CTrackSubContainer(const QString &_rqsName)
int deleteSelection()
Deletes selected items within this sub-container.
virtual void setVisibleName(bool _bVisibleName)
Sets the name's (tag) visibility status.
double getLengthRL()
Returns the track's (rhumb-line) length.
virtual COverlay * useOverlay()
Returns this object's (base) overlay.
virtual void draw(const CChart *_poChart, QPainter *_pqPainter)
Draws this object (itself or its content)
void dumpQVCT(QXmlStreamWriter &_rqXmlStreamWriter, bool bOnlySelected=false) const
Stores this object's content to the given QVCT destination (file)
virtual void unserialize(QDataStream &_rqDataStream)
Unserializes (restore) this object's data from binary format.
CTrackPoint * getLastPoint()
Returns the last track (item/point) from this sub-container (0 if none is found)
CTrackPoint * addPoint(const QString &_rqsName, const CDataPosition &_roDataPosition=CDataPosition::UNDEFINED)
Add a new track (item/point) to this sub-container.
double getTimeElapsed()
Returns the track's elapsed time.
virtual void setVisiblePosition(bool _bVisiblePosition)
Sets the position's visibility status.
int parseQVCT(const QDomElement &_rqDomElement)
Retrieves this object's content from the given QVCT source (file)
virtual void toggleVisibility()
virtual void showEdit()
Displays this object's edit widget/view.
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...
void dumpGPX(QXmlStreamWriter &_rqXmlStreamWriter, bool bOnlySelected=false) const
Stores this object's content to the given GPX destination (file)