21 #include "models/multitrackmodel.h" 22 #include "docks/timelinedock.h" 23 #include "undohelper.h" 24 #include <QUndoCommand> 27 #include <MltTransition.h> 37 UndoIdTrimTransitionIn,
38 UndoIdTrimTransitionOut,
39 UndoIdAddTransitionByTrimIn,
40 UndoIdAddTransitionByTrimOut,
44 class AppendCommand :
public QUndoCommand
47 AppendCommand(MultitrackModel& model,
int trackIndex,
const QString& xml, QUndoCommand * parent = 0);
51 MultitrackModel& m_model;
54 UndoHelper m_undoHelper;
57 class InsertCommand :
public QUndoCommand
60 InsertCommand(MultitrackModel& model,
int trackIndex,
int position,
const QString &xml, QUndoCommand * parent = 0);
64 MultitrackModel& m_model;
68 QStringList m_oldTracks;
69 UndoHelper m_undoHelper;
72 class OverwriteCommand :
public QUndoCommand
75 OverwriteCommand(MultitrackModel& model,
int trackIndex,
int position,
const QString &xml, QUndoCommand * parent = 0);
79 MultitrackModel& m_model;
83 UndoHelper m_undoHelper;
86 class LiftCommand :
public QUndoCommand
89 LiftCommand(MultitrackModel& model,
int trackIndex,
int clipIndex,
const QString &xml, QUndoCommand * parent = 0);
93 MultitrackModel& m_model;
97 UndoHelper m_undoHelper;
100 class RemoveCommand :
public QUndoCommand
103 RemoveCommand(MultitrackModel& model,
int trackIndex,
int clipIndex,
const QString &xml, QUndoCommand * parent = 0);
107 MultitrackModel& m_model;
111 UndoHelper m_undoHelper;
114 class NameTrackCommand :
public QUndoCommand
117 NameTrackCommand(MultitrackModel& model,
int trackIndex,
const QString& name, QUndoCommand * parent = 0);
121 MultitrackModel& m_model;
127 class MergeCommand :
public QUndoCommand
130 MergeCommand(MultitrackModel& model,
int trackIndex,
int clipIndex, QUndoCommand * parent = 0);
134 MultitrackModel& m_model;
137 UndoHelper m_undoHelper;
140 class MuteTrackCommand :
public QUndoCommand
143 MuteTrackCommand(MultitrackModel& model,
int trackIndex, QUndoCommand * parent = 0);
147 MultitrackModel& m_model;
152 class HideTrackCommand :
public QUndoCommand
155 HideTrackCommand(MultitrackModel& model,
int trackIndex, QUndoCommand * parent = 0);
159 MultitrackModel& m_model;
164 class CompositeTrackCommand :
public QUndoCommand
167 CompositeTrackCommand(MultitrackModel& model,
int trackIndex,
bool value, QUndoCommand * parent = 0);
171 MultitrackModel& m_model;
177 class LockTrackCommand :
public QUndoCommand
180 LockTrackCommand(MultitrackModel& model,
int trackIndex,
bool value, QUndoCommand * parent = 0);
184 MultitrackModel& m_model;
190 class MoveClipCommand :
public QUndoCommand
193 MoveClipCommand(MultitrackModel& model,
int fromTrackIndex,
int toTrackIndex,
int clipIndex,
int position,
bool ripple, QUndoCommand * parent = 0);
197 MultitrackModel& m_model;
198 int m_fromTrackIndex;
204 UndoHelper m_undoHelper;
207 class TrimCommand :
public QUndoCommand
210 explicit TrimCommand(QUndoCommand *parent = 0) : QUndoCommand(parent) {}
211 void setUndoHelper(UndoHelper* helper) { m_undoHelper.reset(helper); }
214 QScopedPointer<UndoHelper> m_undoHelper;
217 class TrimClipInCommand :
public TrimCommand
220 TrimClipInCommand(MultitrackModel& model,
int trackIndex,
int clipIndex,
int delta,
bool ripple,
bool redo =
true, QUndoCommand * parent = 0);
224 int id()
const {
return UndoIdTrimClipIn; }
225 bool mergeWith(
const QUndoCommand *other);
227 MultitrackModel& m_model;
235 class TrimClipOutCommand :
public TrimCommand
238 TrimClipOutCommand(MultitrackModel& model,
int trackIndex,
int clipIndex,
int delta,
bool ripple,
bool redo =
true, QUndoCommand * parent = 0);
242 int id()
const {
return UndoIdTrimClipOut; }
243 bool mergeWith(
const QUndoCommand *other);
245 MultitrackModel& m_model;
253 class SplitCommand :
public QUndoCommand
256 SplitCommand(MultitrackModel& model,
int trackIndex,
int clipIndex,
int position, QUndoCommand * parent = 0);
260 MultitrackModel& m_model;
266 class FadeInCommand :
public QUndoCommand
269 FadeInCommand(MultitrackModel& model,
int trackIndex,
int clipIndex,
int duration, QUndoCommand * parent = 0);
273 int id()
const {
return UndoIdFadeIn; }
274 bool mergeWith(
const QUndoCommand *other);
276 MultitrackModel& m_model;
283 class FadeOutCommand :
public QUndoCommand
286 FadeOutCommand(MultitrackModel& model,
int trackIndex,
int clipIndex,
int duration, QUndoCommand * parent = 0);
290 int id()
const {
return UndoIdFadeOut; }
291 bool mergeWith(
const QUndoCommand *other);
293 MultitrackModel& m_model;
300 class AddTransitionCommand :
public QUndoCommand
303 AddTransitionCommand(MultitrackModel& model,
int trackIndex,
int clipIndex,
int position,
bool ripple, QUndoCommand * parent = 0);
306 int getTransitionIndex()
const {
return m_transitionIndex; }
308 MultitrackModel& m_model;
312 int m_transitionIndex;
314 UndoHelper m_undoHelper;
317 class TrimTransitionInCommand :
public TrimCommand
320 TrimTransitionInCommand(MultitrackModel& model,
int trackIndex,
int clipIndex,
int delta,
bool redo =
true, QUndoCommand * parent = 0);
324 int id()
const {
return UndoIdTrimTransitionIn; }
325 bool mergeWith(
const QUndoCommand *other);
327 MultitrackModel& m_model;
335 class TrimTransitionOutCommand :
public TrimCommand
338 TrimTransitionOutCommand(MultitrackModel& model,
int trackIndex,
int clipIndex,
int delta,
bool redo =
true, QUndoCommand * parent = 0);
342 int id()
const {
return UndoIdTrimTransitionOut; }
343 bool mergeWith(
const QUndoCommand *other);
345 MultitrackModel& m_model;
353 class AddTransitionByTrimInCommand :
public TrimCommand
356 AddTransitionByTrimInCommand(MultitrackModel& model,
int trackIndex,
int clipIndex,
int duration,
int trimDelta,
bool redo =
true, QUndoCommand * parent = 0);
360 int id()
const {
return UndoIdAddTransitionByTrimIn; }
361 bool mergeWith(
const QUndoCommand *other);
363 MultitrackModel& m_model;
372 class RemoveTransitionByTrimInCommand :
public TrimCommand
375 RemoveTransitionByTrimInCommand(MultitrackModel& model,
int trackIndex,
int clipIndex,
int delta,
bool redo =
true, QUndoCommand * parent = 0);
379 MultitrackModel& m_model;
386 class RemoveTransitionByTrimOutCommand :
public TrimCommand
389 RemoveTransitionByTrimOutCommand(MultitrackModel& model,
int trackIndex,
int clipIndex,
int delta,
bool redo =
true, QUndoCommand * parent = 0);
393 MultitrackModel& m_model;
400 class AddTransitionByTrimOutCommand :
public TrimCommand
403 AddTransitionByTrimOutCommand(MultitrackModel& model,
int trackIndex,
int clipIndex,
int duration,
int trimDelta,
bool redo =
true, QUndoCommand * parent = 0);
407 int id()
const {
return UndoIdAddTransitionByTrimOut; }
408 bool mergeWith(
const QUndoCommand *other);
410 MultitrackModel& m_model;
419 class AddTrackCommand:
public QUndoCommand
422 AddTrackCommand(MultitrackModel& model,
bool isVideo, QUndoCommand* parent = 0);
426 MultitrackModel& m_model;
431 class InsertTrackCommand :
public QUndoCommand
434 InsertTrackCommand(MultitrackModel& model,
int trackIndex, QUndoCommand* parent = 0);
438 MultitrackModel& m_model;
440 TrackType m_trackType;
443 class RemoveTrackCommand :
public QUndoCommand
446 RemoveTrackCommand(MultitrackModel& model,
int trackIndex, QUndoCommand* parent = 0);
450 MultitrackModel& m_model;
452 TrackType m_trackType;
454 UndoHelper m_undoHelper;
457 class ChangeBlendModeCommand :
public QObject,
public QUndoCommand
461 ChangeBlendModeCommand(Mlt::Transition& transition,
const QString& propertyName,
const QString& mode, QUndoCommand* parent = 0);
465 void modeChanged(QString& mode);
467 Mlt::Transition m_transition;
468 QString m_propertyName;
473 class UpdateCommand :
public QUndoCommand
476 UpdateCommand(TimelineDock& timeline,
int trackIndex,
int clipIndex,
int position,
477 QUndoCommand * parent = 0);
478 void setXmlAfter(
const QString& xml) { m_xmlAfter = xml; }
479 void setPosition(
int trackIndex,
int clipIndex,
int position);
480 int trackIndex()
const {
return m_trackIndex;}
481 int clipIndex()
const {
return m_clipIndex;}
482 int position()
const {
return m_position;}
486 TimelineDock& m_timeline;
492 UndoHelper m_undoHelper;
495 class DetachAudioCommand:
public QUndoCommand
498 DetachAudioCommand(MultitrackModel& model,
int trackIndex,
int clipIndex,
int position,
const QString& xml, QUndoCommand* parent = 0);
502 MultitrackModel& m_model;
506 int m_targetTrackIndex;
507 QString m_audioIndex;
509 UndoHelper m_undoHelper;