-// Copyright (C) 2014-20xx CEA/DEN, EDF R&D
-
-// File: CollectionPlugin_WidgetField.cpp
-// Created: 16 Nov 2016
-// Author: Vitaly SMETANNIKOV
+// Copyright (C) 2014-2019 CEA/DEN, EDF R&D
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
#include "CollectionPlugin_WidgetField.h"
#include "CollectionPlugin_Field.h"
}
}
}
- updateObject(myFeature);
return true;
}
std::string aTypeStr = aSelList->selectionType();
if (aTypeStr == "")
return false; // The attribute is not initialized
+ isBlocked = myShapeTypeCombo->blockSignals(true);
myShapeTypeCombo->setCurrentIndex(getSelectionType(aTypeStr));
+ myShapeTypeCombo->blockSignals(isBlocked);
// Get number of components
AttributeStringArrayPtr aStringsAttr =
for (anIt = theValues.begin(); anIt != theValues.end(); anIt++) {
ModuleBase_ViewerPrsPtr aValue = *anIt;
ResultPtr aRes = std::dynamic_pointer_cast<ModelAPI_Result>(aValue->object());
- if (theToValidate && aRes.get() && acceptSubShape(aValue->shape(), aRes))
- aSelected.append(aValue);
+ if (theToValidate && aRes.get()) {
+ if (myShapeTypeCombo->currentIndex() > 3)
+ aSelected.append(aValue);
+ else if (acceptSubShape(aValue->shape(), aRes))
+ aSelected.append(aValue);
+ }
}
AttributeSelectionListPtr aSelList =
myFeature->data()->selectionList(CollectionPlugin_Field::SELECTED_ID());
//**********************************************************************************
void CollectionPlugin_WidgetField::onShapeTypeChanged(int theType)
{
- activateSelectionAndFilters(theType == 5? false:true);
+ updateSelectionModesAndFilters(theType == 5? false:true);
AttributeSelectionListPtr aSelList =
myFeature->data()->selectionList(CollectionPlugin_Field::SELECTED_ID());
if (aTypeName == aSelList->selectionType())
return;
aSelList->setSelectionType(aTypeName);
+ // Updated event has to be sent here in case if type of shapes
+ // was changed from Part to any other in order to updater Apply button status
+ myFeature->data()->sendAttributeUpdated(aSelList.get());
//Clear old selection
clearData();
aSelList->clear();
AttributeTablesPtr aTablesAttr = myFeature->data()->tables(CollectionPlugin_Field::VALUES_ID());
aTablesAttr->setSize(1, myNbComponentsSpn->value(), myDataTblList.size());
+ updateObject(myFeature);
emit valuesChanged();
}