From a7d14abb021ae8148fc317112a23ff37b32dca48 Mon Sep 17 00:00:00 2001 From: nds Date: Thu, 28 Apr 2016 15:15:03 +0300 Subject: [PATCH] Issue #1037 : using of: implementation of cashing of values for method isInList --- src/ModuleBase/ModuleBase_WidgetMultiSelector.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/ModuleBase/ModuleBase_WidgetMultiSelector.cpp b/src/ModuleBase/ModuleBase_WidgetMultiSelector.cpp index 7a187e57c..fa5d77675 100755 --- a/src/ModuleBase/ModuleBase_WidgetMultiSelector.cpp +++ b/src/ModuleBase/ModuleBase_WidgetMultiSelector.cpp @@ -220,6 +220,12 @@ bool ModuleBase_WidgetMultiSelector::restoreValueCustom() bool ModuleBase_WidgetMultiSelector::setSelection(QList& theValues, const bool theToValidate) { + AttributeSelectionListPtr aSelectionListAttr; + if (attribute()->attributeType() == ModelAPI_AttributeSelectionList::typeId()) + aSelectionListAttr = std::dynamic_pointer_cast(attribute()); + if (aSelectionListAttr.get()) + aSelectionListAttr->cashValues(true); + /// remove unused objects from the model attribute. /// It should be performed before new attributes append. removeUnusedAttributeObjects(theValues); @@ -261,6 +267,9 @@ bool ModuleBase_WidgetMultiSelector::setSelection(QList //emit valuesChanged(); //} + if (aSelectionListAttr.get()) + aSelectionListAttr->cashValues(false); + theValues.clear(); if (!anInvalidValues.empty()) theValues.append(anInvalidValues); -- 2.39.2