]> SALOME platform Git repositories - modules/shaper.git/commitdiff
Salome HOME
Merge branch 'Dev_1.1.0' of newgeom:newgeom.git into Dev_1.1.0
authorsbh <sergey.belash@opencascade.com>
Mon, 6 Apr 2015 17:56:37 +0000 (20:56 +0300)
committersbh <sergey.belash@opencascade.com>
Mon, 6 Apr 2015 17:56:37 +0000 (20:56 +0300)
Conflicts:
src/ModelAPI/CMakeLists.txt
src/ModuleBase/ModuleBase_WidgetFactory.cpp

1  2 
src/Model/Model_Document.cpp
src/ModelAPI/CMakeLists.txt
src/ModuleBase/ModuleBase_WidgetFactory.cpp

index 0f335a5302a94eddb266c46129e3470425fde401,d88015148a1b96f8a2cda6490f8e5ec74b13b7cf..71019bc6d50f4baa503565c0b455b7da4773e737
@@@ -15,7 -15,6 +15,7 @@@
  #include <Model_ResultGroup.h>
  #include <ModelAPI_Validator.h>
  #include <ModelAPI_CompositeFeature.h>
 +
  #include <Events_Loop.h>
  #include <Events_Error.h>
  
@@@ -404,8 -403,8 +404,8 @@@ void Model_Document::abortOperation(
        myDoc->Undo();
      myDoc->ClearRedos();
    }
-   // references were not changed since transaction start
-   synchronizeFeatures(true, false, isRoot());
+   // references may be changed because they are set in attributes on the fly
+   synchronizeFeatures(true, true, isRoot());
    // abort for all subs
    const std::set<std::string> aSubs = subDocuments(true);
    std::set<std::string>::iterator aSubIter = aSubs.begin();
@@@ -1219,23 -1218,6 +1219,23 @@@ std::shared_ptr<ModelAPI_ResultGroup> M
    if (!aResult) {
      aResult = std::shared_ptr<ModelAPI_ResultGroup>(new Model_ResultGroup(theFeatureData));
      storeResult(theFeatureData, aResult, theIndex);
 +  }
 +  return aResult;
 +}
 +
 +std::shared_ptr<ModelAPI_ResultParameter> Model_Document::createParameter(
 +      const std::shared_ptr<ModelAPI_Data>& theFeatureData, const int theIndex)
 +{
 +  TDF_Label aLab = resultLabel(theFeatureData, theIndex);
 +  TDataStd_Comment::Set(aLab, ModelAPI_ResultParameter::group().c_str());
 +  ObjectPtr anOldObject = object(aLab);
 +  std::shared_ptr<ModelAPI_ResultParameter> aResult;
 +  if (anOldObject) {
 +    aResult = std::dynamic_pointer_cast<ModelAPI_ResultParameter>(anOldObject);
 +  }
 +  if (!aResult) {
 +    aResult = std::shared_ptr<ModelAPI_ResultParameter>(new ModelAPI_ResultParameter);
 +    storeResult(theFeatureData, aResult, theIndex);
    }
    return aResult;
  }
index 513ddcdefca87d6d94a59b7b45cbd52c31ee0e2a,27df7d5652434ab9fd45e260ccbaec56cd29b51d..249ee64ac25822fe2cac6c51fbe3d0bb99f91797
@@@ -32,7 -32,7 +32,7 @@@ SET(PROJECT_HEADER
      ModelAPI_ResultBody.h
      ModelAPI_ResultConstruction.h
      ModelAPI_ResultGroup.h
 -    ModelAPI_ResultParameters.h
 +    ModelAPI_ResultParameter.h
      ModelAPI_ResultPart.h
      ModelAPI_Session.h
      ModelAPI_Tools.h
@@@ -68,7 -68,7 +68,8 @@@ SET(PROJECT_SOURCE
      ModelAPI_Session.cpp
      ModelAPI_ShapeValidator.cpp
      ModelAPI_Tools.cpp
 +    ModelAPI_ResultParameter.cpp
+     ModelAPI_AttributeValidator.cpp
  )
  
  SET(PROJECT_LIBRARIES
@@@ -81,10 -81,11 +82,10 @@@ ADD_LIBRARY(ModelAPI SHARED ${PROJECT_S
  SET_TARGET_PROPERTIES(ModelAPI PROPERTIES LINKER_LANGUAGE CXX)
  TARGET_LINK_LIBRARIES(ModelAPI ${PROJECT_LIBRARIES})
  
 -INCLUDE_DIRECTORIES(
 -  ../Config 
 -  ../Events
 -  ../GeomAPI
 -  ../GeomAlgoAPI
 +INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/src/Config 
 +                    ${PROJECT_SOURCE_DIR}/src/Events
 +                    ${PROJECT_SOURCE_DIR}/src/GeomAPI
 +                    ${PROJECT_SOURCE_DIR}/src/GeomAlgoAPI
  )
  
  
index eedb3a390759f687d552ed6e15fcbe8a7d0e23aa,6925ee993efa84fad1448ebf86bd84900368af51..c9561a13ba458fddc63d95e139bcaa1c7bc18fb1
  
  #include <ModuleBase_Operation.h>
  #include <ModuleBase_OperationDescription.h>
 -//#include <ModuleBase_WidgetFeatureOrAttribute.h>
 -//#include <ModuleBase_WidgetFeature.h>
  #include <ModuleBase_WidgetEditor.h>
  #include <ModuleBase_WidgetSwitch.h>
  #include <ModuleBase_WidgetShapeSelector.h>
  #include <ModuleBase_WidgetDoubleValue.h>
  #include <ModuleBase_WidgetBoolValue.h>
 -//#include <ModuleBase_WidgetPoint2dDistance.h>
  #include <ModuleBase_WidgetFileSelector.h>
  #include <ModuleBase_WidgetChoice.h>
  #include <ModuleBase_IWorkshop.h>
@@@ -28,7 -31,6 +28,7 @@@
  #include <ModuleBase_PageBase.h>
  #include <ModuleBase_PageGroupBox.h>
  #include <ModuleBase_PageWidget.h>
 +#include <ModuleBase_WidgetExprEditor.h>
  
  #include <ModelAPI_Validator.h>
  #include <ModelAPI_Session.h>
@@@ -113,45 -115,50 +113,45 @@@ void ModuleBase_WidgetFactory::createWi
    thePage->alignToTop();
  }
  
 -ModuleBase_ModelWidget* ModuleBase_WidgetFactory
 -::createWidgetByType(const std::string& theType, QWidget* theParent)
 +ModuleBase_ModelWidget* ModuleBase_WidgetFactory::createWidgetByType(const std::string& theType,
 +                                                                     QWidget* theParent)
  {
    ModuleBase_ModelWidget* result = NULL;
  
    if (theType == WDG_INFO) {
      result = new ModuleBase_WidgetLabel(theParent, myWidgetApi, myParentId);
 -
    } else if (theType == WDG_DOUBLEVALUE) {
      result = new ModuleBase_WidgetDoubleValue(theParent, myWidgetApi, myParentId);
 -
    } else if (theType == WDG_SHAPE_SELECTOR) {
 -    result =  new ModuleBase_WidgetShapeSelector(theParent, myWorkshop, myWidgetApi, myParentId);
 -
 +    result = new ModuleBase_WidgetShapeSelector(theParent, myWorkshop, myWidgetApi, myParentId);
    } else if (theType == WDG_BOOLVALUE) {
      result = new ModuleBase_WidgetBoolValue(theParent, myWidgetApi, myParentId);
-   } else if (theType == WDG_DOUBLEVALUE_EDITOR) {
-     result = new ModuleBase_WidgetEditor(theParent, myWidgetApi, myParentId);
 -
++  //} else if (theType == WDG_DOUBLEVALUE_EDITOR) {
++  //  result = new ModuleBase_WidgetEditor(theParent, myWidgetApi, myParentId);
    } else if (theType == WDG_FILE_SELECTOR) {
      result = new ModuleBase_WidgetFileSelector(theParent, myWidgetApi, myParentId);
 -
    } else if (theType == WDG_CHOICE) {
 -    result = new ModuleBase_WidgetChoice(theParent, myWidgetApi,myParentId);
 -
 +    result = new ModuleBase_WidgetChoice(theParent, myWidgetApi, myParentId);
    } else if (theType == WDG_STRINGVALUE) {
 -    result = new ModuleBase_WidgetLineEdit(theParent, myWidgetApi,myParentId);
 -
 +    result = new ModuleBase_WidgetLineEdit(theParent, myWidgetApi, myParentId);
 +  } else if (theType == WDG_EXPR_EDITOR) {
 +    result = new ModuleBase_WidgetExprEditor(theParent, myWidgetApi, myParentId);
    } else if (theType == WDG_MULTISELECTOR) {
 -    result = new ModuleBase_WidgetMultiSelector(theParent, myWorkshop, myWidgetApi,myParentId);
 -
 +    result = new ModuleBase_WidgetMultiSelector(theParent, myWorkshop, myWidgetApi, myParentId);
    } else if (theType == WDG_TOOLBOX) {
      result = new ModuleBase_WidgetToolbox(theParent, myWidgetApi, myParentId);
 -
    } else if (theType == WDG_SWITCH) {
      result = new ModuleBase_WidgetSwitch(theParent, myWidgetApi, myParentId);
 -
    } else if (theType == WDG_TOOLBOX_BOX || theType == WDG_SWITCH_CASE) {
      // Do nothing for "box" and "case"
      result = NULL;
    } else {
 -    result = myWorkshop->module()->createWidgetByType(theType, theParent, myWidgetApi,
 -                                                      myParentId);
 -#ifdef _DEBUG
 -    if (!result) {qDebug("ModuleBase_WidgetFactory::fillWidget: find bad widget type");}
 -#endif
 +    result = myWorkshop->module()->createWidgetByType(theType, theParent, myWidgetApi, myParentId);
 +    #ifdef _DEBUG
 +    if (!result) {
 +      qDebug("ModuleBase_WidgetFactory::fillWidget: find bad widget type");
 +    }
 +    #endif
    }
    if (result) {
      myModelWidgets.append(result);