workarea in/out added #108
This commit is contained in:
@@ -5,7 +5,11 @@
|
||||
|
||||
#include <QDebug>
|
||||
|
||||
Sequence::Sequence() {}
|
||||
Sequence::Sequence() :
|
||||
using_workarea(false),
|
||||
workarea_in(0),
|
||||
workarea_out(0)
|
||||
{}
|
||||
|
||||
Sequence::~Sequence() {
|
||||
// dealloc all clips
|
||||
|
||||
@@ -23,6 +23,10 @@ public:
|
||||
double frame_rate;
|
||||
int audio_frequency;
|
||||
int audio_layout;
|
||||
|
||||
bool using_workarea;
|
||||
long workarea_in;
|
||||
long workarea_out;
|
||||
private:
|
||||
QVector<Clip*> clips;
|
||||
};
|
||||
|
||||
+40
-1
@@ -24,7 +24,12 @@ QUndoStack undo_stack;
|
||||
#define TA_ADD_CLIP_IN 7
|
||||
#define TA_ADD_TRACK 8
|
||||
|
||||
TimelineAction::TimelineAction() : done(false), change_seq(false), ripple_enabled(false) {}
|
||||
TimelineAction::TimelineAction() :
|
||||
done(false),
|
||||
change_seq(false),
|
||||
ripple_enabled(false),
|
||||
change_in_out(false)
|
||||
{}
|
||||
|
||||
TimelineAction::~TimelineAction() {
|
||||
for (int i=0;i<clips_to_add.size();i++) {
|
||||
@@ -129,6 +134,25 @@ void TimelineAction::delete_media(QTreeWidgetItem* item) {
|
||||
deleted_media.append(item);
|
||||
}
|
||||
|
||||
void TimelineAction::ripple(Sequence* s, long point, long length) {
|
||||
QVector<int> i;
|
||||
ripple(s, point, length, i);
|
||||
}
|
||||
|
||||
void TimelineAction::set_in_out(Sequence* s, bool enabled, long in, long out) {
|
||||
change_in_out = true;
|
||||
change_in_out_sequence = s;
|
||||
|
||||
old_in_out_enabled = s->using_workarea;
|
||||
old_sequence_in = s->workarea_in;
|
||||
old_sequence_out = s->workarea_out;
|
||||
|
||||
new_in_out_enabled = enabled;
|
||||
new_sequence_in = in;
|
||||
new_sequence_out = out;
|
||||
|
||||
}
|
||||
|
||||
void TimelineAction::ripple(Sequence* s, long point, long length, QVector<int>& ignore) {
|
||||
ripple_enabled = true;
|
||||
ripple_point = point;
|
||||
@@ -220,6 +244,14 @@ void TimelineAction::undo() {
|
||||
}
|
||||
}
|
||||
|
||||
// un-change workarea
|
||||
if (change_in_out) {
|
||||
change_in_out_sequence->using_workarea = old_in_out_enabled;
|
||||
change_in_out_sequence->workarea_in = old_sequence_in;
|
||||
change_in_out_sequence->workarea_out = old_sequence_out;
|
||||
}
|
||||
|
||||
// un-change current active sequence
|
||||
if (change_seq) {
|
||||
set_sequence(old_seq);
|
||||
}
|
||||
@@ -388,6 +420,13 @@ void TimelineAction::redo() {
|
||||
}
|
||||
}
|
||||
|
||||
// change sequence workarea
|
||||
if (change_in_out) {
|
||||
change_in_out_sequence->using_workarea = new_in_out_enabled;
|
||||
change_in_out_sequence->workarea_in = new_sequence_in;
|
||||
change_in_out_sequence->workarea_out = new_sequence_out;
|
||||
}
|
||||
|
||||
// change current sequence
|
||||
if (change_seq) {
|
||||
old_seq = sequence;
|
||||
|
||||
@@ -30,7 +30,9 @@ public:
|
||||
void delete_clip(Sequence* s, int clip);
|
||||
void add_media(QTreeWidgetItem* item);
|
||||
void delete_media(QTreeWidgetItem* item);
|
||||
void ripple(Sequence* s, long point, long length);
|
||||
void ripple(Sequence* s, long point, long length, QVector<int> &ignore);
|
||||
void set_in_out(Sequence* s, bool enabled, long in, long out);
|
||||
void undo();
|
||||
void redo();
|
||||
private:
|
||||
@@ -73,6 +75,15 @@ private:
|
||||
QVector<int> rippled_clips;
|
||||
QVector<int> ripple_ignores;
|
||||
|
||||
bool change_in_out;
|
||||
Sequence* change_in_out_sequence;
|
||||
bool old_in_out_enabled;
|
||||
bool new_in_out_enabled;
|
||||
long old_sequence_in;
|
||||
long new_sequence_in;
|
||||
long old_sequence_out;
|
||||
long new_sequence_out;
|
||||
|
||||
void new_action(Sequence* s, int action, int clip, long old_val, long new_val);
|
||||
void offset_links(QVector<Clip*>& clips, int offset);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user