From fd6319b837c809db9679c63226a7dda610ff09fc Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Sun, 14 Mar 2021 21:51:47 +1100 Subject: [PATCH] fixed regression from switching folder from outputs to inputs --- app/core.cpp | 2 +- app/project/item/folder/folder.h | 29 ++++++++++--------- app/project/project.cpp | 2 +- app/task/project/saveotio/saveotio.cpp | 2 +- .../projectexplorer/projectexplorer.cpp | 2 +- app/window/mainwindow/mainwindow.cpp | 4 +-- 6 files changed, 22 insertions(+), 19 deletions(-) diff --git a/app/core.cpp b/app/core.cpp index 969ad5196..71dece504 100644 --- a/app/core.cpp +++ b/app/core.cpp @@ -1293,7 +1293,7 @@ void Core::CacheActiveSequence(bool in_out_only) bool Core::ValidateFootageInLoadedProject(Project* project, const QString& project_saved_url) { - QVector project_footage = project->root()->ListOutputsOfType(); + QVector project_footage = project->root()->ListChildrenOfType(); QVector footage_we_couldnt_validate; foreach (Footage* footage, project_footage) { diff --git a/app/project/item/folder/folder.h b/app/project/item/folder/folder.h index 8c3c2244d..c362391c4 100644 --- a/app/project/item/folder/folder.h +++ b/app/project/item/folder/folder.h @@ -88,19 +88,6 @@ public: return true; } - /** - * @brief Returns a list of nodes that are of a certain type that this node outputs to - */ - template - QVector ListOutputsOfType(bool recursive = true) const - { - QVector list; - - ListOutputsOfTypeInternal(this, list, recursive); - - return list; - } - int index_of_child(Node* item) const { return item_children_.indexOf(item); @@ -108,6 +95,22 @@ public: int index_of_child_in_array(Node* item) const; + template + QVector ListChildrenOfType() const + { + QVector list; + + foreach (Node* node, item_children_) { + T* cast_test = dynamic_cast(node); + + if (cast_test) { + list.append(cast_test); + } + } + + return list; + } + static const QString kChildInput; signals: diff --git a/app/project/project.cpp b/app/project/project.cpp index 3dfbde3c9..f3afb83b0 100644 --- a/app/project/project.cpp +++ b/app/project/project.cpp @@ -283,7 +283,7 @@ void Project::ColorManagerValueChanged(const NodeInput &input, const TimeRange & { Q_UNUSED(range) - QVector footage = root()->ListOutputsOfType(); + QVector footage = root()->ListChildrenOfType(); foreach (Footage* item, footage) { item->InvalidateAll(QString()); diff --git a/app/task/project/saveotio/saveotio.cpp b/app/task/project/saveotio/saveotio.cpp index 33b75f6c8..552b24d4d 100644 --- a/app/task/project/saveotio/saveotio.cpp +++ b/app/task/project/saveotio/saveotio.cpp @@ -38,7 +38,7 @@ SaveOTIOTask::SaveOTIOTask(Project *project) : bool SaveOTIOTask::Run() { - QVector sequences = project_->root()->ListOutputsOfType(); + QVector sequences = project_->root()->ListChildrenOfType(); if (sequences.isEmpty()) { SetError(tr("Project contains no sequences to export.")); diff --git a/app/widget/projectexplorer/projectexplorer.cpp b/app/widget/projectexplorer/projectexplorer.cpp index f0b627fbb..19d0f03a3 100644 --- a/app/widget/projectexplorer/projectexplorer.cpp +++ b/app/widget/projectexplorer/projectexplorer.cpp @@ -319,7 +319,7 @@ void ProjectExplorer::ShowContextMenu() Menu* proxy_menu = new Menu(tr("Pre-Cache"), &menu); menu.addMenu(proxy_menu); - QVector sequences = project()->root()->ListOutputsOfType(); + QVector sequences = project()->root()->ListChildrenOfType(); if (sequences.isEmpty()) { QAction* a = proxy_menu->addAction(tr("No sequences exist in project")); diff --git a/app/window/mainwindow/mainwindow.cpp b/app/window/mainwindow/mainwindow.cpp index 4d3158fff..d45098abc 100644 --- a/app/window/mainwindow/mainwindow.cpp +++ b/app/window/mainwindow/mainwindow.cpp @@ -329,7 +329,7 @@ void MainWindow::ProjectOpen(Project *p) void MainWindow::ProjectClose(Project *p) { // Close any open sequences from project - QVector open_sequences = p->root()->ListOutputsOfType(); + QVector open_sequences = p->root()->ListChildrenOfType(); foreach (Sequence* seq, open_sequences) { if (IsSequenceOpen(seq)) { @@ -338,7 +338,7 @@ void MainWindow::ProjectClose(Project *p) } // Close any open footage in footage viewer - QVector footage_in_project = p->root()->ListOutputsOfType(); + QVector footage_in_project = p->root()->ListChildrenOfType(); QVector footage_in_viewer = footage_viewer_panel_->GetSelectedFootage(); if (!footage_in_viewer.isEmpty()) {