00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef TIME_LINE_H
00023 #define TIME_LINE_H
00024
00025 #include "ContextItem.h"
00026 #include <QDomNode>
00027 #include <QList>
00028 #include "defines.h"
00029
00030 class Sheet;
00031 class Marker;
00032 class Snappable;
00033 class Command;
00034
00035 class TimeLine : public ContextItem
00036 {
00037 Q_OBJECT
00038 public:
00039 TimeLine(Sheet* sheet);
00040 ~TimeLine() {};
00041
00042 QDomNode get_state(QDomDocument doc);
00043 int set_state(const QDomNode& node);
00044
00045 QList<Marker*> get_markers() const {return m_markers;}
00046 Sheet *get_sheet() const {return m_sheet;}
00047
00048 Marker* get_marker(qint64 id);
00049 Marker* get_end_marker();
00050 bool get_end_location(TimeRef& location);
00051 bool get_start_location(TimeRef& location);
00052 bool has_end_marker();
00053
00054 Command* add_marker(Marker* marker, bool historable=true);
00055 Command* remove_marker(Marker* marker, bool historable=true);
00056
00057 private:
00058 Sheet* m_sheet;
00059 QList<Marker*> m_markers;
00060 void index_markers();
00061
00062 private slots:
00063 void private_add_marker(Marker* marker);
00064 void private_remove_marker(Marker* marker);
00065 void marker_position_changed();
00066
00067 signals:
00068 void markerAdded(Marker*);
00069 void markerRemoved(Marker*);
00070 void markerPositionChanged();
00071 };
00072
00073 #endif
00074
00075