#ifndef UNDO_H #define UNDO_H #include #include #include #include "project/clip.h" #include "project/sequence.h" extern QUndoStack undo_stack; class TimelineAction : public QUndoCommand { public: TimelineAction(); ~TimelineAction(); void add_clips(QVector& add); void set_timeline_in(int clip, long value); void increase_timeline_in(int clip, long value); void set_timeline_out(int clip, long value); void increase_timeline_out(int clip, long value); void set_clip_in(int clip, long value); void increase_clip_in(int clip, long value); void set_track(int clip, int value); void increase_track(int clip, int value); void delete_clip(int clip); void undo(); void redo(); private: QVector actions; QVector clips; QVector old_values; QVector new_values; QVector deleted_clips; QVector deleted_clips_indices; QVector clips_to_add; QVector added_indexes; void new_action(int action, int clip, long old_val, long new_val); void offset_links(QVector& clips, int offset); QVector removed_link_from; QVector removed_link_to; bool done; }; #endif // UNDO_H