From 7d2889c66be13568585a1810b591f6427ff08da0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Jensen?= Date: Tue, 11 Sep 2018 13:09:34 +0200 Subject: [PATCH] #3318 Plot editor performance. Do not call update method for every toggle change --- .../UserInterface/RiuSummaryCurveDefSelection.cpp | 11 ++++++++++- .../UserInterface/RiuSummaryCurveDefSelection.h | 3 +++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/ApplicationCode/UserInterface/RiuSummaryCurveDefSelection.cpp b/ApplicationCode/UserInterface/RiuSummaryCurveDefSelection.cpp index 90121e2dc2..a3407e15fd 100644 --- a/ApplicationCode/UserInterface/RiuSummaryCurveDefSelection.cpp +++ b/ApplicationCode/UserInterface/RiuSummaryCurveDefSelection.cpp @@ -231,6 +231,9 @@ RiuSummaryCurveDefSelection::RiuSummaryCurveDefSelection() : m_identifierFieldsM m_multiSelectionMode = false; m_hideEnsembles = false; m_hideSummaryCases = false; + + m_prevCurveCount = 0; + m_prevCurveSetCount = 0; } //-------------------------------------------------------------------------------------------------- @@ -553,9 +556,15 @@ void RiuSummaryCurveDefSelection::fieldChangedByUi(const caf::PdmFieldHandle* ch } } - if (m_toggleChangedHandler != nullptr) + size_t curveCount = allCurveDefinitionsFromSelection().size(); + size_t curveSetCount = allCurveSetDefinitionsFromSelections().size(); + + if (m_toggleChangedHandler != nullptr && (curveCount != m_prevCurveCount || curveSetCount != m_prevCurveSetCount)) { m_toggleChangedHandler(); + + m_prevCurveCount = curveCount; + m_prevCurveSetCount = curveSetCount; } } diff --git a/ApplicationCode/UserInterface/RiuSummaryCurveDefSelection.h b/ApplicationCode/UserInterface/RiuSummaryCurveDefSelection.h index 52d2bbecdb..263ac54ef6 100644 --- a/ApplicationCode/UserInterface/RiuSummaryCurveDefSelection.h +++ b/ApplicationCode/UserInterface/RiuSummaryCurveDefSelection.h @@ -116,4 +116,7 @@ private: bool m_hideSummaryCases; std::function m_toggleChangedHandler; + + size_t m_prevCurveCount; + size_t m_prevCurveSetCount; };