added some basic timeline functionality

This commit is contained in:
itsmattkc
2019-08-12 23:24:58 +10:00
parent 3eee9893f8
commit e9702aeb52
14 changed files with 264 additions and 59 deletions
+31 -12
View File
@@ -50,26 +50,45 @@ TimelineView::TimelineView(QWidget *parent) :
SetScale(1.0);
}
void TimelineView::AddClip(ClipBlock *clip)
void TimelineView::AddBlock(Block *block)
{
TimelineViewClipItem* clip_item = new TimelineViewClipItem();
switch (block->type()) {
case Block::kClip:
{
TimelineViewClipItem* clip_item = new TimelineViewClipItem();
ClipBlock* clip = static_cast<ClipBlock*>(block);
// Set up clip with view parameters (clip item will automatically size its rect accordingly)
clip_item->SetClip(clip);
clip_item->SetScale(scale_);
// Set up clip with view parameters (clip item will automatically size its rect accordingly)
clip_item->SetClip(clip);
clip_item->SetScale(scale_);
// Add to list of clip items that can be iterated through
clip_items_.insert(clip, clip_item);
// Add to list of clip items that can be iterated through
clip_items_.insert(clip, clip_item);
// Add item to graphics scene
scene_.addItem(clip_item);
connect(clip, SIGNAL(Refreshed()), this, SLOT(BlockChanged()));
break;
}
case Block::kGap:
{
clip_items_.insert(block, nullptr);
break;
}
case Block::kEnd:
// Do nothing
break;
}
// Add item to graphics scene
scene_.addItem(clip_item);
connect(clip, SIGNAL(Refreshed()), this, SLOT(BlockChanged()));
}
void TimelineView::RemoveClip(ClipBlock *clip)
void TimelineView::RemoveBlock(Block *block)
{
delete clip_items_[clip];
delete clip_items_[block];
clip_items_.remove(block);
}
void TimelineView::SetScale(const double &scale)