]> SALOME platform Git repositories - modules/hydro.git/commitdiff
Salome HOME
refs #512: Control of automatic fit all
authorstv <stv@opencascade.com>
Fri, 15 May 2015 11:18:41 +0000 (14:18 +0300)
committerstv <stv@opencascade.com>
Fri, 15 May 2015 11:18:41 +0000 (14:18 +0300)
src/HYDROGUI/HYDROGUI_Module.cxx
src/HYDROGUI/resources/HYDROGUI_msg_en.ts
src/HYDROGUI/resources/LightApp.xml

index 87014307d5b963a43459185a89e821f7211d6584..4ba884b4bdb63be4f2e13942724c310a2b4b936e 100644 (file)
@@ -734,11 +734,15 @@ void HYDROGUI_Module::createPreferences()
 
   setPreferenceProperty( typeOfCursor, "indexes", aCursorTypeIndicesList );
   setPreferenceProperty( typeOfCursor, "icons",   aCursorTypeIconsList );
+
+  int viewerGroup = addPreference( tr( "PREF_GROUP_VIEWER" ), genTab );
+  addPreference( tr( "PREF_VIEWER_AUTO_FITALL" ), viewerGroup,
+                 LightApp_Preferences::Bool, "HYDRO", "auto_fit_all" );
 }
 
 void HYDROGUI_Module::update( const int flags )
 {
-  if( !isUpdateEnabled() )
+  if ( !isUpdateEnabled() )
     return;
 
   QApplication::setOverrideCursor( Qt::WaitCursor );
@@ -751,6 +755,12 @@ void HYDROGUI_Module::update( const int flags )
   QStringList aSelectedEntries = storeSelection();
 
   bool aDoFitAll = flags & UF_FitAll;
+  if ( aDoFitAll )
+  {
+    SUIT_ResourceMgr* aResMgr = getApp()->resourceMgr();
+    aDoFitAll = aResMgr->booleanValue( "HYDRO", "auto_fit_all", false );
+  }
+
   if( ( flags & UF_Viewer ) )
     updateViewer( getDisplayer(), flags & UF_GV_Init, flags & UF_GV_Forced, aDoFitAll ); 
 
@@ -950,12 +960,14 @@ void HYDROGUI_Module::setObjectVisible( const int theViewId,
     anObjectState.Visibility = theState;
 
     HYDROGUI_DataObject* hydroObject = getDataModel()->getDataObject( theObject );
-
-    SUIT_AbstractModel* treeModel = dynamic_cast<SUIT_AbstractModel*>( getApp()->objectBrowser()->model() );
-    QString id = hydroObject->text( hydroObject->customData( Qtx::IdType ).toInt() );
-    Qtx::VisibilityState visState = treeModel->visibilityState( id );
-    if ( visState != Qtx::UnpresentableState )
-        treeModel->setVisibilityState( id, theState ? Qtx::ShownState : Qtx::HiddenState );
+    if ( hydroObject )
+    {
+        SUIT_AbstractModel* treeModel = dynamic_cast<SUIT_AbstractModel*>( getApp()->objectBrowser()->model() );
+        QString id = hydroObject->text( hydroObject->customData( Qtx::IdType ).toInt() );
+        Qtx::VisibilityState visState = treeModel->visibilityState( id );
+        if ( visState != Qtx::UnpresentableState )
+            treeModel->setVisibilityState( id, theState ? Qtx::ShownState : Qtx::HiddenState );
+    }
   }
 }
 
@@ -1666,5 +1678,5 @@ void HYDROGUI_Module::onObjectClicked( SUIT_DataObject* theObject, int theColumn
 
   setObjectVisible( HYDROGUI_Tool::GetActiveViewId( this ), hydroObject->modelObject(), vis );
 
-  update( UF_OCCViewer | UF_FitAll );
+  update( UF_OCCViewer | ( visState == Qtx::ShownState ? UF_FitAll : 0 ) );
 }
index 862778450422773bd8e51b45537fdec8a21282cc..8d45f40808d4d2d397ea7823d3b57576b02d8182 100644 (file)
@@ -237,6 +237,14 @@ All supported formats (*.brep *.iges *.igs *.step *.stp)</translation>
       <source>PREF_TYPE_OF_CURSOR</source>
       <translation>Type</translation>
     </message>
+    <message>
+      <source>PREF_GROUP_VIEWER</source>
+      <translation>Viewer</translation>
+    </message>
+    <message>
+      <source>PREF_VIEWER_AUTO_FITALL</source>
+      <translation>Make automatic fit all after show object operation</translation>
+    </message>
   </context>
 
   <context>
index 2b595df6a21192b08f92c1a99d6f36ff5306c7fe..dbd155861b4c3eaaad2404ebf648a5337d6ee39b 100644 (file)
@@ -28,6 +28,7 @@
     <parameter value="HYDROGUI" name="library" />
     <parameter value="0" name="parameter_test" />
     <parameter name="version" value="1.1"/>
+    <parameter value="false" name="auto_fit_all"/>
   </section>
   <section name="launch" >
     <parameter value="HYDRO" name="modules" />