]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
refs #2566 ability to export settings in xml file
authorsbh <sbh@opencascade.com>
Tue, 22 Jan 2013 07:35:49 +0000 (07:35 +0000)
committersbh <sbh@opencascade.com>
Tue, 22 Jan 2013 07:35:49 +0000 (07:35 +0000)
src/Qtx/QtxResourceMgr.cxx
src/Qtx/QtxResourceMgr.h

index f834f3b11a1846240b2dc15d63f7e3e070685f0e..2691df6de19d035b8c6a465378afb7138a703052 100644 (file)
@@ -1091,8 +1091,11 @@ bool QtxResourceMgr::Format::save( Resources* res )
 
   Qtx::mkDir( Qtx::dir( res->myFileName ) );
 
+  QString name = res->myFileName;
   QtxResourceMgr* mgr = res->resMgr();
-  QString name = mgr ? mgr->userFileName( mgr->appName(), false ) : res->myFileName;
+  if( mgr && name.isEmpty() ) {
+    name = mgr->userFileName( mgr->appName(), false );
+  }
   return save( name, res->mySections );
 }
 
@@ -2238,6 +2241,37 @@ bool QtxResourceMgr::save()
   return fmt->save( myResources[0] );
 }
 
+/*!
+  \brief Save all resources to a resource file with given name.
+  \param theFileName resources file name
+  \return \c true on success and \c false on error
+*/
+bool QtxResourceMgr::saveAs( const QString& theFileName )
+{
+  initialize( true );
+
+  Format* fmt = format( currentFormat() );
+  if ( !fmt )
+    return false;
+
+  if ( myResources.isEmpty() || !myHasUserValues )
+    return true;
+
+  Resources* allResources = myResources[0];
+  allResources->setFile( theFileName );
+  if( hasValue("import-export-settings", "exportable-sections") ){
+    QSet<QString> allSections = allResources->sections().toSet();
+    QString expSections;
+    value( "import-export-settings", "exportable-sections", expSections );
+    QSet<QString> exportSections = expSections.split(",").toSet();
+    QSet<QString> excludedSections = allSections.subtract( exportSections );
+    foreach( QString eachSection, excludedSections ) {
+      allResources->removeSection( eachSection );
+    }
+  }
+  return fmt->save( allResources );
+}
+
 /*!
   \brief Get all sections names.
   \return list of section names
index 14514a28dc86455abdcf9df68b737a6d6bb32808..223059ff90713ff8190a557a856eeb6fa2e293b6 100644 (file)
@@ -156,6 +156,7 @@ public:
   bool             load();
   bool             import( const QString& );
   bool             save();
+  bool             saveAs( const QString& );
 
   QStringList      sections() const;
   QStringList      sections(const QRegExp&) const;