Salome HOME
refs #1458: disable chained panning on operations
[modules/gui.git] / src / LightApp / LightApp_ShowHideOp.cxx
index 60828a5841834fe6ccafcd032365aa9ce715ac58..8390bfe98706f0de809c8cd34be18fcdb0a46fd0 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2014  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2016  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
 #include "LightApp_SelectionMgr.h"
 #include "LightApp_Selection.h"
 
+#include "SUIT_OverrideCursor.h"
+
 #ifndef DISABLE_SALOMEOBJECT
   #include <SALOME_ListIO.hxx>
-  #include <SALOME_ListIteratorOfListIO.hxx>
 #endif
 
 /*!
@@ -79,22 +80,6 @@ void LightApp_ShowHideOp::startOperation()
     return;
   }
 
-  QString mod_name;
-  if( sel->count()>0 )
-  {
-    QString aStr =  sel->parameter( 0, "displayer" ).toString();
-    mod_name = app->moduleTitle( aStr );
-  }
-  else if( app->activeModule() )
-    mod_name = app->moduleTitle( app->activeModule()->name() );
-
-  LightApp_Displayer* d = LightApp_Displayer::FindDisplayer( mod_name, true );
-  if( !d )
-  {
-    abort();
-    return;
-  }
-
   if( myActionType==DISPLAY_ONLY || myActionType==ERASE_ALL )
   {
     //ERASE ALL
@@ -109,12 +94,30 @@ void LightApp_ShowHideOp::startOperation()
     }
     if( myActionType==ERASE_ALL )
     {
-      d->UpdateViewer();
+      // Temporary displayer just to update viewer!
+      LightApp_Displayer ld;
+      ld.UpdateViewer();
       commit();
       return;
     }
   }
 
+  QString mod_name;
+  if( sel->count()>0 )
+  {
+    QString aStr =  sel->parameter( 0, "displayer" ).toString();
+    mod_name = app->moduleTitle( aStr );
+  }
+  else if( app->activeModule() )
+    mod_name = app->moduleTitle( app->activeModule()->name() );
+
+  LightApp_Displayer* d = LightApp_Displayer::FindDisplayer( mod_name, true );
+  if( !d )
+  {
+    abort();
+    return;
+  }
+
   QStringList entries;
 
 #ifndef DISABLE_SALOMEOBJECT
@@ -150,6 +153,7 @@ void LightApp_ShowHideOp::startOperation()
     objEntries.append( study->referencedToEntry( *it ) ); 
   
   if( myActionType==DISPLAY || myActionType==DISPLAY_ONLY ) {
+    SUIT_OverrideCursor wc;
     d->Display( objEntries, false, 0 );
     mgr->setSelectedObjects(selObjs);
   }