]> git.sesse.net Git - kdenlive/blob - src/trackview.h
Add license, continue work on project tree view
[kdenlive] / src / trackview.h
1 #ifndef TRACKVIEW_H
2 #define TRACKVIEW_H
3
4 #include <QScrollArea>
5 #include <QVBoxLayout>
6 #include <KRuler>
7 #include <QGroupBox>
8
9 #define FRAME_SIZE 90
10
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"
17
18 class TrackView : public QWidget
19 {
20   Q_OBJECT
21   
22   public:
23     TrackView(KdenliveDoc *doc, QWidget *parent=0);
24
25         /** This event occurs when the mouse has been moved. */
26     void mouseMoveEvent(QMouseEvent * event);
27
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;
33
34   public slots:
35     KdenliveDoc *document();
36
37   private:
38     Ui::TimeLine_UI *view;
39     CustomRuler *m_ruler;
40     double m_scale;
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;
47     QString m_editMode;
48
49     KdenliveDoc *m_doc;
50     QVBoxLayout *m_tracksLayout;
51     QVBoxLayout *m_headersLayout;
52     QScrollArea *m_scrollArea;
53     QFrame *m_scrollBox;
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);
60
61   private slots:
62     void slotChangeZoom(int factor);
63 };
64
65 #endif