]> SALOME platform Git repositories - modules/geom.git/commitdiff
Salome HOME
Fix remarks related to the "0021757: EDF 1829 : Activate bring to front action on...
authorrnv <rnv@opencascade.com>
Fri, 15 Nov 2013 10:17:50 +0000 (10:17 +0000)
committerrnv <rnv@opencascade.com>
Fri, 15 Nov 2013 10:17:50 +0000 (10:17 +0000)
src/GEOMGUI/GEOMGUI_OCCSelector.cxx
src/GEOMGUI/GEOM_Displayer.cxx
src/GEOMGUI/GEOM_Displayer.h
src/GEOMGUI/GeometryGUI.cxx

index 9b392309647ad202dfccf45b46e75f7f0de5f0e7..25ef6cbc9bcca6f619105be00100bbe9ed252d34 100644 (file)
@@ -30,6 +30,7 @@
 #include <OCCViewer_ViewModel.h>
 
 #include <SUIT_Session.h>
+#include <SUIT_ResourceMgr.h>
 #include <SalomeApp_Study.h>
 #include <SALOME_InteractiveObject.hxx>
 
@@ -197,6 +198,9 @@ void GEOMGUI_OCCSelector::setSelection( const SUIT_DataOwnerPtrList& aList )
   if ( !vw )
     return;
 
+  SUIT_ResourceMgr* aResourceMgr = SUIT_Session::session()->resourceMgr();
+  bool anAutoBringToFront = aResourceMgr->booleanValue( "Geometry", "auto_bring_to_front", false );
+
   Handle(AIS_InteractiveContext) ic = vw->getAISContext();
 
   // "entry - list_of_int" map for LOCAL selection
@@ -335,11 +339,16 @@ void GEOMGUI_OCCSelector::setSelection( const SUIT_DataOwnerPtrList& aList )
     else
       ic->AddOrRemoveSelected( Handle(AIS_InteractiveObject)::DownCast(owner->Selectable()), false );
   }
+
   ic->SetAutomaticHilight(isAutoHilight); //Bug 17269: restore mode
-  if (n < 3000)
-    ic->HilightSelected(/*updateviewer*/Standard_True);
-  else
-    vw->update();
+
+  //rnv: In case Automatic Bring To Front viewer will be updated later
+  if(!anAutoBringToFront) {
+    if (n < 3000)
+      ic->HilightSelected(Standard_True);
+    else
+      vw->update();
+  }
 
   // fill extra selected
   mySelectedExternals.clear();
index a3e7de10c031f0ec63c6a266e28fb01db3195121..0746548902bf9bb72c8db081c71837c92972b49e 100644 (file)
@@ -1590,13 +1590,13 @@ void GEOM_Displayer::AfterDisplay( SALOME_View* v, const SALOME_OCCPrs* p )
       }
     }
   }
-  UpdateColorScale();
+  UpdateColorScale(false,false);
 }
 
 void GEOM_Displayer::AfterErase( SALOME_View* v, const SALOME_OCCPrs* p )
 {
   LightApp_Displayer::AfterErase( v, p );
-  UpdateColorScale();
+  UpdateColorScale(false,false);
 }
 
 //=================================================================
@@ -2415,7 +2415,7 @@ Standard_Boolean GEOM_Displayer::FindColor( const Standard_Real aValue,
   } 
 }
 
-void GEOM_Displayer::UpdateColorScale( const bool theIsRedisplayFieldSteps )
+void GEOM_Displayer::UpdateColorScale( const bool theIsRedisplayFieldSteps, const bool updateViewer ) 
 {
   SalomeApp_Study* aStudy = dynamic_cast<SalomeApp_Study*>( myApp->activeStudy() );
   if( !aStudy )
@@ -2552,6 +2552,6 @@ void GEOM_Displayer::UpdateColorScale( const bool theIsRedisplayFieldSteps )
       }
     }
   }
-
-  UpdateViewer();
+  if(updateViewer)
+    UpdateViewer();
 }
index e5ee15cec857aa0ec20d159e01dd4fcf1e302eb8..6d3f0321697a74a75b87c5ac07a402dbca56633c 100644 (file)
@@ -193,7 +193,7 @@ public:
                                                 SALOME_View* = 0);
 
   /* Update visibility and parameters of the currently selected field step's color scale */
-  void UpdateColorScale( const bool theIsRedisplayFieldSteps = false );
+  void UpdateColorScale( const bool theIsRedisplayFieldSteps = false, const bool updateViewer = true );
 
 protected:
   /* internal methods */
index 0a480ed0a9eace3825289476b267960045a76028..6ba66d77664ce0f06ead94b90b8756ee371441fd 100644 (file)
@@ -2546,7 +2546,7 @@ void GeometryGUI::preferencesChanged( const QString& section, const QString& par
       {
         GEOM_Displayer aDisplayer( aStudy );
         bool anIsRedisplayFieldSteps = param == QString("scalar_bar_nb_intervals");
-        aDisplayer.UpdateColorScale( anIsRedisplayFieldSteps );
+        aDisplayer.UpdateColorScale( anIsRedisplayFieldSteps, true );
       }
     }
   }