-// Copyright (C) 2014-2019 CEA/DEN, EDF R&D
+// Copyright (C) 2014-2023 CEA, EDF
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
if (aSelectionType.empty())
aSelectionListAttr->setSelectionType(myDefMode);
else {
- setCurrentShapeType(ModuleBase_Tools::shapeType(aSelectionType.c_str()));
+ setCurrentShapeType(aSelectionType.c_str());
myDefMode = aSelectionType;
myIsFirst = false;
}
QIntList aShapeTypes;
if (myShapeTypes.length() > 1 && myIsUseChoice) {
- aShapeTypes.append(ModuleBase_Tools::shapeType(myTypeCtrl->textValue()));
+ QStringList aTypes = myTypeCtrl->textValue().split("|", QString::SkipEmptyParts);
+ for(QString aType: aTypes) {
+ aShapeTypes.append(ModuleBase_Tools::shapeType(aType));
+ }
}
else {
foreach (QString aType, myShapeTypes) {
- aShapeTypes.append(ModuleBase_Tools::shapeType(aType));
+ QStringList aSubTypes = aType.split("|", QString::SkipEmptyParts);
+ for(QString aSubType: aSubTypes) {
+ aShapeTypes.append(ModuleBase_Tools::shapeType(aSubType));
+ }
}
}
return aShapeTypes;
}
//********************************************************************
-void ModuleBase_WidgetMultiSelector::setCurrentShapeType(const int theShapeType)
+void ModuleBase_WidgetMultiSelector::setCurrentShapeType(const QString& theShapeType)
{
- QString aShapeTypeName;
-
int idx = 0;
+ GeomAPI_Shape::ShapeType aShapeType = GeomAPI_Shape::shapeTypeByStr(theShapeType.toStdString());
foreach (QString aShapeTypeName, myShapeTypes) {
- int aRefType = ModuleBase_Tools::shapeType(aShapeTypeName);
- if(aRefType == theShapeType && idx != myTypeCtrl->value()) {
+ if(GeomAPI_Shape::shapeTypeByStr(aShapeTypeName.toStdString()) == aShapeType &&
+ idx != myTypeCtrl->value()) {
updateSelectionModesAndFilters(false);
bool isBlocked = myTypeCtrl->blockSignals(true);
myTypeCtrl->setValue(idx);
else if (aType == ModelAPI_AttributeRefAttrList::typeId()) {
AttributeRefAttrListPtr aRefAttrListAttr = aData->refattrlist(attributeID());
for (int i = 0; i < aRefAttrListAttr->size(); i++) {
- AttributePtr anAttribute = aRefAttrListAttr->attribute(i);
+ AttributePtr anAttr = aRefAttrListAttr->attribute(i);
QString aName;
- if (anAttribute.get()) {
- std::wstring anAttrName = ModuleBase_Tools::generateName(anAttribute, myWorkshop);
+ if (anAttr.get()) {
+ std::wstring anAttrName = ModuleBase_Tools::generateName(anAttr, myWorkshop);
aName = QString::fromStdWString(anAttrName);
}
else {
if (!anObject.get())
continue;
TopoDS_Shape aShape;
- AttributePtr anAttribute = aRefAttrListAttr->attribute(i);
- if (anAttribute.get()) {
- GeomShapePtr aGeomShape = ModuleBase_Tools::getShape(anAttribute, myWorkshop);
+ AttributePtr anAttr = aRefAttrListAttr->attribute(i);
+ if (anAttr.get()) {
+ GeomShapePtr aGeomShape = ModuleBase_Tools::getShape(anAttr, myWorkshop);
theValues.append(std::shared_ptr<ModuleBase_ViewerPrs>(
new ModuleBase_ViewerPrs(anObject, aGeomShape, NULL)));
}
for (int i = 0; i < aRefAttrListAttr->size(); i++) {
bool aFound = false;
if (aRefAttrListAttr->isAttribute(i)) {
- AttributePtr anAttribute = aRefAttrListAttr->attribute(i);
- aFound = anAttributes.find(anAttribute) != anAttributes.end();
+ AttributePtr anAttr = aRefAttrListAttr->attribute(i);
+ aFound = anAttributes.find(anAttr) != anAttributes.end();
}
else {
aFound = findInSelection(aRefAttrListAttr->object(i), GeomShapePtr(), aGeomSelection,
i--;
}
break;
+ default: // [to avoid compilation warning]
+ break;
}
}
return aList;