]> SALOME platform Git repositories - modules/geom.git/commitdiff
Salome HOME
0022618: [CEA 1062] Define the transparency by default in the preferences
authorvsr <vsr@opencascade.com>
Wed, 2 Jul 2014 07:17:40 +0000 (11:17 +0400)
committervsr <vsr@opencascade.com>
Wed, 2 Jul 2014 07:17:40 +0000 (11:17 +0400)
doc/salome/gui/GEOM/images/pref15.png
doc/salome/gui/GEOM/input/geometry_preferences.doc
resources/SalomeApp.xml.in
src/GEOMGUI/GEOM_Displayer.cxx
src/GEOMGUI/GEOM_Displayer.h
src/GEOMGUI/GEOM_msg_en.ts
src/GEOMGUI/GEOM_msg_fr.ts
src/GEOMGUI/GEOM_msg_ja.ts
src/GEOMGUI/GeometryGUI.cxx

index 0fec2802ae0f8d6e8402420c3854ed17363a3c41..64aa25d740097337489f7ab885f4193ca2662496 100644 (file)
Binary files a/doc/salome/gui/GEOM/images/pref15.png and b/doc/salome/gui/GEOM/images/pref15.png differ
index 6d322fcb61cb153ea63f36266be08fb1aac22614..6c1f7d03b73d8fc86f6bbc4c63ae3f67eb5710f2 100644 (file)
@@ -33,8 +33,7 @@ default color for edges, vectors and wires (isolated lines).</li>
 vertices.</li>
 <li><b>Color of isolines</b> - allows to select default color for
 isolines.</li>
-<li><b>Step value for spin boxes</b> - allows to define the increment
-of values set in spin boxes.</li>
+<li><b>Transparency</b> - allows to define default transparency value.</li>
 <li><b>Deflection coefficient</b> - allows to define default deflection
 coefficient for lines and surfaces. A smaller coefficient provides
 better quality of a shape in the viewer.</li>
@@ -46,6 +45,8 @@ predefined materials.</li>
 <li><b>Isolines width</b> - allows to define default width of the isolines.</li>
 <li><b>Preview edges width</b> - allows to define width of the edges for preview.</li>
 <li><b>Measures line width</b> - allows to define lines width of measurements tools.</li>
+<li><b>Step value for spin boxes</b> - allows to define the increment
+of values set in spin boxes.</li>
 <li><b>Automatic bring to front</b> - when the option is on, the objects selected by the user automatically become "top-level".</li>
 
 </ul>
index 24a0f148d13b806b0af4d7f3a10ff26e4d5be8e4..47fa423d23212a19e783e92f99e16537e5cdccfd 100644 (file)
@@ -44,6 +44,7 @@
     <!-- Other module preferences -->
     <parameter name="SettingsGeomStep"    value="10" />
     <parameter name="display_mode"        value="2"  />
+    <parameter name="transparency"        value="0"  />
     <parameter name="shading_color"       value="#a7a7a7" />
     <parameter name="edges_in_shading_color" value="#000000" />
     <parameter name="wireframe_color"     value="255, 255, 0" />
index 4cd41a6eb7edd04bc70b20ea242aa7a27f5c1c28..8a896949271b40b99d762c45b03a59ac6300492f 100644 (file)
@@ -507,6 +507,9 @@ GEOM_Displayer::GEOM_Displayer( SalomeApp_Study* st )
   int aType = resMgr->integerValue("Geometry", "type_of_marker", (int)Aspect_TOM_PLUS);
   myWidth = resMgr->integerValue("Geometry", "edge_width", -1);
   myIsosWidth = resMgr->integerValue("Geometry", "isolines_width", -1);
+  
+  myTransparency = resMgr->integerValue("Geometry", "transparency", 0) / 100.;
+  myHasTransparency = false;
 
   myTypeOfMarker = (Aspect_TypeOfMarker)(std::min((int)Aspect_TOM_RING3, std::max((int)Aspect_TOM_POINT, aType)));
   myScaleOfMarker = (resMgr->integerValue("Geometry", "marker_scale", 1)-(int)GEOM::MS_10)*0.5 + 1.0;
@@ -519,7 +522,6 @@ GEOM_Displayer::GEOM_Displayer( SalomeApp_Study* st )
 
   myWidth = -1;
   myType = -1;
-  myTransparency = -1.0;
   myToActivate = true;
   // This parameter is used for activisation/deactivisation of objects to be displayed
 
@@ -2057,24 +2059,54 @@ void GEOM_Displayer::UnsetColor()
  *  Set transparency for shape displaying.
  */
 //=================================================================
-void GEOM_Displayer::SetTransparency( const double transparency )
+double GEOM_Displayer::SetTransparency( const double transparency )
 {
-  myTransparency = transparency;
+  double aPrevTransparency = myTransparency;
+  if ( transparency < 0 ) {
+    UnsetTransparency();
+  }
+  else {
+    myTransparency = transparency;
+    myHasTransparency = true;
+  }
+  return aPrevTransparency;
 }
 
+//=================================================================
+/*!
+ *  GEOM_Displayer::GetTransparency
+ *  Get transparency for shape displaying.
+ */
+//=================================================================
 double GEOM_Displayer::GetTransparency() const
 {
   return myTransparency;
 }
 
+//=================================================================
+/*!
+ *  GEOM_Displayer::HasTransparency
+ *  Check if transparency for shape displaying is set.
+ */
+//=================================================================
 bool GEOM_Displayer::HasTransparency() const
 {
-  return myTransparency != -1.0;
+  return myHasTransparency;
 }
 
-void GEOM_Displayer::UnsetTransparency()
+//=================================================================
+/*!
+ *  GEOM_Displayer::UnsetTransparency
+ *  Unset transparency for shape displaying.
+ */
+//=================================================================
+double GEOM_Displayer::UnsetTransparency()
 {
-  myTransparency = -1.0;
+  double aPrevTransparency = myTransparency;
+  SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr();
+  myTransparency = resMgr->integerValue("Geometry", "transparency", 0) / 100.;
+  myHasTransparency = false;
+  return aPrevTransparency;
 }
 
 
@@ -2452,7 +2484,8 @@ PropMap GEOM_Displayer::getDefaultPropertyMap()
                   arg( resMgr->integerValue( "Geometry", "iso_number_v", 1 ) ) );
 
   // - transparency (opacity = 1-transparency)
-  propMap.insert( GEOM::propertyName( GEOM::Transparency ), 0.0 );
+  propMap.insert( GEOM::propertyName( GEOM::Transparency ),
+                 resMgr->integerValue( "Geometry", "transparency", 0 ) / 100. );
 
   // - display mode (take default value from preferences)
   propMap.insert( GEOM::propertyName( GEOM::DisplayMode ),
index 257b4494ecd320c9dbae6dcb26ceb78f7bb01ec0..7061a58cb51de6e41f44f53745bd7b1a12b6a7dc 100644 (file)
@@ -139,8 +139,8 @@ public:
   int           GetColor  () const;
   bool          HasColor  () const;
 
-  void          SetTransparency  ( const double );
-  void          UnsetTransparency();
+  double        SetTransparency  ( const double );
+  double        UnsetTransparency();
   double        GetTransparency  () const;
   bool          HasTransparency  () const;
   
@@ -294,6 +294,7 @@ protected:
   Aspect_TypeOfMarker              myTypeOfMarker;
   double                           myScaleOfMarker;
   double                           myTransparency;
+  bool                             myHasTransparency;
 
 private:
   SalomeApp_Application* myApp;
index e125146d8ccc89dff6e9d60b371c64b03543b0ec..04e9f9d6b3d0f216b01330e36b8353dd3f745367 100644 (file)
@@ -3148,6 +3148,10 @@ Please, select face, shell or solid and try again</translation>
         <source>PREF_DISPLAY_MODE</source>
         <translation>Default display mode</translation>
     </message>
+    <message>
+        <source>PREF_TRANSPARENCY</source>
+        <translation>Transparency</translation>
+    </message>
     <message>
         <source>PREF_FREE_BOUND_COLOR</source>
         <translation>Color of free boundaries</translation>
index 4aa87fa5a760eaf3c5baac5d01e7ea43855df2bc..20d5ebe4edf192e07e6e38197c2af9d8c924826e 100644 (file)
@@ -3152,6 +3152,10 @@ Choisissez une face, une coque ou un solide et essayez de nouveau</translation>
         <source>PREF_DISPLAY_MODE</source>
         <translation>Mode de visualisation</translation>
     </message>
+    <message>
+        <source>PREF_TRANSPARENCY</source>
+        <translation>Transparence</translation>
+    </message>
     <message>
         <source>PREF_FREE_BOUND_COLOR</source>
         <translation>Couleur des contours libres</translation>
index e6ff64c649da4f04ca689ea8687633d72a314de1..2d39d9f4df73d3730c63606779249dcd32a51bcd 100644 (file)
       <source>PREF_DISPLAY_MODE</source>
       <translation>表示モード</translation>
     </message>
+    <message>
+        <source>PREF_TRANSPARENCY</source>
+        <translation>透明度</translation>
+    </message>
     <message>
       <source>PREF_FREE_BOUND_COLOR</source>
       <translation>自由境界の色</translation>
index e8745c0f2f7add00ac97d28139de21b9fff59940..c3cba1b416c5cf9af85c2116402d0b227262fd1c 100644 (file)
@@ -2338,8 +2338,8 @@ void GeometryGUI::createPreferences()
   int top_lev_dm = addPreference( tr( "PREF_TOPLEVEL_DM" ), genGroup,
                       LightApp_Preferences::Selector, "Geometry", "toplevel_dm" );
 
-  int step = addPreference( tr( "PREF_STEP_VALUE" ), genGroup,
-                            LightApp_Preferences::IntSpin, "Geometry", "SettingsGeomStep" );
+  int transparency = addPreference( tr( "PREF_TRANSPARENCY" ), genGroup,
+                                   LightApp_Preferences::IntSpin, "Geometry", "transparency" );
 
   int defl = addPreference( tr( "PREF_DEFLECTION" ), genGroup,
                             LightApp_Preferences::DblSpin, "Geometry", "deflection_coeff" );
@@ -2375,6 +2375,9 @@ void GeometryGUI::createPreferences()
     setPreferenceProperty( wd[i], "max", 5 );
   }
 
+  int step = addPreference( tr( "PREF_STEP_VALUE" ), genGroup,
+                            LightApp_Preferences::IntSpin, "Geometry", "SettingsGeomStep" );
+
   addPreference( tr( "PREF_AUTO_BRING_TO_FRONT" ), genGroup,
                  LightApp_Preferences::Bool, "Geometry", "auto_bring_to_front" );
 
@@ -2523,6 +2526,10 @@ void GeometryGUI::createPreferences()
   setPreferenceProperty( step, "max", 10000 );
   setPreferenceProperty( step, "precision", 3 );
 
+  // Set property for trandparency value for spinboxes
+  setPreferenceProperty( transparency, "min", 0 );
+  setPreferenceProperty( transparency, "max", 100 );
+
   // Set property for deflection value for spinboxes
   setPreferenceProperty( defl, "min", GEOM::minDeflection() );
   setPreferenceProperty( defl, "max", 1.0 );