X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Ftrackview.h;h=8b2e6da2aa1830bac7f29c433aeeef74f15c7286;hb=4a47150aaf6f75c45ddca8a071c3bc291117bdd3;hp=3bbf96472ca2c00ade3f4505f922aaf240878f43;hpb=3510284b258edff6a82442691cb2380fb4994922;p=kdenlive diff --git a/src/trackview.h b/src/trackview.h index 3bbf9647..8b2e6da2 100644 --- a/src/trackview.h +++ b/src/trackview.h @@ -27,57 +27,54 @@ #include #include #include +#include -#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 - const double zoomFactor() const; - DocumentTrack *panelAt(int y); - const int mapLocalToValue(int x) const; +public: + explicit TrackView(KdenliveDoc *doc, QWidget *parent = 0); + + double zoomFactor() const; + int mapLocalToValue(int x) const; void setEditMode(const QString & editMode); const QString & editMode() const; QGraphicsScene *projectScene(); CustomTrackView *projectView(); - int duration(); - int tracksNumber(); + int duration() const; + int tracksNumber() const; KdenliveDoc *document(); + void refresh() ; + int outPoint() const; + int inPoint() const; + int fitZoom() const; - public slots: - void slotDeleteClip(int clipId); +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; + QList m_invalidProducers; double m_scale; - QList 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; @@ -85,23 +82,26 @@ class TrackView : public QWidget 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