18#ifndef SUBTITLECOMMANDS_H
19#define SUBTITLECOMMANDS_H
21#include "models/subtitlesmodel.h"
23#include <QUndoCommand>
34class InsertTrackCommand :
public QUndoCommand
37 InsertTrackCommand(SubtitlesModel &model,
const SubtitlesModel::SubtitleTrack &track,
int index);
42 SubtitlesModel &m_model;
43 SubtitlesModel::SubtitleTrack m_track;
47class RemoveTrackCommand :
public QUndoCommand
50 RemoveTrackCommand(SubtitlesModel &model,
int trackIndex);
55 SubtitlesModel &m_model;
57 SubtitlesModel::SubtitleTrack m_saveTrack;
58 QList<Subtitles::SubtitleItem> m_saveSubtitles;
61class EditTrackCommand :
public QUndoCommand
64 EditTrackCommand(SubtitlesModel &model,
const SubtitlesModel::SubtitleTrack &track,
int index);
69 SubtitlesModel &m_model;
70 SubtitlesModel::SubtitleTrack m_oldTrack;
71 SubtitlesModel::SubtitleTrack m_newTrack;
75class OverwriteSubtitlesCommand :
public QUndoCommand
78 OverwriteSubtitlesCommand(SubtitlesModel &model,
80 const QList<Subtitles::SubtitleItem> &items);
85 QList<Subtitles::SubtitleItem> m_newSubtitles;
88 SubtitlesModel &m_model;
90 QList<Subtitles::SubtitleItem> m_saveSubtitles;
93class RemoveSubtitlesCommand :
public QUndoCommand
96 RemoveSubtitlesCommand(SubtitlesModel &model,
98 const QList<Subtitles::SubtitleItem> &items);
103 SubtitlesModel &m_model;
105 QList<Subtitles::SubtitleItem> m_items;
108class SetTextCommand :
public QUndoCommand
111 SetTextCommand(SubtitlesModel &model,
int trackIndex,
int itemIndex,
const QString &text);
116 int id()
const {
return UndoIdSubText; }
117 bool mergeWith(
const QUndoCommand *other);
120 SubtitlesModel &m_model;
127class SetStartCommand :
public QUndoCommand
130 SetStartCommand(SubtitlesModel &model,
int trackIndex,
int itemIndex, int64_t msTime);
135 int id()
const {
return UndoIdSubStart; }
136 bool mergeWith(
const QUndoCommand *other);
139 SubtitlesModel &m_model;
146class SetEndCommand :
public QUndoCommand
149 SetEndCommand(SubtitlesModel &model,
int trackIndex,
int itemIndex, int64_t msTime);
154 int id()
const {
return UndoIdSubEnd; }
155 bool mergeWith(
const QUndoCommand *other);
158 SubtitlesModel &m_model;
165class MoveSubtitlesCommand :
public QUndoCommand
168 MoveSubtitlesCommand(SubtitlesModel &model,
170 const QList<Subtitles::SubtitleItem> &items,
176 int id()
const {
return UndoIdSubMove; }
177 bool mergeWith(
const QUndoCommand *other);
180 SubtitlesModel &m_model;
182 QList<Subtitles::SubtitleItem> m_oldSubtitles;
183 QList<Subtitles::SubtitleItem> m_newSubtitles;