HYDROData_Application::GetApplication()->RemoveDocument(this);
}
-bool HYDROData_Document::DumpToPython( const QString& theFileName ) const
+bool HYDROData_Document::DumpToPython( const QString& theFileName,
+ const bool theIsMultiFile ) const
{
// Try to open the file
QFile aFile( theFileName );
MapOfTreatedObjects aTreatedObjects;
// Dump header for python script
- QStringList aHeaderDump = DumpToPython( aTreatedObjects );
+ QStringList aHeaderDump = DumpToPython( aTreatedObjects, theIsMultiFile );
if ( aHeaderDump.isEmpty() )
return false;
bool aRes = true;
// Dump all model objects to Python script
- aRes = aRes && dumpPartitionToPython( aFile, aTreatedObjects, KIND_IMAGE );
- aRes = aRes && dumpPartitionToPython( aFile, aTreatedObjects, KIND_POLYLINEXY );
- aRes = aRes && dumpPartitionToPython( aFile, aTreatedObjects, KIND_BATHYMETRY );
- aRes = aRes && dumpPartitionToPython( aFile, aTreatedObjects, KIND_PROFILE );
- aRes = aRes && dumpPartitionToPython( aFile, aTreatedObjects, KIND_POLYLINE );
- aRes = aRes && dumpPartitionToPython( aFile, aTreatedObjects, KIND_IMMERSIBLE_ZONE );
- aRes = aRes && dumpPartitionToPython( aFile, aTreatedObjects, KIND_STREAM );
- aRes = aRes && dumpPartitionToPython( aFile, aTreatedObjects, KIND_CHANNEL );
- aRes = aRes && dumpPartitionToPython( aFile, aTreatedObjects, KIND_DIGUE );
- aRes = aRes && dumpPartitionToPython( aFile, aTreatedObjects, KIND_OBSTACLE );
- aRes = aRes && dumpPartitionToPython( aFile, aTreatedObjects, KIND_CALCULATION );
+ aRes = aRes && dumpPartitionToPython( aFile, theIsMultiFile, aTreatedObjects, KIND_IMAGE );
+ aRes = aRes && dumpPartitionToPython( aFile, theIsMultiFile, aTreatedObjects, KIND_POLYLINEXY );
+ aRes = aRes && dumpPartitionToPython( aFile, theIsMultiFile, aTreatedObjects, KIND_BATHYMETRY );
+ aRes = aRes && dumpPartitionToPython( aFile, theIsMultiFile, aTreatedObjects, KIND_PROFILE );
+ aRes = aRes && dumpPartitionToPython( aFile, theIsMultiFile, aTreatedObjects, KIND_POLYLINE );
+ aRes = aRes && dumpPartitionToPython( aFile, theIsMultiFile, aTreatedObjects, KIND_IMMERSIBLE_ZONE );
+ aRes = aRes && dumpPartitionToPython( aFile, theIsMultiFile, aTreatedObjects, KIND_STREAM );
+ aRes = aRes && dumpPartitionToPython( aFile, theIsMultiFile, aTreatedObjects, KIND_CHANNEL );
+ aRes = aRes && dumpPartitionToPython( aFile, theIsMultiFile, aTreatedObjects, KIND_DIGUE );
+ aRes = aRes && dumpPartitionToPython( aFile, theIsMultiFile, aTreatedObjects, KIND_OBSTACLE );
+ aRes = aRes && dumpPartitionToPython( aFile, theIsMultiFile, aTreatedObjects, KIND_CALCULATION );
+
+ // Dump code to close python fuction
+ if ( aRes && theIsMultiFile )
+ {
+ QStringList aFooterScript;
+ aFooterScript << QString( "" );
+ aFooterScript << QString( " pass" );
+ HYDROData_Tool::WriteStringsToFile( aFile, aFooterScript );
+ }
+
return aRes;
}
return aDocName;
}
-QStringList HYDROData_Document::DumpToPython( MapOfTreatedObjects& theTreatedObjects ) const
+QStringList HYDROData_Document::DumpToPython( MapOfTreatedObjects& theTreatedObjects,
+ const bool theIsMultiFile ) const
{
QString aDocName = GetDocPyName();
aResScript << QString( "from HYDROPy import *" );
aResScript << QString( "from PyQt4.QtCore import *" );
aResScript << QString( "from PyQt4.QtGui import *" );
- aResScript << QString( "import salome" );
- aResScript << QString( "" );
- aResScript << QString( "%1 = HYDROData_Document.Document( salome.sg.getActiveStudyId() );" ).arg( aDocName );
+
+ if ( theIsMultiFile )
+ {
+ aResScript << QString( "" );
+ aResScript << QString( "def RebuildData( theStudy ):" );
+ aResScript << QString( " %1 = HYDROData_Document.Document( theStudy._get_StudyId() );" ).arg( aDocName );
+ }
+ else
+ {
+ aResScript << QString( "" );
+ aResScript << QString( "%1 = HYDROData_Document.Document( theStudy._get_StudyId() );" ).arg( aDocName );
+ }
return aResScript;
}
bool HYDROData_Document::dumpPartitionToPython( QFile& theFile,
+ const bool theIsMultiFile,
MapOfTreatedObjects& theTreatedObjects,
const ObjectKind& theObjectKind ) const
{
theTreatedObjects.insert( anObjName, anObject );
QStringList anObjDump = anObject->DumpToPython( theTreatedObjects );
+
+ if ( theIsMultiFile )
+ {
+ // For multifile dump we use the function, see the document dump header
+ QStringList::iterator anIt = anObjDump.begin();
+ for ( ; anIt != anObjDump.end(); ++anIt )
+ anIt->prepend( " " );
+ }
HYDROData_Tool::WriteStringsToFile( theFile, anObjDump );
}