19 #ifndef TIMELINEDOCK_H 20 #define TIMELINEDOCK_H 22 #include <QDockWidget> 23 #include <QQuickWidget> 24 #include <QApplication> 25 #include "models/multitrackmodel.h" 26 #include "sharedframe.h" 37 class TimelineDock :
public QDockWidget
40 Q_PROPERTY(
int position READ position WRITE setPosition NOTIFY positionChanged)
41 Q_PROPERTY(
int currentTrack READ currentTrack WRITE setCurrentTrack NOTIFY currentTrackChanged)
42 Q_PROPERTY(QList<int> selection READ selection WRITE setSelection NOTIFY selectionChanged)
45 explicit TimelineDock(QWidget *parent = 0);
53 MultitrackModel* model() {
return &m_model; }
54 int position()
const {
return m_position; }
55 void setPosition(
int position);
56 Q_INVOKABLE QString timecode(
int frames);
57 Mlt::ClipInfo* getClipInfo(
int trackIndex,
int clipIndex);
58 Mlt::Producer* producerForClip(
int trackIndex,
int clipIndex);
59 int clipIndexAtPlayhead(
int trackIndex = -1);
60 int clipIndexAtPosition(
int trackIndex,
int position);
61 void chooseClipAtPosition(
int position,
int * trackIndex,
int * clipIndex);
62 void setCurrentTrack(
int currentTrack);
63 int currentTrack()
const;
64 int clipCount(
int trackIndex)
const;
68 void makeTracksShorter();
69 void makeTracksTaller();
70 void setSelection(QList<int> selection = QList<int>(),
int trackIndex = -1,
bool isMultitrack =
false);
71 QList<int> selection()
const;
72 void saveAndClearSelection();
73 void restoreSelection();
74 void selectClipUnderPlayhead();
75 int centerOfClip(
int trackIndex,
int clipIndex);
76 bool isTrackLocked(
int trackIndex)
const;
77 void trimClipAtPlayhead(TrimLocation location,
bool ripple);
78 bool isRipple()
const;
79 Q_INVOKABLE
bool isMultitrackSelected()
const {
return m_selection.isMultitrackSelected; }
80 Q_INVOKABLE
int selectedTrack()
const {
return m_selection.selectedTrack; }
83 void currentTrackChanged();
84 void selectionChanged();
85 void seeked(
int position);
86 void positionChanged();
87 void clipOpened(Mlt::Producer* producer);
88 void dragging(
const QPointF& pos,
int duration);
90 void dropAccepted(
const QString &xml);
91 void fadeInChanged(
int duration);
92 void fadeOutChanged(
int duration);
93 void selected(Mlt::Producer* producer);
95 void showStatusMessage(QString);
97 void clipMoved(
int fromTrack,
int toTrack,
int clipIndex,
int position);
98 void filteredClicked();
101 void addAudioTrack();
102 void addVideoTrack();
104 void onSeeked(
int position);
105 void append(
int trackIndex);
106 void remove(
int trackIndex,
int clipIndex);
107 bool mergeClipWithNext(
int trackIndex,
int clipIndex,
bool dryrun);
108 void lift(
int trackIndex,
int clipIndex);
109 void removeSelection(
bool withCopy =
false);
110 void liftSelection();
111 void selectTrack(
int by);
112 void selectTrackHead(
int trackIndex);
113 void selectMultitrack();
114 void copyClip(
int trackIndex,
int clipIndex);
115 void setTrackName(
int trackIndex,
const QString& value);
116 void toggleTrackMute(
int trackIndex);
117 void toggleTrackHidden(
int trackIndex);
118 void setTrackComposite(
int trackIndex,
bool composite);
119 void setTrackLock(
int trackIndex,
bool lock);
120 bool moveClip(
int fromTrack,
int toTrack,
int clipIndex,
int position);
121 void onClipMoved(
int fromTrack,
int toTrack,
int clipIndex,
int position);
122 bool trimClipIn(
int trackIndex,
int clipIndex,
int delta,
bool ripple);
123 bool trimClipOut(
int trackIndex,
int clipIndex,
int delta,
bool ripple);
124 void insert(
int trackIndex,
int position = -1,
const QString &xml = QString());
125 void overwrite(
int trackIndex,
int position = -1,
const QString &xml = QString());
126 void appendFromPlaylist(Mlt::Playlist* playlist);
127 void splitClip(
int trackIndex = -1,
int clipIndex = -1);
128 void fadeIn(
int trackIndex,
int clipIndex = -1,
int duration = -1);
129 void fadeOut(
int trackIndex,
int clipIndex = -1,
int duration = -1);
130 void seekPreviousEdit();
132 void seekInPoint(
int clipIndex);
133 void clearSelectionIfInvalid();
136 void onProducerChanged(Mlt::Producer*);
137 void emitSelectedFromSelection();
138 void remakeAudioLevels(
int trackIndex,
int clipIndex,
bool force =
true);
139 void commitTrimCommand();
142 void dragEnterEvent(QDragEnterEvent* event);
143 void dragMoveEvent(QDragMoveEvent* event);
144 void dragLeaveEvent(QDragLeaveEvent* event);
145 void dropEvent(QDropEvent* event);
146 bool event(QEvent *event);
147 void keyPressEvent(QKeyEvent* event);
148 void keyReleaseEvent(QKeyEvent* event);
151 bool isBlank(
int trackIndex,
int clipIndex);
152 void pulseLockButtonOnTrack(
int trackIndex);
154 Ui::TimelineDock *ui;
155 QQuickWidget m_quickView;
156 MultitrackModel m_model;
158 Timeline::UpdateCommand* m_updateCommand;
159 bool m_ignoreNextPositionChange;
161 QList<int> selectedClips;
163 bool isMultitrackSelected;
165 Selection m_selection;
166 Selection m_savedSelection;
167 QScopedPointer<Timeline::TrimCommand> m_trimCommand;
168 QScopedPointer<UndoHelper> m_undoHelper;
172 void load(
bool force =
false);
173 void onTopLevelChanged(
bool floating);
176 #endif // TIMELINEDOCK_H Definition: addencodepresetdialog.h:24
Definition: timelinecommands.cpp:25
The SharedFrame provides thread safe access to Mlt::Frame data.
Definition: sharedframe.h:48