Salome HOME
Merge remote-tracking branch 'remotes/origin/master'
[modules/shaper.git] / src / XGUI / XGUI_SelectionMgr.cpp
index d1d9f83a0a008f3c01f825b84c7dcd43ca1c84c1..caf78cededfa473823d177c7ad21591edcd6f852 100644 (file)
@@ -12,6 +12,8 @@
 #include <ModelAPI_PluginManager.h>
 #include <ModelAPI_AttributeDocRef.h>
 #include <ModelAPI_Data.h>
+#include <ModelAPI_Result.h>
+#include <ModelAPI_Object.h>
 
 
 
@@ -40,24 +42,27 @@ void XGUI_SelectionMgr::connectViewers()
 //**************************************************************
 void XGUI_SelectionMgr::onObjectBrowserSelection()
 {
-  QFeatureList aFeatures = myWorkshop->objectBrowser()->selectedFeatures();
+  QList<ObjectPtr> aObjects = myWorkshop->objectBrowser()->selectedObjects();
   XGUI_Displayer* aDisplayer = myWorkshop->displayer();
-  aDisplayer->setSelected(aFeatures);
+  aDisplayer->setSelected(aObjects);
   emit selectionChanged();
 }
 
 //**************************************************************
 void XGUI_SelectionMgr::onViewerSelection()
 {
-  QFeatureList aFeatures;
+  QList<ObjectPtr> aFeatures;
   Handle(AIS_InteractiveContext) aContext = myWorkshop->viewer()->AISContext();
   for (aContext->InitSelected(); aContext->MoreSelected(); aContext->NextSelected()) {
     Handle(AIS_InteractiveObject) anIO = aContext->SelectedInteractive();
-    FeaturePtr aFeature = myWorkshop->displayer()->getFeature(anIO);
-    if (aFeature)
-      aFeatures.append(aFeature);
+    ObjectPtr aResult = myWorkshop->displayer()->getObject(anIO);
+    if (aResult)
+      aFeatures.append(aResult);
   }
-  myWorkshop->objectBrowser()->setFeaturesSelected(aFeatures);
+  bool aBlocked = myWorkshop->objectBrowser()->blockSignals(true);
+  myWorkshop->objectBrowser()->setObjectsSelected(aFeatures);
+  myWorkshop->objectBrowser()->blockSignals(aBlocked);
+
   emit selectionChanged();
 }