#include <QGroupBox>
#include <QGraphicsScene>
#include <QGraphicsLineItem>
+#include <QDomElement>
#define FRAME_SIZE 90
+#include "customtrackscene.h"
#include "ui_timeline_ui.h"
-#include "customruler.h"
-#include "kdenlivedoc.h"
-#include "documenttrack.h"
-#include "trackpanelfunctionfactory.h"
-#include "trackpanelfunction.h"
-#include "customtrackview.h"
-class TrackView : public QWidget
-{
- Q_OBJECT
-
- public:
- TrackView(KdenliveDoc *doc, QWidget *parent=0);
+class ClipItem;
+class Transition;
+class CustomTrackView;
+class KdenliveDoc;
+class CustomRuler;
+class DocClipBase;
- /** This event occurs when the mouse has been moved. */
- void mouseMoveEvent(QMouseEvent * event);
+class TrackView : public QWidget {
+ Q_OBJECT
+
+public:
+ TrackView(KdenliveDoc *doc, QWidget *parent = 0);
const double zoomFactor() const;
- DocumentTrack *panelAt(int y);
const int mapLocalToValue(int x) const;
void setEditMode(const QString & editMode);
const QString & editMode() const;
QGraphicsScene *projectScene();
CustomTrackView *projectView();
- int duration();
- int tracksNumber();
-
- public slots:
+ int duration() const;
+ int tracksNumber() const;
KdenliveDoc *document();
+ void refresh() ;
+ int outPoint() const;
+ int inPoint() const;
+ int fitZoom() const;
+
+public slots:
+ void slotDeleteClip(const QString &clipId);
+ void slotChangeZoom(int factor);
+ void setDuration(int dur);
+ void slotSetZone(QPoint p);
- private:
+private:
Ui::TimeLine_UI *view;
CustomRuler *m_ruler;
CustomTrackView *m_trackview;
double m_scale;
- QList <DocumentTrack*> documentTracks;
- int m_projectDuration;
int m_projectTracks;
- TrackPanelFunctionFactory m_factory;
- DocumentTrack *m_panelUnderMouse;
- /** The currently applied function. This lasts from mousePressed until mouseRelease. */
- TrackPanelFunction *m_function;
QString m_editMode;
- QGraphicsScene *m_scene;
- uint m_currentZoom;
-
+ CustomTrackScene *m_scene;
KdenliveDoc *m_doc;
QVBoxLayout *m_tracksLayout;
QScrollArea *m_scrollArea;
QFrame *m_scrollBox;
QVBoxLayout *m_tracksAreaLayout;
+ QString m_documentErrors;
void parseDocument(QDomDocument doc);
- int slotAddAudioTrack(int ix, QDomElement xml);
- int slotAddVideoTrack(int ix, QDomElement xml);
- void registerFunction(const QString & name, TrackPanelFunction * function);
- TrackPanelFunction *getApplicableFunction(DocumentTrack * panel, const QString & editMode, QMouseEvent * event);
+ int slotAddProjectTrack(int ix, QDomElement xml, bool locked);
+ DocClipBase *getMissingProducer(const QString id) const;
- private slots:
- void slotChangeZoom(int factor);
- void slotCursorMoved(int pos, bool slotCursorMoved = false);
- void slotZoomIn();
- void slotZoomOut();
+private slots:
+ void setCursorPos(int pos);
+ void moveCursorPos(int pos);
+ void slotTransitionItemSelected(Transition*, bool update);
+ void slotRebuildTrackHeaders();
+ void slotChangeTrackLock(int ix, bool lock);
- signals:
+signals:
void mousePosition(int);
+ void cursorMoved();
+ void transitionItemSelected(Transition*, bool);
+ void zoneMoved(int, int);
+ void insertTrack(int);
+ void deleteTrack(int);
+ void changeTrack(int);
};
#endif