18 #ifndef PLAYLISTCOMMANDS_H
19 #define PLAYLISTCOMMANDS_H
21 #include "models/playlistmodel.h"
22 #include <QUndoCommand>
36 class AppendCommand :
public QUndoCommand
39 AppendCommand(PlaylistModel &model,
const QString &xml,
bool emitModified =
true,
40 QUndoCommand *parent = 0);
44 PlaylistModel &m_model;
50 class InsertCommand :
public QUndoCommand
53 InsertCommand(PlaylistModel &model,
const QString &xml,
int row, QUndoCommand *parent = 0);
57 PlaylistModel &m_model;
63 class UpdateCommand :
public QUndoCommand
66 UpdateCommand(PlaylistModel &model,
const QString &xml,
int row, QUndoCommand *parent = 0);
74 bool mergeWith(
const QUndoCommand *other);
76 PlaylistModel &m_model;
83 class RemoveCommand :
public QUndoCommand
86 RemoveCommand(PlaylistModel &model,
int row, QUndoCommand *parent = 0);
90 PlaylistModel &m_model;
96 class MoveCommand :
public QUndoCommand
99 MoveCommand(PlaylistModel &model,
int from,
int to, QUndoCommand *parent = 0);
103 PlaylistModel &m_model;
108 class ClearCommand :
public QUndoCommand
111 ClearCommand(PlaylistModel &model, QUndoCommand *parent = 0);
115 PlaylistModel &m_model;
117 QVector<QUuid> m_uuids;
120 class SortCommand :
public QUndoCommand
123 SortCommand(PlaylistModel &model,
int column, Qt::SortOrder order, QUndoCommand *parent = 0);
127 PlaylistModel &m_model;
129 Qt::SortOrder m_order;
131 QVector<QUuid> m_uuids;
134 class TrimClipInCommand :
public QUndoCommand
137 TrimClipInCommand(PlaylistModel &model,
int row,
int in, QUndoCommand *parent =
nullptr);
143 return UndoIdTrimClipIn;
145 bool mergeWith(
const QUndoCommand *other);
147 PlaylistModel &m_model;
154 class TrimClipOutCommand :
public QUndoCommand
157 TrimClipOutCommand(PlaylistModel &model,
int row,
int out, QUndoCommand *parent =
nullptr);
163 return UndoIdTrimClipOut;
165 bool mergeWith(
const QUndoCommand *other);
167 PlaylistModel &m_model;
174 class ReplaceCommand :
public QUndoCommand
177 ReplaceCommand(PlaylistModel &model,
const QString &xml,
int row, QUndoCommand *parent = 0);
181 PlaylistModel &m_model;
188 class NewBinCommand :
public QUndoCommand
191 NewBinCommand(PlaylistModel &model, QTreeWidget *tree,
const QString &bin,
192 QUndoCommand *parent = 0);
196 PlaylistModel &m_model;
197 QTreeWidget *m_binTree;
199 Mlt::Properties m_oldBins;
202 class MoveToBinCommand :
public QUndoCommand
205 MoveToBinCommand(PlaylistModel &model, QTreeWidget *tree,
const QString &bin,
206 const QList<int> &rows, QUndoCommand *parent = 0);
211 PlaylistModel &m_model;
212 QTreeWidget *m_binTree;
219 QList<oldData> m_oldData;
222 class RenameBinCommand :
public QUndoCommand
225 RenameBinCommand(PlaylistModel &model, QTreeWidget *tree,
const QString &bin,
226 const QString &newName = QString(), QUndoCommand *parent = 0);
229 static void rebuildBinList(PlaylistModel &model, QTreeWidget *binTree);
232 PlaylistModel &m_model;
233 QTreeWidget *m_binTree;
236 QList<int> m_removedRows;