]> SALOME platform Git repositories - modules/shaper.git/commitdiff
Salome HOME
Selection in Sketch with SHIFT pressed.
authornds <nds@opencascade.com>
Mon, 26 Dec 2016 13:46:11 +0000 (16:46 +0300)
committernds <nds@opencascade.com>
Mon, 26 Dec 2016 13:46:11 +0000 (16:46 +0300)
Chain: processing mouse press, after by mouse release ShiftSelect happens in viewer.
So, we should not change selected objects in the viewer until ShiftSelect. In previous version restoreSelection changed it.
onAfterValuesChangedInPropertyPanel, onBeforeValuesChangedInPropertyPanel are obsolete as values in Property Panel are not modifiable.

src/PartSet/PartSet_SketcherMgr.cpp
src/PartSet/PartSet_SketcherMgr.h
src/XGUI/XGUI_SelectionMgr.cpp

index ff779fa9f2bdf2b4c12a708d81b1ba4c111d27eb..81945bbd47f3d1625bacd730172936e98d31d288 100755 (executable)
@@ -266,6 +266,8 @@ void PartSet_SketcherMgr::onLeaveViewPort()
   aDisplayer->enableUpdateViewer(isEnableUpdateViewer);
 }
 
+/*
+//Temporary commented as we do not modify values in property panel
 void PartSet_SketcherMgr::onBeforeValuesChangedInPropertyPanel()
 {
   if (!isNestedEditOperation(getCurrentOperation(), myModule->sketchMgr()->activeSketch()) ||
@@ -299,9 +301,8 @@ void PartSet_SketcherMgr::onAfterValuesChangedInPropertyPanel()
   XGUI_Displayer* aDisplayer = aConnector->workshop()->displayer();
   aDisplayer->enableUpdateViewer(myPreviousUpdateViewerEnabled);
   aDisplayer->updateViewer();
-
-
 }
+*/
 
 void PartSet_SketcherMgr::onMousePressed(ModuleBase_IViewWindow* theWnd, QMouseEvent* theEvent)
 {
@@ -375,9 +376,6 @@ void PartSet_SketcherMgr::onMousePressed(ModuleBase_IViewWindow* theWnd, QMouseE
       myDragDone = false;
 
       myPreviousDrawModeEnabled = aViewer->enableDrawMode(false);
-      // selection should be restored before edit operation start to process the
-      // selected entities, e.g. selection of point(attribute on a line) should edit the point
-      restoreSelection();
       launchEditing();
       if (aFeature.get() != NULL) {
         std::shared_ptr<SketchPlugin_Feature> aSPFeature =
@@ -406,9 +404,6 @@ void PartSet_SketcherMgr::onMousePressed(ModuleBase_IViewWindow* theWnd, QMouseE
       myDragDone = false;
 
       myPreviousDrawModeEnabled = aViewer->enableDrawMode(false);
-      // selection should be restored before edit operation start to process the
-      // selected entities, e.g. selection of point(attribute on a line) should edit the point
-      restoreSelection();
       launchEditing();
       myIsEditLaunching = aPrevLaunchingState;
       if (aFeature.get() != NULL) {
@@ -424,7 +419,6 @@ void PartSet_SketcherMgr::onMousePressed(ModuleBase_IViewWindow* theWnd, QMouseE
           aFPAttr->setValue(myCurrentPoint.myCurX, myCurrentPoint.myCurY);
         }
       }
-      restoreSelection();
     }
   }
 }
@@ -1537,6 +1531,7 @@ void PartSet_SketcherMgr::getSelectionOwners(const FeaturePtr& theFeature,
 void PartSet_SketcherMgr::connectToPropertyPanel(ModuleBase_ModelWidget* theWidget,
                                                  const bool isToConnect)
 {
+  /*Temporary commented as we do not modify values in property panel
   if (isToConnect) {
     connect(theWidget, SIGNAL(beforeValuesChanged()),
             this, SLOT(onBeforeValuesChangedInPropertyPanel()));
@@ -1548,7 +1543,7 @@ void PartSet_SketcherMgr::connectToPropertyPanel(ModuleBase_ModelWidget* theWidg
                 this, SLOT(onBeforeValuesChangedInPropertyPanel()));
     disconnect(theWidget, SIGNAL(afterValuesChanged()),
                 this, SLOT(onAfterValuesChangedInPropertyPanel()));
-  }
+  }*/
 }
 
 void PartSet_SketcherMgr::widgetStateChanged(int thePreviousState)
index 9ea23ef94329f71fc6cc57931f2080557953f16b..7e0ce1f273d2c5d05af786b3dee64f45a049aded 100644 (file)
@@ -284,10 +284,10 @@ private slots:
   /// a nested sketch feature, it hides the feature in the viewer
   void onLeaveViewPort();
   /// Listens to the value changed signal and display the current operation feature
-  void onBeforeValuesChangedInPropertyPanel();
+  //void onBeforeValuesChangedInPropertyPanel();
   /// Listens to the signal about the modification of the values
   /// have been done in the property panel
-  void onAfterValuesChangedInPropertyPanel();
+  //void onAfterValuesChangedInPropertyPanel();
 
   void onMousePressed(ModuleBase_IViewWindow*, QMouseEvent*);
   void onMouseReleased(ModuleBase_IViewWindow*, QMouseEvent*);
index 059f3e2a19f27ea575d8cbde260ed8d69e606232..a442f465ca673b0a5fea6e0322e8cb092ad09cee 100755 (executable)
@@ -56,9 +56,6 @@ void XGUI_SelectionMgr::connectViewers()
 void XGUI_SelectionMgr::setSelectedOwners(const SelectMgr_IndexedMapOfOwner& theSelectedOwners,
                                           bool isUpdateViewer)
 {
-  SelectMgr_IndexedMapOfOwner aSelectedOwners;
-  selection()->selectedOwners(aSelectedOwners);
-
   Handle(AIS_InteractiveContext) aContext = myWorkshop->viewer()->AISContext();
   if (!aContext.IsNull()) {
     /// previous selection should be cleared, else there will be decomposition of selections:
@@ -67,8 +64,6 @@ void XGUI_SelectionMgr::setSelectedOwners(const SelectMgr_IndexedMapOfOwner& the
 
     for  (Standard_Integer i = 1, n = theSelectedOwners.Extent(); i <= n; i++)  {
       Handle(SelectMgr_EntityOwner) anOwner = theSelectedOwners(i);
-      if (aSelectedOwners.FindIndex(anOwner) > 0)
-        continue;
 
       aContext->AddOrRemoveSelected(anOwner, isUpdateViewer);
       #ifdef VINSPECTOR