From cdcaeea01dc13ca64f1df1cb235af64e791ca5e9 Mon Sep 17 00:00:00 2001 From: nds Date: Thu, 21 Jan 2016 14:21:13 +0300 Subject: [PATCH] Code correction --- .../ModuleBase_WidgetMultiSelector.cpp | 93 ++++++++----------- 1 file changed, 38 insertions(+), 55 deletions(-) diff --git a/src/ModuleBase/ModuleBase_WidgetMultiSelector.cpp b/src/ModuleBase/ModuleBase_WidgetMultiSelector.cpp index 1144a30a3..af47d9d7c 100755 --- a/src/ModuleBase/ModuleBase_WidgetMultiSelector.cpp +++ b/src/ModuleBase/ModuleBase_WidgetMultiSelector.cpp @@ -189,8 +189,7 @@ bool ModuleBase_WidgetMultiSelector::storeValueCustom() const AttributePtr anAttribute = myFeature->data()->attribute(attributeID()); std::string aType = anAttribute->attributeType(); if (aType == ModelAPI_AttributeSelectionList::typeId()) { - AttributeSelectionListPtr aSelectionListAttr = - std::dynamic_pointer_cast(anAttribute); + AttributeSelectionListPtr aSelectionListAttr = myFeature->data()->selectionList(attributeID()); aSelectionListAttr->setSelectionType(myTypeCombo->currentText().toStdString()); } return true; @@ -206,8 +205,7 @@ bool ModuleBase_WidgetMultiSelector::restoreValueCustom() AttributePtr anAttribute = myFeature->data()->attribute(attributeID()); std::string aType = anAttribute->attributeType(); if (aType == ModelAPI_AttributeSelectionList::typeId()) { - AttributeSelectionListPtr aSelectionListAttr = - std::dynamic_pointer_cast(anAttribute); + AttributeSelectionListPtr aSelectionListAttr = myFeature->data()->selectionList(attributeID()); // Restore shape type setCurrentShapeType(ModuleBase_Tools::shapeType(aSelectionListAttr->selectionType().c_str())); } @@ -220,23 +218,20 @@ void ModuleBase_WidgetMultiSelector::storeAttributeValue() { ModuleBase_WidgetValidated::storeAttributeValue(); - AttributePtr anAttribute = myFeature->data()->attribute(attributeID()); + DataPtr aData = myFeature->data(); + AttributePtr anAttribute = aData->attribute(attributeID()); std::string aType = anAttribute->attributeType(); - if (aType == ModelAPI_AttributeSelectionList::typeId()) { - AttributeSelectionListPtr aSelectionListAttr = - std::dynamic_pointer_cast(anAttribute); + AttributeSelectionListPtr aSelectionListAttr = aData->selectionList(attributeID()); mySelectionType = aSelectionListAttr->selectionType(); mySelectionCount = aSelectionListAttr->size(); } else if (aType == ModelAPI_AttributeRefList::typeId()) { - AttributeRefListPtr aRefListAttr = - std::dynamic_pointer_cast(anAttribute); + AttributeRefListPtr aRefListAttr = aData->reflist(attributeID()); mySelectionCount = aRefListAttr->size(); } else if (aType == ModelAPI_AttributeRefAttrList::typeId()) { - AttributeRefAttrListPtr aRefAttrListAttr = - std::dynamic_pointer_cast(anAttribute); + AttributeRefAttrListPtr aRefAttrListAttr = aData->refattrlist(attributeID()); mySelectionCount = aRefAttrListAttr->size(); } } @@ -246,11 +241,11 @@ void ModuleBase_WidgetMultiSelector::restoreAttributeValue(bool theValid) { ModuleBase_WidgetValidated::restoreAttributeValue(theValid); - AttributePtr anAttribute = myFeature->data()->attribute(attributeID()); + DataPtr aData = myFeature->data(); + AttributePtr anAttribute = aData->attribute(attributeID()); std::string aType = anAttribute->attributeType(); if (aType == ModelAPI_AttributeSelectionList::typeId()) { - AttributeSelectionListPtr aSelectionListAttr = - std::dynamic_pointer_cast(anAttribute); + AttributeSelectionListPtr aSelectionListAttr = aData->selectionList(attributeID()); aSelectionListAttr->setSelectionType(mySelectionType); // restore selection in the attribute. Indeed there is only one stored object @@ -259,16 +254,14 @@ void ModuleBase_WidgetMultiSelector::restoreAttributeValue(bool theValid) aSelectionListAttr->removeLast(); } else if (aType == ModelAPI_AttributeRefList::typeId()) { - AttributeRefListPtr aRefListAttr = - std::dynamic_pointer_cast(anAttribute); + AttributeRefListPtr aRefListAttr = aData->reflist(attributeID()); // restore objects in the attribute. Indeed there is only one stored object int aCountAppened = aRefListAttr->size() - mySelectionCount; for (int i = 0; i < aCountAppened; i++) aRefListAttr->removeLast(); } else if (aType == ModelAPI_AttributeRefAttrList::typeId()) { - AttributeRefAttrListPtr aRefAttrListAttr = - std::dynamic_pointer_cast(anAttribute); + AttributeRefAttrListPtr aRefAttrListAttr = aData->refattrlist(attributeID()); // restore objects in the attribute. Indeed there is only one stored object int aCountAppened = aRefAttrListAttr->size() - mySelectionCount; for (int i = 0; i < aCountAppened; i++) @@ -279,21 +272,19 @@ void ModuleBase_WidgetMultiSelector::restoreAttributeValue(bool theValid) //******************************************************************** void ModuleBase_WidgetMultiSelector::clearAttribute() { - AttributePtr anAttribute = myFeature->data()->attribute(attributeID()); + DataPtr aData = myFeature->data(); + AttributePtr anAttribute = aData->attribute(attributeID()); std::string aType = anAttribute->attributeType(); if (aType == ModelAPI_AttributeSelectionList::typeId()) { - AttributeSelectionListPtr aSelectionListAttr = - std::dynamic_pointer_cast(anAttribute); + AttributeSelectionListPtr aSelectionListAttr = aData->selectionList(attributeID()); aSelectionListAttr->clear(); } else if (aType == ModelAPI_AttributeRefList::typeId()) { - AttributeRefListPtr aRefListAttr = - std::dynamic_pointer_cast(anAttribute); + AttributeRefListPtr aRefListAttr = aData->reflist(attributeID()); aRefListAttr->clear(); } else if (aType == ModelAPI_AttributeRefAttrList::typeId()) { - AttributeRefAttrListPtr aRefAttrListAttr = - std::dynamic_pointer_cast(anAttribute); + AttributeRefAttrListPtr aRefAttrListAttr = aData->refattrlist(attributeID()); aRefAttrListAttr->clear(); } } @@ -302,22 +293,20 @@ void ModuleBase_WidgetMultiSelector::clearAttribute() void ModuleBase_WidgetMultiSelector::setObject(ObjectPtr theSelectedObject, GeomShapePtr theShape) { - AttributePtr anAttribute = myFeature->data()->attribute(attributeID()); + DataPtr aData = myFeature->data(); + AttributePtr anAttribute = aData->attribute(attributeID()); std::string aType = anAttribute->attributeType(); if (aType == ModelAPI_AttributeSelectionList::typeId()) { - AttributeSelectionListPtr aSelectionListAttr = - std::dynamic_pointer_cast(anAttribute); + AttributeSelectionListPtr aSelectionListAttr = aData->selectionList(attributeID()); ResultPtr aResult = std::dynamic_pointer_cast(theSelectedObject); aSelectionListAttr->append(aResult, theShape, myIsInValidate); } else if (aType == ModelAPI_AttributeRefList::typeId()) { - AttributeRefListPtr aRefListAttr = - std::dynamic_pointer_cast(anAttribute); + AttributeRefListPtr aRefListAttr = aData->reflist(attributeID()); aRefListAttr->append(theSelectedObject); } else if (aType == ModelAPI_AttributeRefAttrList::typeId()) { - AttributeRefAttrListPtr aRefAttrListAttr = - std::dynamic_pointer_cast(anAttribute); + AttributeRefAttrListPtr aRefAttrListAttr = aData->refattrlist(attributeID()); AttributePtr anAttribute = myWorkshop->module()->findAttribute(theSelectedObject, theShape); if (anAttribute.get()) @@ -405,23 +394,21 @@ bool ModuleBase_WidgetMultiSelector::processDelete() // refill attribute by the items which indices are not in the list of ids bool aDone = false; - AttributePtr anAttribute = myFeature->data()->attribute(attributeID()); + DataPtr aData = myFeature->data(); + AttributePtr anAttribute = aData->attribute(attributeID()); std::string aType = anAttribute->attributeType(); aDone = !anAttributeIds.empty(); if (aType == ModelAPI_AttributeSelectionList::typeId()) { - AttributeSelectionListPtr aSelectionListAttr = - std::dynamic_pointer_cast(anAttribute); + AttributeSelectionListPtr aSelectionListAttr = aData->selectionList(attributeID()); aSelectionListAttr->remove(anAttributeIds); } else if (aType == ModelAPI_AttributeRefList::typeId()) { - AttributeRefListPtr aRefListAttr = - std::dynamic_pointer_cast(anAttribute); - aRefListAttr->remove(anAttributeIds); + AttributeRefListPtr aRefListAttr = aData->reflist(attributeID()); + aRefListAttr->remove(anAttributeIds); } else if (aType == ModelAPI_AttributeRefAttrList::typeId()) { - AttributeRefAttrListPtr aRefAttrListAttr = - std::dynamic_pointer_cast(anAttribute); + AttributeRefAttrListPtr aRefAttrListAttr = aData->refattrlist(attributeID()); aRefAttrListAttr->remove(anAttributeIds); } @@ -522,11 +509,11 @@ void ModuleBase_WidgetMultiSelector::updateSelectionList() { myListControl->clear(); - AttributePtr anAttribute = myFeature->data()->attribute(attributeID()); + DataPtr aData = myFeature->data(); + AttributePtr anAttribute = aData->attribute(attributeID()); std::string aType = anAttribute->attributeType(); if (aType == ModelAPI_AttributeSelectionList::typeId()) { - AttributeSelectionListPtr aSelectionListAttr = - std::dynamic_pointer_cast(anAttribute); + AttributeSelectionListPtr aSelectionListAttr = aData->selectionList(attributeID()); for (int i = 0; i < aSelectionListAttr->size(); i++) { AttributeSelectionPtr aAttr = aSelectionListAttr->value(i); QListWidgetItem* anItem = new QListWidgetItem(aAttr->namingName().c_str(), myListControl); @@ -535,8 +522,7 @@ void ModuleBase_WidgetMultiSelector::updateSelectionList() } } else if (aType == ModelAPI_AttributeRefList::typeId()) { - AttributeRefListPtr aRefListAttr = - std::dynamic_pointer_cast(anAttribute); + AttributeRefListPtr aRefListAttr = aData->reflist(attributeID()); for (int i = 0; i < aRefListAttr->size(); i++) { ObjectPtr anObject = aRefListAttr->object(i); if (anObject.get()) { @@ -548,8 +534,7 @@ void ModuleBase_WidgetMultiSelector::updateSelectionList() } } else if (aType == ModelAPI_AttributeRefAttrList::typeId()) { - AttributeRefAttrListPtr aRefAttrListAttr = - std::dynamic_pointer_cast(anAttribute); + AttributeRefAttrListPtr aRefAttrListAttr = aData->refattrlist(attributeID()); for (int i = 0; i < aRefAttrListAttr->size(); i++) { AttributePtr anAttribute = aRefAttrListAttr->attribute(i); QString aName; @@ -640,11 +625,11 @@ void ModuleBase_WidgetMultiSelector::convertIndicesToViewerSelection(std::setdata()->attribute(attributeID()); + DataPtr aData = myFeature->data(); + AttributePtr anAttribute = aData->attribute(attributeID()); std::string aType = anAttribute->attributeType(); if (aType == ModelAPI_AttributeSelectionList::typeId()) { - AttributeSelectionListPtr aSelectionListAttr = - std::dynamic_pointer_cast(anAttribute); + AttributeSelectionListPtr aSelectionListAttr = aData->selectionList(attributeID()); for (int i = 0; i < aSelectionListAttr->size(); i++) { // filter by attribute indices only if the container is not empty otherwise return all items if (!theAttributeIds.empty() && theAttributeIds.find(i) == theAttributeIds.end()) @@ -662,8 +647,7 @@ void ModuleBase_WidgetMultiSelector::convertIndicesToViewerSelection(std::set(anAttribute); + AttributeRefListPtr aRefListAttr = aData->reflist(attributeID()); for (int i = 0; i < aRefListAttr->size(); i++) { // filter by attribute indices only if the container is not empty otherwise return all items if (!theAttributeIds.empty() && theAttributeIds.find(i) == theAttributeIds.end()) @@ -675,8 +659,7 @@ void ModuleBase_WidgetMultiSelector::convertIndicesToViewerSelection(std::set(anAttribute); + AttributeRefAttrListPtr aRefAttrListAttr = aData->refattrlist(attributeID()); for (int i = 0; i < aRefAttrListAttr->size(); i++) { // filter by attribute indices only if the container is not empty otherwise return all items if (!theAttributeIds.empty() && theAttributeIds.find(i) == theAttributeIds.end()) -- 2.39.2