From 7704e004430b34b506654d39874034e49d61ec49 Mon Sep 17 00:00:00 2001 From: Thomas Wilshaw Date: Tue, 29 Sep 2020 14:14:21 +0100 Subject: [PATCH] Cleanup --- .../projectexplorer/projectexplorer.cpp | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/app/widget/projectexplorer/projectexplorer.cpp b/app/widget/projectexplorer/projectexplorer.cpp index 2294ea413..b63a40919 100644 --- a/app/widget/projectexplorer/projectexplorer.cpp +++ b/app/widget/projectexplorer/projectexplorer.cpp @@ -542,7 +542,7 @@ void ProjectExplorer::DeselectAll() QMap ProjectExplorer::GetFootageNodes(Item* item) { // Output list list - QMap nodes; + QMap footage_nodes; // Get all sequences. QList sequences = model_.project()->get_items_of_type(Item::kSequence); @@ -564,7 +564,7 @@ QMap ProjectExplorer::GetFootageNodes(Item* item) if (node->IsMedia()){ // Check the streams are the same if (static_cast(node)->footage() == stream) { - nodes.insert(node, stream); + footage_nodes.insert(node, stream); } } } @@ -572,7 +572,7 @@ QMap ProjectExplorer::GetFootageNodes(Item* item) } } } - return nodes; + return footage_nodes; } QList ProjectExplorer::GetFootageBlocks(QList nodes) @@ -594,11 +594,13 @@ QList ProjectExplorer::GetFootageBlocks(QList nodes) QSet intersection = QSet(dependancies.begin(), dependancies.end()) .intersect(QSet(nodes.begin(), nodes.end())); if (!intersection.isEmpty()) { + // Count how many Media inputs this block depends on foreach (Node* dep, dependancies) { if (dep->IsMedia()) { footage_deps++; } } + // If it only depends on one input we can safely delete it if (footage_deps == 1) { blocks.append(static_cast(node)); } @@ -665,20 +667,20 @@ void ProjectExplorer::DeleteSelected() if (item_ptr->type() == Item::kFootage) { // Check if nodes exists - QMap nodes = GetFootageNodes(item); - if (!nodes.isEmpty()){ + QMap footage_nodes = GetFootageNodes(item); + if (!footage_nodes.isEmpty()){ // Warn user and ask them what to do FootageDeleteResponse response = DeleteWarningMessage(item); if (response == kOffline) { - new ProjectViewModel::OfflineFootageCommand(&model_, item_ptr, nodes, command); + new ProjectViewModel::OfflineFootageCommand(&model_, item_ptr, footage_nodes, command); } if (response == kDelete) { QUndoCommand* deleteCommand = new QUndoCommand(command); - TimelineWidget::ReplaceBlocksWithGaps(GetFootageBlocks(nodes.keys()), true, deleteCommand); + // Delete any non-composite blocks + TimelineWidget::ReplaceBlocksWithGaps(GetFootageBlocks(footage_nodes.keys()), true, deleteCommand); new ProjectViewModel::RemoveItemCommand(&model_, item_ptr, command); - //Core::instance()->undo_stack()->pushIfHasChildren(command); - // Catch any input nodes we missed do to complex composites etc. + // Catch any input nodes we missed due to composites etc. QList sequences = model_.project()->get_items_of_type(Item::kSequence); @@ -687,7 +689,7 @@ void ProjectExplorer::DeleteSelected() Sequence* s = static_cast(seq.get()); foreach (Node* node, s->nodes()) { if (node->IsMedia()) { - if (nodes.contains(node)) { + if (footage_nodes.contains(node)) { nodes_to_delete.append(node); } }