• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdeedu API Reference
  • KDE Home
  • Contact Us
 

marble

  • sources
  • kde-4.14
  • kdeedu
  • marble
  • src
  • lib
  • marble
TourWidget.h
Go to the documentation of this file.
1 //
2 // This file is part of the Marble Virtual Globe.
3 //
4 // This program is free software licensed under the GNU LGPL. You can
5 // find a copy of this license in LICENSE.txt in the top directory of
6 // the source code.
7 //
8 // Copyright 2013 Mihail Ivchenko <ematirov@gmail.com>
9 // Copyright 2014 Sanjiban Bairagya <sanjiban22393@gmail.com>
10 //
11 
12 #ifndef MARBLE_TOURWIDGET_H
13 #define MARBLE_TOURWIDGET_H
14 
15 #include "marble_export.h"
16 
17 #include <QWidget>
18 #include <QStyledItemDelegate>
19 #include <QListView>
20 #include <GeoDataCoordinates.h>
21 
22 class QItemSelection;
23 class QModelIndex;
24 class QDoubleSpinBox;
25 class QRadioButton;
26 class QLineEdit;
27 class QToolButton;
28 
29 namespace Marble
30 {
31 
32 class FileManager;
33 class GeoDataPlacemark;
34 class GeoDataLatLonBox;
35 class GeoDataTreeModel;
36 class GeoDataFeature;
37 class GeoDataFlyTo;
38 class GeoDataTourControl;
39 class GeoDataWait;
40 class GeoDataSoundCue;
41 class MarbleWidget;
42 
43 class TourWidgetPrivate;
44 
45 class FlyToEditWidget: public QWidget
46 {
47  Q_OBJECT
48 
49 public:
50  FlyToEditWidget( const QModelIndex& index, MarbleWidget* widget, QWidget* parent=0 );
51  bool editable() const;
52 
53 Q_SIGNALS:
54  void editingDone( const QModelIndex& index );
55 
56 private Q_SLOTS:
57  void save();
58 
59 public Q_SLOTS:
60  void setEditable( bool editable );
61 
62 private:
63  GeoDataFlyTo* flyToElement();
64  MarbleWidget* m_widget;
65  QModelIndex m_index;
66  QToolButton *m_button;
67 };
68 
69 class TourControlEditWidget: public QWidget
70 {
71  Q_OBJECT
72 
73 public:
74  TourControlEditWidget( const QModelIndex& index, QWidget* parent=0 );
75  bool editable() const;
76 
77 Q_SIGNALS:
78  void editingDone( const QModelIndex& index );
79 
80 private Q_SLOTS:
81  void save();
82 
83 public Q_SLOTS:
84  void setEditable( bool editable );
85 
86 private:
87  GeoDataTourControl* tourControlElement();
88  QModelIndex m_index;
89  QToolButton *m_button;
90  QRadioButton *m_radio_play;
91  QRadioButton *m_radio_pause;
92 };
93 
94 class WaitEditWidget: public QWidget
95 {
96  Q_OBJECT
97 
98 public:
99  WaitEditWidget( const QModelIndex& index, QWidget* parent=0 );
100  bool editable() const;
101 
102 Q_SIGNALS:
103  void editingDone( const QModelIndex& index );
104 
105 private Q_SLOTS:
106  void save();
107 
108 public Q_SLOTS:
109  void setEditable( bool editable );
110 
111 private:
112  GeoDataWait* waitElement();
113  QModelIndex m_index;
114  QToolButton *m_button;
115  QDoubleSpinBox *m_spinBox;
116 };
117 
118 class SoundCueEditWidget: public QWidget
119 {
120  Q_OBJECT
121 
122 public:
123  SoundCueEditWidget( const QModelIndex& index, QWidget* parent=0 );
124  bool editable() const;
125 
126 Q_SIGNALS:
127  void editingDone( const QModelIndex& index );
128 
129 private Q_SLOTS:
130  void save();
131 
132 public Q_SLOTS:
133  void setEditable( bool editable );
134 
135 private:
136  GeoDataSoundCue* soundCueElement();
137  QModelIndex m_index;
138  QToolButton *m_button;
139  QLineEdit* m_lineEdit;
140 };
141 
142 class MARBLE_EXPORT TourWidget : public QWidget
143 {
144  Q_OBJECT
145 
146  public:
147  explicit TourWidget( QWidget *parent = 0, Qt::WindowFlags f = 0 );
148  ~TourWidget();
149 
150  void setMarbleWidget( MarbleWidget *widget );
151  bool openTour( const QString &filename );
152 
153 public Q_SLOTS:
154  void startPlaying();
155  void pausePlaying();
156  void togglePlaying();
157  void stopPlaying();
158  void handleSliderMove( int );
159 
160 Q_SIGNALS:
161  void featureUpdated( GeoDataFeature *feature );
162 
163 private Q_SLOTS:
164  void moveUp();
165  void moveDown();
166  void addFlyTo();
167  void deleteSelected();
168  void updateDuration();
169  void centerOn( const GeoDataCoordinates &coordinates );
170 
171  private:
172  Q_PRIVATE_SLOT( d, void openFile() )
173  Q_PRIVATE_SLOT( d, void createTour() )
174  Q_PRIVATE_SLOT( d, void saveTour() )
175  Q_PRIVATE_SLOT( d, void saveTourAs() )
176  Q_PRIVATE_SLOT( d, void updateButtonsStates() )
177  Q_PRIVATE_SLOT( d, void mapCenterOn( const QModelIndex &index ) )
178  Q_PRIVATE_SLOT( d, void handlePlaybackProgress( const double position ) )
179  Q_DISABLE_COPY( TourWidget )
180 
181  TourWidgetPrivate * const d;
182 };
183 
184 
185 class TourItemDelegate : public QStyledItemDelegate
186 {
187 Q_OBJECT
188 
189 public:
190  TourItemDelegate( QListView* view, MarbleWidget* widget );
191  void paint( QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index ) const;
192  QSize sizeHint( const QStyleOptionViewItem &option, const QModelIndex &index ) const;
193  QWidget* createEditor ( QWidget * parent, const QStyleOptionViewItem & option, const QModelIndex & index ) const;
194  bool editable() const;
195  void setEditable( bool editable );
196 
197 Q_SIGNALS:
198  void editingChanged( QModelIndex index );
199  void edited( QModelIndex index );
200  void editableChanged( bool editable );
201 
202 public:
203 
204  enum Element {
205  GeoDataElementIcon,
206  Label,
207  EditButton,
208  ActionButton
209  };
210 
211 protected:
212  bool editorEvent( QEvent *event, QAbstractItemModel *model, const QStyleOptionViewItem &option, const QModelIndex &index );
213 
214 private Q_SLOTS:
215  void closeEditor(const QModelIndex& index);
216 
217 private:
218  static QRect position( Element element, const QStyleOptionViewItem &option );
219  QList<QPersistentModelIndex> m_editingIndices;
220  QListView* m_listView;
221  MarbleWidget *m_widget;
222  bool m_editable;
223 };
224 
225 }
226 
227 #endif
Marble::WaitEditWidget::setEditable
void setEditable(bool editable)
Definition: TourWidget.cpp:953
QModelIndex
GeoDataCoordinates.h
Marble::TourItemDelegate::createEditor
QWidget * createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const
Definition: TourWidget.cpp:288
QEvent
Marble::GeoDataCoordinates
A 3d point representation.
Definition: GeoDataCoordinates.h:52
QWidget
Marble::TourItemDelegate::paint
void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
Definition: TourWidget.cpp:143
Marble::TourControlEditWidget::editingDone
void editingDone(const QModelIndex &index)
Marble::FlyToEditWidget::editingDone
void editingDone(const QModelIndex &index)
Marble::TourItemDelegate::setEditable
void setEditable(bool editable)
Definition: TourWidget.cpp:325
Marble::TourItemDelegate::Label
Definition: TourWidget.h:206
Marble::WaitEditWidget::WaitEditWidget
WaitEditWidget(const QModelIndex &index, QWidget *parent=0)
Definition: TourWidget.cpp:915
Marble::TourItemDelegate::TourItemDelegate
TourItemDelegate(QListView *view, MarbleWidget *widget)
Definition: TourWidget.cpp:136
Marble::SoundCueEditWidget
Definition: TourWidget.h:118
Marble::SoundCueEditWidget::editable
bool editable() const
Definition: TourWidget.cpp:989
Marble::TourWidget
Definition: TourWidget.h:142
Marble::WaitEditWidget
Definition: TourWidget.h:94
Marble::TourControlEditWidget
Definition: TourWidget.h:69
Marble::MarbleWidget
A widget class that displays a view of the earth.
Definition: MarbleWidget.h:104
Marble::TourItemDelegate
Definition: TourWidget.h:185
QObject::event
virtual bool event(QEvent *e)
QListView
Marble::TourItemDelegate::editorEvent
bool editorEvent(QEvent *event, QAbstractItemModel *model, const QStyleOptionViewItem &option, const QModelIndex &index)
Definition: TourWidget.cpp:333
Marble::TourControlEditWidget::TourControlEditWidget
TourControlEditWidget(const QModelIndex &index, QWidget *parent=0)
Definition: TourWidget.cpp:854
QRect
QDoubleSpinBox
Marble::GeoDataSoundCue
Definition: GeoDataSoundCue.h:19
Marble::TourControlEditWidget::editable
bool editable() const
Definition: TourWidget.cpp:887
Marble::GeoDataWait
Definition: GeoDataWait.h:19
QStyleOptionViewItem
Marble::GeoDataFlyTo
Definition: GeoDataFlyTo.h:23
MARBLE_EXPORT
#define MARBLE_EXPORT
Definition: marble_export.h:20
Marble::TourItemDelegate::sizeHint
QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const
Definition: TourWidget.cpp:281
QPainter
Marble::WaitEditWidget::editable
bool editable() const
Definition: TourWidget.cpp:942
Marble::TourItemDelegate::editable
bool editable() const
Definition: TourWidget.cpp:320
Marble::SoundCueEditWidget::SoundCueEditWidget
SoundCueEditWidget(const QModelIndex &index, QWidget *parent=0)
Definition: TourWidget.cpp:966
Marble::TourItemDelegate::editingChanged
void editingChanged(QModelIndex index)
QString
QList< QPersistentModelIndex >
Marble::FlyToEditWidget
Definition: TourWidget.h:45
Marble::Element
Definition: tools/osm-addresses/OsmParser.h:52
Marble::SoundCueEditWidget::editingDone
void editingDone(const QModelIndex &index)
Marble::TourItemDelegate::ActionButton
Definition: TourWidget.h:208
Marble::TourItemDelegate::editableChanged
void editableChanged(bool editable)
QToolButton
QSize
Marble::TourItemDelegate::Element
Element
Definition: TourWidget.h:204
QItemSelection
marble_export.h
QRadioButton
Marble::GeoDataFeature
A base class for all geodata features.
Definition: GeoDataFeature.h:57
Marble::FlyToEditWidget::FlyToEditWidget
FlyToEditWidget(const QModelIndex &index, MarbleWidget *widget, QWidget *parent=0)
Definition: TourWidget.cpp:792
Marble::WaitEditWidget::editingDone
void editingDone(const QModelIndex &index)
Marble::FlyToEditWidget::editable
bool editable() const
Definition: TourWidget.cpp:816
QAbstractItemModel
Marble::SoundCueEditWidget::setEditable
void setEditable(bool editable)
Definition: TourWidget.cpp:1000
createTour
GeoDataTour * createTour(const Route &route)
Definition: tour-preview.cpp:66
Qt::WindowFlags
typedef WindowFlags
QLineEdit
MarbleWidget
Wraps a Marble::MarbleWidget, providing access to important properties and methods.
Definition: MarbleDeclarativeWidget.h:50
Marble::TourItemDelegate::edited
void edited(QModelIndex index)
Marble::FlyToEditWidget::setEditable
void setEditable(bool editable)
Definition: TourWidget.cpp:841
QObject::parent
QObject * parent() const
Marble::TourItemDelegate::EditButton
Definition: TourWidget.h:207
Marble::TourItemDelegate::GeoDataElementIcon
Definition: TourWidget.h:205
Marble::GeoDataTourControl
Definition: GeoDataTourControl.h:19
QStyledItemDelegate
Marble::TourControlEditWidget::setEditable
void setEditable(bool editable)
Definition: TourWidget.cpp:902
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:13:42 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

marble

Skip menu "marble"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdeedu API Reference

Skip menu "kdeedu API Reference"
  • Analitza
  •     lib
  • kalgebra
  • kalzium
  •   libscience
  • kanagram
  • kig
  •   lib
  • klettres
  • marble
  • parley
  • rocs
  •   App
  •   RocsCore
  •   VisualEditor
  •   stepcore

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal