X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Ftrackview.h;h=d5d1eb41252cfe64807a13a51d63390a4fa4d885;hb=9429b50ed8a0e1529cf5736391fd73d2973a8feb;hp=6722bdded564742e829a8551bcac22304b5b7a70;hpb=d5e2d9e691b22dab741ed689df6d87478ba24c9f;p=kdenlive diff --git a/src/trackview.h b/src/trackview.h index 6722bdde..d5d1eb41 100644 --- a/src/trackview.h +++ b/src/trackview.h @@ -17,37 +17,42 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * ***************************************************************************/ +/** +* @class TrackView +* @brief Manages the timline +* @author Jean-Baptiste Mardelle +*/ #ifndef TRACKVIEW_H #define TRACKVIEW_H #include -#include -#include #include #include #include #include -#define FRAME_SIZE 90 +#include #include "customtrackscene.h" +#include "effectslist.h" #include "ui_timeline_ui.h" +#include "definitions.h" class ClipItem; class Transition; class CustomTrackView; class KdenliveDoc; class CustomRuler; +class DocClipBase; -class TrackView : public QWidget { +class TrackView : public QWidget, public Ui::TimeLine_UI +{ Q_OBJECT public: - TrackView(KdenliveDoc *doc, QWidget *parent = 0); - - const double zoomFactor() const; - const int mapLocalToValue(int x) const; + explicit TrackView(KdenliveDoc *doc, bool *ok, QWidget *parent = 0); + virtual ~ TrackView(); void setEditMode(const QString & editMode); const QString & editMode() const; QGraphicsScene *projectScene(); @@ -56,47 +61,85 @@ public: int tracksNumber() const; KdenliveDoc *document(); void refresh() ; + void updateProjectFps(); int outPoint() const; int inPoint() const; int fitZoom() const; + /** @brief Updates (redraws) the ruler. + * + * Used to change from displaying frames to timecode or vice versa. */ + void updateRuler(); + + /** @brief Parse tracks to see if project has audio in it. + * + * Parses all tracks to check if there is audio data. */ + bool checkProjectAudio() const; + +protected: + virtual void keyPressEvent(QKeyEvent * event); public slots: - void slotDeleteClip(int clipId); - void slotChangeZoom(int factor); + void slotDeleteClip(const QString &clipId); + void slotChangeZoom(int horizontal, int vertical = -1); void setDuration(int dur); + void slotSetZone(QPoint p); private: - Ui::TimeLine_UI *view; CustomRuler *m_ruler; CustomTrackView *m_trackview; + QList m_invalidProducers; double m_scale; int m_projectTracks; QString m_editMode; CustomTrackScene *m_scene; KdenliveDoc *m_doc; - QVBoxLayout *m_tracksLayout; - QVBoxLayout *m_headersLayout; - QScrollArea *m_scrollArea; - QFrame *m_scrollBox; - QVBoxLayout *m_tracksAreaLayout; + int m_verticalZoom; + QString m_documentErrors; void parseDocument(QDomDocument doc); - int slotAddProjectTrack(int ix, QDomElement xml, bool videotrack); + int slotAddProjectTrack(int ix, QDomElement xml, bool locked); + DocClipBase *getMissingProducer(const QString id) const; + void adjustTrackHeaders(); + void slotAddProjectEffects(QDomNodeList effects, QDomElement parentNode, ClipItem *clip, int trackIndex); private slots: void setCursorPos(int pos); void moveCursorPos(int pos); - void slotClipItemSelected(ClipItem*); - void slotTransitionItemSelected(Transition*); + /** @brief Rebuilds the track headers */ void slotRebuildTrackHeaders(); - + /** @brief The tracks count or a track name changed, rebuild and notify */ + void slotReloadTracks(); + void slotChangeTrackLock(int ix, bool lock); + void slotVerticalZoomDown(); + void slotVerticalZoomUp(); + + /** @brief Changes the name of a track. + * @param ix Number of the track + * @param name New name */ + void slotRenameTrack(int ix, QString name); + void slotRepaintTracks(); + + /** @brief Adjusts the margins of the header area. + * + * Avoid a shift between header area and trackview if + * the horizontal scrollbar is visible and the position + * of the vertical scrollbar is maximal */ + void slotUpdateVerticalScroll(int min, int max); + void slotShowTrackEffects(int); + /** @brief Update the track label showing applied effects.*/ + void slotUpdateTrackEffectState(int); signals: void mousePosition(int); void cursorMoved(); - void clipItemSelected(ClipItem*); - void transitionItemSelected(Transition*); + void zoneMoved(int, int); + void insertTrack(int); + void deleteTrack(int); + void configTrack(int); + void updateTracksInfo(); + void setZoom(int); + void showTrackEffects(int, TrackInfo); }; #endif