]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
Changes the signatures of visual parameter methods
authorsrn <srn@opencascade.com>
Fri, 27 Jan 2006 09:29:53 +0000 (09:29 +0000)
committersrn <srn@opencascade.com>
Fri, 27 Jan 2006 09:29:53 +0000 (09:29 +0000)
src/SalomeApp/SalomeApp_Study.cxx
src/SalomeApp/SalomeApp_Study.h
src/SalomeApp/SalomeApp_VisualParameters.cxx
src/SalomeApp/SalomeApp_VisualParameters.h

index 2d5532af88b38545f2f5a746acd1a8d23e457725..693e52a4ef50baf5886a64c4b0cbf401eff1445b 100644 (file)
@@ -137,7 +137,8 @@ bool SalomeApp_Study::openDocument( const QString& theFileName )
   emit opened( this );
   study->IsSaved(true);
 
-  restoreState(1);//############### VISUAL PARAMETERS
+  vector<int> savePoints = getSavePoints();
+  if(savePoints.size() > 0) restoreState(savePoints[savePoints.size()-1]);//############### VISUAL PARAMETERS
 
   return res;
 }
@@ -187,7 +188,7 @@ bool SalomeApp_Study::loadDocument( const QString& theStudyName )
 //=======================================================================
 bool SalomeApp_Study::saveDocumentAs( const QString& theFileName )
 {
-  storeState(1);//############### VISUAL PARAMETERS
+  storeState();//############### VISUAL PARAMETERS
 
   ModelList list; dataModels( list );
 
@@ -224,7 +225,7 @@ bool SalomeApp_Study::saveDocumentAs( const QString& theFileName )
 //=======================================================================
 bool SalomeApp_Study::saveDocument()
 {
-  storeState(1); //############### VISUAL PARAMETERS
+  storeState(); //############### VISUAL PARAMETERS
 
   ModelList list; dataModels( list );
 
@@ -642,16 +643,16 @@ void SalomeApp_Study::components( QStringList& comps ) const
 }
 
 //================================================================
-// Function : getNbSavePoints
-/*! Purpose : returns a number of saved points
+// Function : getSavePoints
+/*! Purpose : returns a list of saved points' IDs
 */
 //================================================================
-int SalomeApp_Study::getNbSavePoints()
+vector<int> SalomeApp_Study::getSavePoints()
 {
-  int nbSavePoints = 0;
+  vector<int> v;
 
   _PTR(SObject) so = studyDS()->FindComponent("Interface Applicative");
-  if(!so) return 0;
+  if(!so) return v;
 
   _PTR(StudyBuilder) builder = studyDS()->NewBuilder();
   _PTR(ChildIterator) anIter ( studyDS()->NewChildIterator( so ) );
@@ -659,10 +660,10 @@ int SalomeApp_Study::getNbSavePoints()
   {
     _PTR(SObject) val( anIter->Value() );
     _PTR(GenericAttribute) genAttr;
-    if(builder->FindAttribute(val, genAttr, "AttributeParameter")) nbSavePoints++;
+    if(builder->FindAttribute(val, genAttr, "AttributeParameter")) v.push_back(val->Tag());
   }
 
-  return nbSavePoints;
+  return v;
 }
 
 //================================================================
@@ -692,9 +693,15 @@ void SalomeApp_Study::setNameOfSavePoint(int savePoint, const QString& nameOfSav
 /*! Purpose : store the visual parameters of the viewers
 */
 //================================================================
-void SalomeApp_Study::storeState(int savePoint)
+int SalomeApp_Study::storeState()
 {
-  SUIT_ViewWindow* activeWindow = application()->desktop()->activeWindow();
+  SUIT_ViewWindow* activeWindow = 0;
+  if(application()->desktop()) activeWindow = application()->desktop()->activeWindow();
+
+  int savePoint = 1;
+  vector<int> savePoints = getSavePoints();
+  //Calculate a new savePoint number = the last save point number + 1
+  if(savePoints.size() > 0) savePoint = savePoints[savePoints.size()-1] + 1;
 
   //Remove the previous content of the attribute
   ViewerContainer container(savePoint);  
@@ -738,6 +745,8 @@ void SalomeApp_Study::storeState(int savePoint)
     container.addModule(module->moduleName());
     module->storeVisualParameters(savePoint); 
   }
+
+  return savePoint;
 }
 
 //================================================================
@@ -814,12 +823,11 @@ void SalomeApp_Study::restoreState(int savePoint)
 }
 
 //================================================================
-// Function : getViewerParameters
-/*! Purpose : Return an attribute that stores the viewers'
- *            parameters
+// Function : getStateParameters
+/*! Purpose : Return an attribute that stores the saved state parameters
 */
 //================================================================
-_PTR(AttributeParameter) SalomeApp_Study::getViewerParameters(int savePoint)
+_PTR(AttributeParameter) SalomeApp_Study::getStateParameters(int savePoint)
 {
   _PTR(StudyBuilder) builder = studyDS()->NewBuilder();
   _PTR(SObject) so = studyDS()->FindComponent("Interface Applicative");
index 474e5fec0fc5efacbd7df5508a21b4154ecb2404..70bd86cf3be0db6a41075142651416bcb796e19f 100644 (file)
@@ -66,12 +66,12 @@ public:
   virtual void        children( const QString&, QStringList& ) const;
   virtual void        components( QStringList& ) const;
 
-  int                 getNbSavePoints();
+  std::vector<int>    getSavePoints();
   QString             getNameOfSavePoint(int savePoint);
   void                setNameOfSavePoint(int savePoint, const QString& nameOfSavePoint);
-  void                storeState(int savePoint);
+  int                 storeState();
   void                restoreState(int savePoint);
-  _PTR(AttributeParameter) getViewerParameters(int savePoint);
+  _PTR(AttributeParameter) getStateParameters(int savePoint);
 
 protected:
   virtual void        saveModuleData ( QString theModuleName, QStringList theListOfFiles );
index 94d72e7f1a1bd1ddbd9c428d736c0ce75c906221..2a4ec902a7cd8a5eba8efd036bdd4c3819d411af 100644 (file)
@@ -41,13 +41,15 @@ using namespace std;
 /*!
   Constructor
 */
-SalomeApp_VisualParameters::SalomeApp_VisualParameters(const _PTR(SComponent)& sco, const int savePoint)
+SalomeApp_VisualParameters::SalomeApp_VisualParameters(const string& moduleName, const int savePoint)
 {
+  /*
   if(!sco) return;
   _PTR(Study) study = sco->GetStudy();
   _PTR(StudyBuilder) builder = study->NewBuilder();
   _PTR(SObject) so = builder->NewObjectToTag(sco, savePoint);
   _ap = builder->FindOrCreateAttribute(so, "AttributeParameter");
+  */
 } 
 
 /*!
@@ -181,7 +183,7 @@ ViewerContainer::ViewerContainer(int savePoint)
 {
   SalomeApp_Study* study = dynamic_cast<SalomeApp_Study*>( SUIT_Session::session()->activeApplication()->activeStudy() );
   if( !study ) return;
-  _ap = study->getViewerParameters(savePoint);
+  _ap = study->getStateParameters(savePoint);
 }
 
 int ViewerContainer::getNbViewers()
index ba1b79342c410540cc558bd40386e6caf6f39cc3..4b0b0c2bf0cdc38ce6f363cad7e6d9de326522fc 100644 (file)
@@ -36,8 +36,8 @@
 class SALOMEAPP_EXPORT SalomeApp_VisualParameters
 {
 public:
-  SalomeApp_VisualParameters(const _PTR(SComponent)& sco, const int savePoint); 
-  
+  SalomeApp_VisualParameters(const std::string& moduleName, const int savePoint); 
+
   void setColor(const std::string& entry, std::vector<double> color);
   std::vector<double> getColor(const std::string& entry);
 
@@ -74,6 +74,7 @@ class SALOMEAPP_EXPORT ViewerContainer
 {
  public:
   ViewerContainer(int savePoint);
+
   /*! returns a number of viewers*/
   int getNbViewers();
   /*! sets an active view ID*/