]> SALOME platform Git repositories - modules/visu.git/commitdiff
Salome HOME
To improve "slider" functionality
authorapo <apo@opencascade.com>
Mon, 19 May 2008 08:02:49 +0000 (08:02 +0000)
committerapo <apo@opencascade.com>
Mon, 19 May 2008 08:02:49 +0000 (08:02 +0000)
src/VISUGUI/VisuGUI.cxx
src/VISUGUI/VisuGUI_Slider.cxx
src/VISUGUI/VisuGUI_Slider.h

index f705568e0ab33b58508d87f0a9a9700bb7bdbfbe..3ce326cdedef73bcabbc1afd355ed40e30d977c5 100644 (file)
@@ -2873,8 +2873,6 @@ VisuGUI
   bool aResult = SalomeApp_Module::activateModule( theStudy );
 
   if ( !mySlider ) {
-    SALOMEDS::Study_var aStudy = GetDSStudy( GetCStudy( GetAppStudy( this ) ) );
-    VISU::ColoredPrs3dCache_var aCache = GetVisuGen( this )->GetColoredPrs3dCache( aStudy );
     mySlider = new VisuGUI_Slider( this, getApp()->desktop(), getApp()->selectionMgr() );
   }
 
index 1c06a069942ca3f407acd06bf821601bf15132da..614608913eefddc4ae71b70f78dab935818f3a0e 100644 (file)
 VisuGUI_Slider::VisuGUI_Slider( VisuGUI* theModule, 
                                QMainWindow* theParent,
                                LightApp_SelectionMgr* theSelectionMgr )
-  : QWidget( theParent ),
-    myViewManager( VISU::GetVisuGen( theModule )->GetViewManager() ),
-    mySelectionMgr( theSelectionMgr )
+  : QWidget( theParent )
+  , myViewManager( VISU::GetVisuGen( theModule )->GetViewManager() )
+  , mySelectionMgr( theSelectionMgr )
+  , myModule( theModule )
 {
   setWindowTitle( tr("TITLE") );
 
@@ -278,7 +279,8 @@ VisuGUI_Slider::VisuGUI_Slider( VisuGUI* theModule,
   connect( myTimer,            SIGNAL( timeout() ),           SLOT( onTimeout() ) );
 
   //----------------------------------------------------------------------------
-  connect( myLimitedMemoryButton, SIGNAL( toggled( bool ) ), myLimitedMemory, SLOT( setEnabled( bool ) ) );
+  connect( myLimitedMemoryButton, SIGNAL( toggled( bool ) ), this, SLOT( onMemoryModeChanged( bool ) ) );
+  connect( myLimitedMemory, SIGNAL( valueChanged( double ) ), this, SLOT( onMemorySizeChanged( double ) ) );
 
   //----------------------------------------------------------------------------
   enableControls( false );
@@ -306,6 +308,29 @@ void VisuGUI_Slider::onModuleActivated()
   setHidden( false );
 }
 
+
+void VisuGUI_Slider::onMemoryModeChanged( bool )
+{
+  using namespace VISU;
+  SALOMEDS::Study_var aStudy = GetDSStudy( GetCStudy( GetAppStudy( myModule ) ) );
+  VISU::ColoredPrs3dCache_var aCache = GetVisuGen( myModule )->GetColoredPrs3dCache( aStudy );
+
+  if ( myLimitedMemoryButton->isChecked() ) {
+    aCache->SetMemoryMode( VISU::ColoredPrs3dCache::LIMITED );
+    aCache->SetLimitedMemory( myLimitedMemory->value() );
+  } else
+    aCache->SetMemoryMode( VISU::ColoredPrs3dCache::MINIMAL );
+
+  myLimitedMemory->setEnabled( myLimitedMemoryButton->isChecked() );
+}
+
+
+void VisuGUI_Slider::onMemorySizeChanged( double )
+{
+  onMemoryModeChanged( myLimitedMemoryButton->isChecked() );
+}
+
+
 bool VisuGUI_Slider::checkHolderList()
 {
   THolderList aHolderList;
index ecd4f5e177f58fae7e7dbf65e32b6a2e7c3547f2..97397c5bfaede0eda799b3d58a701a3df428f3f9 100644 (file)
@@ -83,6 +83,9 @@ public slots:
 
   virtual void     onTimeout();
 
+  void onMemoryModeChanged( bool );
+  void onMemorySizeChanged( double );
+
 protected slots:
   void onModuleDeactivated();
   void onModuleActivated();
@@ -94,7 +97,8 @@ protected:
 
 private:
   LightApp_SelectionMgr* mySelectionMgr;
-  VISU::ViewManager_var myViewManager;
+  VISU::ViewManager_var  myViewManager;
+  VisuGUI*               myModule;
 
   QSlider*         mySlider;
   QLabel*          myFirstTimeStamp;