]> SALOME platform Git repositories - modules/shaper.git/commitdiff
Salome HOME
Merge branch 'master' of newgeom:newgeom
authorvsv <vitaly.smetannikov@opencascade.com>
Thu, 24 Jul 2014 13:16:09 +0000 (17:16 +0400)
committervsv <vitaly.smetannikov@opencascade.com>
Thu, 24 Jul 2014 13:16:09 +0000 (17:16 +0400)
Conflicts:
src/ModuleBase/ModuleBase_Tools.cpp

1  2 
src/ModuleBase/ModuleBase_Tools.cpp
src/PartSet/PartSet_Module.cpp
src/PartSet/PartSet_Module.h
src/PartSet/PartSet_OperationFeatureEdit.cpp
src/PartSet/PartSet_OperationFeatureEditMulti.cpp
src/PartSet/PartSet_OperationSketchBase.h

index 8c0471d9503f8b3f5cfee81a9c47754f2f151740,dfd282ea34fe5e90343f49154cf837cc6ca40f16..d3dd6f7ee16f288558d95a371f384d3100181d92
@@@ -24,19 -19,4 +20,19 @@@ boost::shared_ptr<GeomAPI_Shape> shape(
    return boost::shared_ptr<GeomAPI_Shape>();
  }
  
- }
 +//******************************************************************
 +FeaturePtr feature(ObjectPtr theObject)
 +{
 +  FeaturePtr aFeature = boost::dynamic_pointer_cast<ModelAPI_Feature>(theObject);
 +  if (!aFeature) {
 +    ResultPtr aResult = boost::dynamic_pointer_cast<ModelAPI_Result>(theObject);
 +    if (aResult) {
 +      PluginManagerPtr aMgr = ModelAPI_PluginManager::get();
 +      DocumentPtr aDoc = aMgr->rootDocument();
 +      return aDoc->feature(aResult);
 +    }
 +  }
 +  return aFeature;
 +}
 +
+ }
index 74debe86406ce079ae87c9cdceed536b294ae680,4cea1a7bf62bd349bb79d047ca87f9a28540947b..e3f4117e6175291803102a7d46faebbc41aef2bf
@@@ -344,7 -349,7 +344,7 @@@ void PartSet_Module::onCloseLocalContex
    aDisplayer->closeLocalContexts();
  }
  
--void PartSet_Module::onFeatureConstructed(FeaturePtr theFeature, int theMode)
++void PartSet_Module::onFeatureConstructed(ObjectPtr theFeature, int theMode)
  {
  //  bool isDisplay = theMode != PartSet_OperationSketchBase::FM_Hide;
  //  if (isDisplay) {
@@@ -442,8 -447,8 +442,8 @@@ ModuleBase_Operation* PartSet_Module::c
    // connect the operation
    PartSet_OperationSketchBase* aPreviewOp = dynamic_cast<PartSet_OperationSketchBase*>(anOperation);
    if (aPreviewOp) {
--    connect(aPreviewOp, SIGNAL(featureConstructed(FeaturePtr, int)),
--            this, SLOT(onFeatureConstructed(FeaturePtr, int)));
++    connect(aPreviewOp, SIGNAL(featureConstructed(ObjectPtr, int)),
++            this, SLOT(onFeatureConstructed(ObjectPtr, int)));
      connect(aPreviewOp, SIGNAL(launchOperation(std::string, ObjectPtr)),
              this, SLOT(onLaunchOperation(std::string, ObjectPtr)));
      connect(aPreviewOp, SIGNAL(multiSelectionEnabled(bool)),
index c32b3af077ecd2e5fbbabdcc27256bee8fcfce94,c32b3af077ecd2e5fbbabdcc27256bee8fcfce94..58e0995798c4a7cf5b4d5ab7a63542aade1da237
@@@ -134,8 -134,8 +134,7 @@@ public slots
    /// SLOT, to visualize the feature in another local context mode
    /// \param theFeature the feature to be put in another local context mode
    /// \param theMode the mode appeared on the feature
--  void onFeatureConstructed(FeaturePtr theFeature,
--                            int theMode);
++  void onFeatureConstructed(ObjectPtr theFeature, int theMode);
  
    /// Slot which reacts to the point 2d set to the feature. Creates a constraint
    /// \param the feature
index 409adcd75adc9eeb40326fdd7874426b6173f241,7975baa652d223a39a1765023498965bc8b29277..3c74e6478c4b5e9129a5e459eb5875f2946492e1
@@@ -88,8 -85,8 +88,15 @@@ void PartSet_OperationFeatureEdit::mous
      bool aHasShift = (theEvent->modifiers() & Qt::ShiftModifier);
      if(aHasShift && !theHighlighted.empty()) {
        QList<ObjectPtr> aSelected;
--      aSelected.push_back(feature());
--      aSelected.push_back(theHighlighted.front().object());
++      std::list<ModuleBase_ViewerPrs>::const_iterator aIt;
++      for (aIt = theSelected.cbegin(); aIt != theSelected.cend(); ++aIt)
++        aSelected.append((*aIt).object());
++      /*for (aIt = theHighlighted.cbegin(); aIt != theHighlighted.cend(); ++aIt) {
++        if (!aSelected.contains((*aIt).object()))
++          aSelected.append((*aIt).object());
++      }*/
++      //aSelected.push_back(feature());
++      //aSelected.push_back(theHighlighted.front().object());
        emit setSelection(aSelected);
      }
      else if (aFeature) {
index b08818ec7442a41cb8a9c8694fa42ea7ec1f230e,b08818ec7442a41cb8a9c8694fa42ea7ec1f230e..1768f0c94d82706699c8443b917d050919f0b793
@@@ -8,6 -8,6 +8,7 @@@
  
  #include <ModuleBase_OperationDescription.h>
  #include <ModuleBase_ViewerPrs.h>
++#include <ModuleBase_Tools.h>
  
  #include <ModelAPI_Events.h>
  
@@@ -58,10 -58,10 +59,9 @@@ void PartSet_OperationFeatureEditMulti:
      // deselected in the viewer by blockSelection signal in the startOperation method.
      bool isSelected = false;
      std::list<ModuleBase_ViewerPrs>::const_iterator anIt = theSelected.begin(), aLast = theSelected.end();
--    // TODO
--    /*for (; anIt != aLast && !isSelected; anIt++) {
--      isSelected = (*anIt).feature() == feature();
--    }*/
++    for (; anIt != aLast && !isSelected; anIt++) {
++      isSelected = ModuleBase_Tools::feature((*anIt).object()) == feature();
++    }
      if (!isSelected)
        myFeatures = theHighlighted;
      else
@@@ -110,14 -110,14 +110,17 @@@ void PartSet_OperationFeatureEditMulti:
      aSketchFeature->move(aDeltaX, aDeltaY);
  
      std::list<ModuleBase_ViewerPrs>::const_iterator anIt = myFeatures.begin(), aLast = myFeatures.end();
--    // TODO
--    /*for (; anIt != aLast; anIt++) {
--      FeaturePtr aFeature = (*anIt).feature();
--      if (!aFeature || aFeature == feature())
++    for (; anIt != aLast; anIt++) {
++      ObjectPtr aObject = (*anIt).object();
++      if (!aObject || aObject == feature())
          continue;
--      aSketchFeature = boost::dynamic_pointer_cast<SketchPlugin_Feature>(aFeature);
--      aSketchFeature->move(aDeltaX, aDeltaY);
--    }*/
++      FeaturePtr aFeature = ModuleBase_Tools::feature(aObject);
++      if (aFeature) {
++        aSketchFeature = boost::dynamic_pointer_cast<SketchPlugin_Feature>(aFeature);
++        if (aSketchFeature)
++          aSketchFeature->move(aDeltaX, aDeltaY);
++      }
++    }
    }
    sendFeatures();
  
@@@ -131,13 -131,13 +134,12 @@@ void PartSet_OperationFeatureEditMulti:
    std::list<ModuleBase_ViewerPrs> aFeatures = myFeatures;
    commit();
    std::list<ModuleBase_ViewerPrs>::const_iterator anIt = aFeatures.begin(), aLast = aFeatures.end();
--  // TODO
--  /*for (; anIt != aLast; anIt++) {
--    FeaturePtr aFeature = (*anIt).feature();
++  for (; anIt != aLast; anIt++) {
++    ObjectPtr aFeature = (*anIt).object();
      if (aFeature) {
        emit featureConstructed(aFeature, FM_Deactivation);
--      }
--  }*/
++        }
++  }
  }
  
  void PartSet_OperationFeatureEditMulti::startOperation()
@@@ -188,14 -188,14 +190,13 @@@ void PartSet_OperationFeatureEditMulti:
  
    std::list<FeaturePtr > aFeatures;
    std::list<ModuleBase_ViewerPrs>::const_iterator anIt = myFeatures.begin(), aLast = myFeatures.end();
--  // TODO
--  /*for (; anIt != aLast; anIt++) {
--    FeaturePtr aFeature = (*anIt).feature();
++  for (; anIt != aLast; anIt++) {
++    ObjectPtr aFeature = (*anIt).object();
      if (!aFeature)
        continue;
  
      ModelAPI_EventCreator::get()->sendUpdated(aFeature, anEvent);
--  }*/
++  }
    Events_Loop::loop()->flush(anEvent);
    flushUpdated();
  }
index 7916815d049e9b59a0af216966c41927103bc734,7916815d049e9b59a0af216966c41927103bc734..caae337a73894df0e2f689083d37450c390ce773
@@@ -123,14 -123,14 +123,16 @@@ signals
    /// theName the operation name
    /// theFeature the operation argument
    void launchOperation(std::string theName, ObjectPtr theFeature);
++  
    /// Signal about the feature construing is finished
    /// \param theFeature the result feature
    /// \param theMode the mode of the feature modification
--  void featureConstructed(FeaturePtr theFeature,
--                          int theMode);
++  void featureConstructed(ObjectPtr theFeature, int theMode);
++
    /// Signal about the features should be selected
    /// \param theSelected the list of selected presentations
    void featureSelected(const std::list<ModuleBase_ViewerPrs>& theSelected);
++  
    /// signal to enable/disable multi selection in the viewer
    /// \param theEnabled the boolean state
    void multiSelectionEnabled(bool theEnabled);
    /// \param theFeatures a list of features to be disabled
    /// \param theToStop the boolean state whether it it stopped or non stopped
    void stopSelection(const QList<ObjectPtr>& theFeatures, const bool theToStop);
++  
    /// signal to set selection in the viewer
    /// \param theFeatures a list of features to be disabled
    void setSelection(const QList<ObjectPtr>& theFeatures);