]> SALOME platform Git repositories - modules/shaper.git/commitdiff
Salome HOME
Get back the Trihedron deactivation in the viewer #567
authornds <natalia.donis@opencascade.com>
Thu, 28 May 2015 11:09:27 +0000 (14:09 +0300)
committernds <natalia.donis@opencascade.com>
Thu, 28 May 2015 11:09:27 +0000 (14:09 +0300)
src/XGUI/XGUI_Displayer.cpp

index 1fef7d318df56218a33259c935498e3c42dcbea8..6c0bec4b19c87ad74e150a71d2ec9bcddbca2f1b 100644 (file)
@@ -367,13 +367,10 @@ void XGUI_Displayer::activateObjects(const QIntList& theModes, const QObjectPtrL
     }
   }
 
-  Handle(AIS_Trihedron) aTrihedron;
   AIS_ListIteratorOfListOfInteractive aLIt(aPrsList);
   for(aLIt.Initialize(aPrsList); aLIt.More(); aLIt.Next()){
     anAISIO = aLIt.Value();
-    aTrihedron = Handle(AIS_Trihedron)::DownCast(anAISIO);
-    if (aTrihedron.IsNull())
-      activate(anAISIO, myActiveSelectionModes);
+    activate(anAISIO, myActiveSelectionModes);
   }
 }
 
@@ -842,22 +839,27 @@ void XGUI_Displayer::activate(const Handle(AIS_InteractiveObject)& theIO,
   if (aTColModes.IsEmpty())
     aContext->Load(theIO, -1, true);
 
-    //aContext->Load(anAISIO, -1, true);
-    // In order to clear active modes list
-  if (theModes.size() == 0) {
-    //aContext->Load(anAISIO, 0, true);
-    aContext->Activate(theIO);
-#ifdef DEBUG_ACTIVATE
-    qDebug("activate in all modes");
-#endif
-  } else {
-    foreach(int aMode, theModes) {
-      //aContext->Load(anAISIO, aMode, true);
-      if (!aModesActivatedForIO.contains(aMode)) {
-        aContext->Activate(theIO, aMode);
-#ifdef DEBUG_ACTIVATE
-        qDebug(QString("activate: %1").arg(aMode).toStdString().c_str());
-#endif
+  // trihedron AIS check should be after the AIS loading.
+  // If it is not loaded, it is steel selectable in the viewer.
+  Handle(AIS_Trihedron) aTrihedron = Handle(AIS_Trihedron)::DownCast(theIO);
+  if (aTrihedron.IsNull()) {
+      //aContext->Load(anAISIO, -1, true);
+      // In order to clear active modes list
+    if (theModes.size() == 0) {
+      //aContext->Load(anAISIO, 0, true);
+      aContext->Activate(theIO);
+  #ifdef DEBUG_ACTIVATE
+      qDebug("activate in all modes");
+  #endif
+    } else {
+      foreach(int aMode, theModes) {
+        //aContext->Load(anAISIO, aMode, true);
+        if (!aModesActivatedForIO.contains(aMode)) {
+          aContext->Activate(theIO, aMode);
+  #ifdef DEBUG_ACTIVATE
+          qDebug(QString("activate: %1").arg(aMode).toStdString().c_str());
+  #endif
+        }
       }
     }
   }