11 #include "ui_timeline_ui.h"
12 #include "customruler.h"
13 #include "kdenlivedoc.h"
14 #include "documenttrack.h"
15 #include "trackpanelfunctionfactory.h"
16 #include "trackpanelfunction.h"
18 class TrackView : public QWidget
23 TrackView(KdenliveDoc *doc, QWidget *parent=0);
25 /** This event occurs when the mouse has been moved. */
26 void mouseMoveEvent(QMouseEvent * event);
28 const double zoomFactor() const;
29 DocumentTrack *panelAt(int y);
30 const int mapLocalToValue(int x) const;
31 void setEditMode(const QString & editMode);
32 const QString & editMode() const;
35 KdenliveDoc *document();
38 Ui::TimeLine_UI *view;
41 QList <DocumentTrack*> documentTracks;
42 int m_projectDuration;
43 TrackPanelFunctionFactory m_factory;
44 DocumentTrack *m_panelUnderMouse;
45 /** The currently applied function. This lasts from mousePressed until mouseRelease. */
46 TrackPanelFunction *m_function;
50 QVBoxLayout *m_tracksLayout;
51 QVBoxLayout *m_headersLayout;
52 QScrollArea *m_scrollArea;
54 QVBoxLayout *m_tracksAreaLayout;
55 void parseDocument(QDomDocument doc);
56 int slotAddAudioTrack(int ix, QDomElement xml);
57 int slotAddVideoTrack(int ix, QDomElement xml);
58 void registerFunction(const QString & name, TrackPanelFunction * function);
59 TrackPanelFunction *getApplicableFunction(DocumentTrack * panel, const QString & editMode, QMouseEvent * event);
62 void slotChangeZoom(int factor);