From 4f9ac4b36df72d5240d3719dbf8d16cab528b5f7 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Sun, 2 Jan 2022 18:43:27 -0800 Subject: [PATCH] parampanel: close contexts belonging to closing project --- app/panel/param/param.h | 5 +++++ app/widget/nodeparamview/nodeparamview.cpp | 14 ++++++++++++++ app/widget/nodeparamview/nodeparamview.h | 2 ++ app/window/mainwindow/mainwindow.cpp | 3 +++ 4 files changed, 24 insertions(+) diff --git a/app/panel/param/param.h b/app/panel/param/param.h index 95ddc9b9a..9f2336eb1 100644 --- a/app/panel/param/param.h +++ b/app/panel/param/param.h @@ -53,6 +53,11 @@ public: GetParamView()->SetIgnoreNodeFlags(e); } + void CloseContextsBelongingToProject(Project *p) + { + GetParamView()->CloseContextsBelongingToProject(p); + } + public slots: void SelectNodes(const QVector& nodes); void DeselectNodes(const QVector& nodes); diff --git a/app/widget/nodeparamview/nodeparamview.cpp b/app/widget/nodeparamview/nodeparamview.cpp index 68f04e7fd..657847057 100644 --- a/app/widget/nodeparamview/nodeparamview.cpp +++ b/app/widget/nodeparamview/nodeparamview.cpp @@ -163,6 +163,20 @@ NodeParamView::~NodeParamView() qDeleteAll(context_items_); } +void NodeParamView::CloseContextsBelongingToProject(Project *p) +{ + QVector new_contexts = contexts_; + + for (int i=0; iproject() == p) { + new_contexts.removeAt(i); + i--; + } + } + + SetContexts(new_contexts); +} + /*void NodeParamView::SelectNodes(const QVector &nodes) { return; diff --git a/app/widget/nodeparamview/nodeparamview.h b/app/widget/nodeparamview/nodeparamview.h index b36e31cc0..e34f45156 100644 --- a/app/widget/nodeparamview/nodeparamview.h +++ b/app/widget/nodeparamview/nodeparamview.h @@ -55,6 +55,8 @@ public: return input_checked_.value(input); } + void CloseContextsBelongingToProject(Project *p); + Node* GetTimeTarget() const; void DeleteSelected(); diff --git a/app/window/mainwindow/mainwindow.cpp b/app/window/mainwindow/mainwindow.cpp index 64073072e..b9544a31b 100644 --- a/app/window/mainwindow/mainwindow.cpp +++ b/app/window/mainwindow/mainwindow.cpp @@ -371,6 +371,9 @@ void MainWindow::ProjectClose(Project *p) // Close project from NodeView node_panel_->CloseContextsBelongingToProject(p); + + // Close project from NodeParamView + param_panel_->CloseContextsBelongingToProject(p); } void MainWindow::SetApplicationProgressStatus(ProgressStatus status)