]> SALOME platform Git repositories - modules/geom.git/blobdiff - src/GEOMBase/GEOMBase_Helper.cxx
Salome HOME
0021672: [CEA 565] Dump Study from script
[modules/geom.git] / src / GEOMBase / GEOMBase_Helper.cxx
index 50c5c46e6658573be4331cb59f512afa275facbd..8fea8899a1412835239205a225a7c55a3a3b4c19 100755 (executable)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2012  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
@@ -37,6 +37,7 @@
 #include <SUIT_ViewModel.h>
 #include <SUIT_MessageBox.h>
 #include <SUIT_OverrideCursor.h>
+#include <SUIT_ResourceMgr.h>
 
 #include <SalomeApp_Module.h>
 #include <SalomeApp_Application.h>
@@ -88,7 +89,8 @@ GEOM::GEOM_Gen_ptr GEOMBase_Helper::getGeomEngine()
 //================================================================
 GEOMBase_Helper::GEOMBase_Helper( SUIT_Desktop* desktop )
   : myDesktop( desktop ), myViewWindow( 0 ), myDisplayer( 0 ), myCommand( 0 ), isPreview( false ),
-    myIsApplyAndClose( false ), myIsOptimizedBrowsing( false )
+    myIsApplyAndClose( false ), myIsOptimizedBrowsing( false ), myIsWaitCursorEnabled( true ),
+    myIsDisableBrowsing(false)
 {
 }
 
@@ -252,7 +254,7 @@ void GEOMBase_Helper::redisplay( GEOM::GEOM_Object_ptr object,
 // Purpose  : Method for displaying preview based on execute() results
 //================================================================
 void GEOMBase_Helper::displayPreview( const bool   display,
-                                     const bool   activate,
+                                      const bool   activate,
                                       const bool   update,
                                       const bool   toRemoveFromEngine,
                                       const double lineWidth,
@@ -278,6 +280,10 @@ void GEOMBase_Helper::displayPreview( const bool   display,
   try {
     SUIT_OverrideCursor wc;
     ObjectList objects;
+    if ( !isWaitCursorEnabled() )
+      wc.suspend();
+    
     if ( !execute( objects ) || !getOperation()->IsDone() ) {
       wc.suspend();
     }
@@ -317,7 +323,12 @@ void GEOMBase_Helper::displayPreview( GEOM::GEOM_Object_ptr object,
   getDisplayer()->SetColor( color == -1 ? Quantity_NOC_VIOLET : color );
 
   // set width of displayed shape
-  getDisplayer()->SetWidth( lineWidth );
+  int lw = lineWidth;
+  if(lw == -1) {
+    SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr();    
+    lw = resMgr->integerValue("Geometry", "preview_edge_width", -1);
+  }
+  getDisplayer()->SetWidth( lw );
 
   // set display mode of displayed shape
   int aPrevDispMode = getDisplayer()->SetDisplayMode( displayMode );
@@ -760,7 +771,6 @@ bool GEOMBase_Helper::commitCommand( const char* )
 bool GEOMBase_Helper::hasCommand() const
 {
   bool res = (bool) myCommand;
-  MESSAGE("hasCommand = "<<res)
   return (bool)myCommand;
 }
 
@@ -803,7 +813,7 @@ bool GEOMBase_Helper::checkViewWindow()
 //            It perfroms user input validation, then it
 //            performs a proper operation and manages transactions, etc.
 //================================================================
-bool GEOMBase_Helper::onAccept( const bool publish, const bool useTransaction )
+bool GEOMBase_Helper::onAccept( const bool publish, const bool useTransaction, bool erasePreviewFlag )
 {
   SalomeApp_Study* appStudy = dynamic_cast<SalomeApp_Study*>( SUIT_Session::session()->activeApplication()->activeStudy() );
   if ( !appStudy ) 
@@ -828,8 +838,9 @@ bool GEOMBase_Helper::onAccept( const bool publish, const bool useTransaction )
     showError( msg );
     return false;
   }
-
-  erasePreview( false );
+  
+  if(erasePreviewFlag)
+    erasePreview( false );
 
   bool result = false;
 
@@ -890,7 +901,8 @@ bool GEOMBase_Helper::onAccept( const bool publish, const bool useTransaction )
           commitCommand();
           updateObjBrowser();
           if( SUIT_Application* anApp = SUIT_Session::session()->activeApplication() ) {
-            if( LightApp_Application* aLightApp = dynamic_cast<LightApp_Application*>( anApp ) )
+            LightApp_Application* aLightApp = dynamic_cast<LightApp_Application*>( anApp );
+            if(aLightApp && !isDisableBrowsing() )
               aLightApp->browseObjects( anEntryList, isApplyAndClose(), isOptimizedBrowsing() );
             anApp->putInfo( QObject::tr("GEOM_PRP_DONE") );
           }