created sequence clip selection convenience function

This commit is contained in:
itsmattkc
2019-02-28 03:45:17 -08:00
parent c513276a1b
commit 70be7fa097
9 changed files with 154 additions and 134 deletions
+46
View File
@@ -79,6 +79,52 @@ void Sequence::RefreshClips(Media *m) {
}
}
QVector<Clip *> Sequence::SelectedClips()
{
QVector<Clip*> selected_clips;
for (int i=0;i<clips.size();i++) {
Clip* c = clips.at(i).get();
if (c != nullptr && IsClipSelected(c, true)) {
selected_clips.append(c);
}
}
return selected_clips;
}
QVector<int> Sequence::SelectedClipIndexes()
{
QVector<int> selected_clips;
for (int i=0;i<clips.size();i++) {
Clip* c = clips.at(i).get();
if (c != nullptr && IsClipSelected(c, true)) {
selected_clips.append(i);
}
}
return selected_clips;
}
bool Sequence::IsClipSelected(int clip_index, bool containing)
{
return IsClipSelected(clips.at(clip_index).get(), containing);
}
bool Sequence::IsClipSelected(Clip *clip, bool containing)
{
for (int i=0;i<selections.size();i++) {
const Selection& s = selections.at(i);
if (clip->track() == s.track && ((clip->timeline_in() >= s.in && clip->timeline_out() <= s.out && containing)
|| (!containing && !(clip->timeline_in() < s.in && clip->timeline_out() < s.in)
&& !(clip->timeline_in() > s.in && clip->timeline_out() > s.in)))) {
return true;
}
}
return false;
}
void Sequence::getTrackLimits(int* video_tracks, int* audio_tracks) {
int vt = 0;
int at = 0;
+5
View File
@@ -44,6 +44,11 @@ public:
int audio_layout;
void RefreshClips(Media* m = nullptr);
QVector<Clip*> SelectedClips();
QVector<int> SelectedClipIndexes();
bool IsClipSelected(int clip_index, bool containing);
bool IsClipSelected(Clip* clip, bool containing);
QVector<Selection> selections;
long playhead;
+7
View File
@@ -689,6 +689,13 @@ void EffectFieldUndo::doRedo() {
SetClipProperty::SetClipProperty(SetClipPropertyType type) : type_(type)
{}
void SetClipProperty::AddSetting(QVector<Clip *> clips, bool setting)
{
for (int i=0;i<clips.size();i++) {
AddSetting(clips.at(i), setting);
}
}
void SetClipProperty::AddSetting(Clip* c, bool setting)
{
clips_.append(c);
+1
View File
@@ -374,6 +374,7 @@ public:
SetClipProperty(SetClipPropertyType type);
virtual void doUndo() override;
virtual void doRedo() override;
void AddSetting(QVector<Clip *> clips, bool setting);
void AddSetting(Clip *c, bool setting);
private:
SetClipPropertyType type_;