rock_widget_collection  0.1
Timeline.h
Go to the documentation of this file.
1 /****************************************************************************
2  *
3  * Timeline Main Widget.
4  *
5  * @author Allan E. Conquest - allan.conquest@dfki.de
6  *
7  ***************************************************************************/
8 
9 #ifndef TIMELINE_H
10 #define TIMELINE_H
11 
12 #include <QtGui>
13 #include "BoundarySlider.h"
14 #include "SlideBarItem.h"
15 
25 class Timeline : public QGraphicsView
26 {
27  Q_OBJECT
30  Q_PROPERTY(int margin_lr READ getMarginLR WRITE setMarginLR)
32  Q_PROPERTY(int width READ getWidth WRITE setWidth)
33  Q_PROPERTY(unsigned minIndex READ getMinIndex WRITE setMinIndex)
34  Q_PROPERTY(unsigned steps READ getSteps WRITE setSteps)
35  Q_PROPERTY(unsigned stepSize READ getStepSize WRITE setStepSize)
36 
37 public:
38  Timeline(QWidget* parent = 0);
39 
40 public slots:
41  /* Property functions */
42  int getBookmarkHeight() const;
43  void setBookmarkHeight(int height);
44  int getMarginTopBot();
45  void setMarginTopBot(int margin);
46  int getMarginLR();
47  void setMarginLR(int margin);
48  const QColor& getBackgroundColor() const;
49  void setBackgroundColor(const QColor & color);
50  int getWidth();
51  void setWidth(int width);
52  int getMinIndex();
53  void setMinIndex(int minIndex);
54  int getSteps();
55  void setSteps(int steps);
56  int getStepSize();
57  void setStepSize(int stepSize);
58 
59  /* Other slots */
60 
64  int getMaxIndex();
65 
69  int getSliderIndex();
70 
74  int getStartMarkerIndex();
75 
79  void setStartMarkerIndex(int idx);
80 
84  int getEndMarkerIndex();
85 
89  void setEndMarkerIndex(int idx);
90 
94  void setSliderIndex(int idx);
95 
99  void addBookmark(int idx);
100 
104  void addBookmarks(QVector<int> bookmarks);
105 
109  void removeBookmark(int idx);
110 
114  void removeAllBookmarks();
115 
119  bool hasBookmarkAtIndex(int idx);
120 
121 signals:
122 
123  void indexSliderClicked();
124  void endMarkerClicked();
125  void startMarkerClicked();
126  void indexSliderReleased(int idx);
127  void startMarkerMoved(int idx);
128  void endMarkerMoved(int idx);
129  void indexSliderMoved(int idx);
130  void startMarkerReleased(int idx);
131  void endMarkerReleased(int idx);
132 
133  void bookmarkClicked(int idx);
134  void bookmarkRemoved(int idx);
135  void timeout();
136 
137 protected:
138  void resizeEvent(QResizeEvent * event);
139 
140 private slots:
141  void bookmarkClickedSlot(int idx);
142  void fireTimeout();
143  void sliderReleased(Slider* slider, int idx);
144  void sliderMoved(Slider* slider, int idx);
145  void sliderClicked(Slider* slider);
146 
147 private:
148  int ordered_width;
149  QGraphicsScene *scene;
150  SlideBarItem *slidebar;
151  BoundarySlider *startmarker;
152  BoundarySlider *endmarker;
153  QVector<int> bookmarks;
154  QTimer *timer;
155  bool reconfigure_slidebar;
156 
157  int bookmarkHeight;
158  int marginTopBot;
159  int marginLR;
160  QColor bgColor;
161  unsigned minIndex;
162  unsigned steps;
163  unsigned stepSize;
164 
165  void updateScene();
166  void updateScene(QSizeF newsize);
167  void setSliderIndex(int idx, Slider* slider);
168  void reconfigureSlidebar();
169 
170 };
171 
172 #endif // TIMELINE_H
void bookmarkRemoved(int idx)
int getMarginLR()
Definition: Timeline.cc:85
Definition: Slider.h:7
void addBookmarks(QVector< int > bookmarks)
Definition: Timeline.cc:178
int getStartMarkerIndex()
Definition: Timeline.cc:140
void setBookmarkHeight(int height)
Definition: Timeline.cc:73
int getSteps()
Definition: Timeline.cc:118
void indexSliderClicked()
bool hasBookmarkAtIndex(int idx)
Definition: Timeline.cc:201
void removeBookmark(int idx)
Definition: Timeline.cc:185
void setStartMarkerIndex(int idx)
Definition: Timeline.cc:144
void setMinIndex(int minIndex)
Definition: Timeline.cc:113
void setSliderIndex(int idx)
Definition: Timeline.cc:157
void timeout()
int margin_lr
Definition: Timeline.h:30
int getSliderIndex()
Definition: Timeline.cc:136
void setBackgroundColor(const QColor &color)
Definition: Timeline.cc:97
void removeAllBookmarks()
Definition: Timeline.cc:196
void bookmarkClicked(int idx)
void setStepSize(int stepSize)
Definition: Timeline.cc:131
QColor backgroundColor
Definition: Timeline.h:31
int bookmark_height
Definition: Timeline.h:28
unsigned minIndex READ
Definition: Timeline.h:33
void setEndMarkerIndex(int idx)
Definition: Timeline.cc:153
int getBookmarkHeight() const
Definition: Timeline.cc:69
int margin_topbot
Definition: Timeline.h:29
int getWidth()
Definition: Timeline.cc:101
int getStepSize()
Definition: Timeline.cc:127
void startMarkerMoved(int idx)
void setSteps(int steps)
Definition: Timeline.cc:122
void endMarkerClicked()
int getMinIndex()
Definition: Timeline.cc:109
void endMarkerMoved(int idx)
int getMaxIndex()
Definition: Timeline.cc:296
void indexSliderReleased(int idx)
void endMarkerReleased(int idx)
void resizeEvent(QResizeEvent *event)
Definition: Timeline.cc:210
void setMarginLR(int margin)
Definition: Timeline.cc:89
void indexSliderMoved(int idx)
int getMarginTopBot()
Definition: Timeline.cc:77
int getEndMarkerIndex()
Definition: Timeline.cc:149
const QColor & getBackgroundColor() const
Definition: Timeline.cc:93
void startMarkerClicked()
void startMarkerReleased(int idx)
void setWidth(int width)
Definition: Timeline.cc:105
void addBookmark(int idx)
Definition: Timeline.cc:168
int width
Definition: Timeline.h:32
void setMarginTopBot(int margin)
Definition: Timeline.cc:81