Salome HOME
An interface creation for a separate filter in order to use as a filter the OCC reali...
[modules/shaper.git] / src / PartSet / PartSet_WidgetSketchLabel.cpp
index def4e042e0e30b19c833cf5a2c6c40d577d184c5..d5aa73b6bde91d841f5e823131761af5955e28b4 100644 (file)
@@ -1,3 +1,5 @@
+// Copyright (C) 2014-20xx CEA/DEN, EDF R&D
+
 // File:        PartSet_WidgetSketchLabel.cpp
 // Created:     07 July 2014
 // Author:      Vitaly SMETANNIKOV
@@ -10,6 +12,7 @@
 #include <XGUI_SelectionMgr.h>
 #include <XGUI_Selection.h>
 #include <XGUI_ViewerProxy.h>
+#include <XGUI_ActionsMgr.h>
 
 #include <ModuleBase_Operation.h>
 #include <ModuleBase_ViewerPrs.h>
@@ -101,9 +104,14 @@ void PartSet_WidgetSketchLabel::onPlaneSelected()
 
         // Clear selection mode and define sketching mode
         XGUI_Displayer* aDisp = myWorkshop->displayer();
-        aDisp->removeSelectionFilter(myPlaneFilter);
+        aDisp->removeSelectionFilter(myFaceFilter);
         aDisp->closeLocalContexts();
+        emit planeSelected(plane());
         setSketchingMode();
+
+        // Update sketcher actions
+        XGUI_ActionsMgr* anActMgr = myWorkshop->actionsMgr();
+        anActMgr->update();
       }
     }
   }
@@ -127,13 +135,13 @@ void PartSet_WidgetSketchLabel::activate()
 
     XGUI_Displayer* aDisp = myWorkshop->displayer();
     aDisp->openLocalContext();
-    aDisp->activateObjectsOutOfContext(QIntList());
-    if (myPlaneFilter.IsNull())
-      myPlaneFilter = new StdSelect_FaceFilter(StdSelect_Plane);
-    aDisp->addSelectionFilter(myPlaneFilter);
+    aDisp->activateObjects(QIntList());
+    if (myFaceFilter.IsNull())
+      myFaceFilter = new StdSelect_FaceFilter(StdSelect_Plane);
+    aDisp->addSelectionFilter(myFaceFilter);
     QIntList aModes;
     aModes << TopAbs_FACE;
-    aDisp->setSelectionModes(aModes);
+    aDisp->activateObjects(aModes);
 
     myLabel->setText(myText);
     myLabel->setToolTip(myTooltip);
@@ -147,7 +155,7 @@ void PartSet_WidgetSketchLabel::deactivate()
 {
 
   XGUI_Displayer* aDisp = myWorkshop->displayer();
-  aDisp->removeSelectionFilter(myPlaneFilter);
+  aDisp->removeSelectionFilter(myFaceFilter);
   //aDisp->removeSelectionFilter(mySketchFilter);
   aDisp->closeLocalContexts();
   erasePreviewPlanes();
@@ -259,7 +267,7 @@ void PartSet_WidgetSketchLabel::setSketchingMode()
   XGUI_Displayer* aDisp = myWorkshop->displayer();
   QIntList aModes;
   // Clear standard selection modes if they are defined
-  aDisp->setSelectionModes(aModes);
+  aDisp->activateObjects(aModes);
   aDisp->openLocalContext();
 
   // Set filter
@@ -277,5 +285,5 @@ void PartSet_WidgetSketchLabel::setSketchingMode()
   aModes.append(AIS_Shape::SelectionMode((TopAbs_ShapeEnum) TopAbs_VERTEX));
   aModes.append(AIS_Shape::SelectionMode((TopAbs_ShapeEnum) TopAbs_EDGE));
 
-  aDisp->activateObjectsOutOfContext(aModes);
+  aDisp->activateObjects(aModes);
 }