diff --git a/app/node/block/clip/clip.h b/app/node/block/clip/clip.h index 57b1daa4f..9176341eb 100644 --- a/app/node/block/clip/clip.h +++ b/app/node/block/clip/clip.h @@ -73,6 +73,8 @@ public: virtual void Retranslate() override; + void RerequestCaches() { RequestInvalidatedFromConnected(); } + double speed() const { return GetStandardValue(kSpeedInput).toDouble(); diff --git a/app/widget/timelinewidget/tool/import.cpp b/app/widget/timelinewidget/tool/import.cpp index 3914e137f..73a100bff 100644 --- a/app/widget/timelinewidget/tool/import.cpp +++ b/app/widget/timelinewidget/tool/import.cpp @@ -401,6 +401,8 @@ void ImportTool::DropGhosts(bool insert) } } + std::list imported_clips; + if (dst_graph) { QVector block_items(parent()->GetGhostItems().size()); @@ -471,6 +473,8 @@ void ImportTool::DropGhosts(bool insert) Block::Link(block_items.at(j), clip); } } + + imported_clips.push_back(clip); } else if (track_type == Track::kSubtitle) { Subtitle src = ghost->GetData(TimelineViewGhostItem::kAttachedFootage).value(); SubtitleBlock *sub = new SubtitleBlock(); @@ -498,6 +502,11 @@ void ImportTool::DropGhosts(bool insert) Core::instance()->undo_stack()->pushIfHasChildren(command); + while (!imported_clips.empty()) { + imported_clips.front()->RerequestCaches(); + imported_clips.pop_front(); + } + parent()->ClearGhosts(); dragged_footage_.clear(); }