if ( aDocument.IsNull() || !aStudy )
return false;
- QString aFileToExport = aStudy->GetTmpDir( theURL.toLatin1().constData(), isMultiFile ).c_str();
- aFileToExport += QString( QDir::separator() ) + "HYDRO.py";
-
- bool aRes = aDocument->DumpToPython( aFileToExport );
+ QString aDir = aStudy->GetTmpDir( theURL.toLatin1().constData(), isMultiFile ).c_str();
+ QString aFileToExport = aDir + QString( QDir::separator() ) + "HYDRO.py";
+ bool aRes = aDocument->DumpToPython( aFileToExport, isMultiFile );
if ( aRes )
{
+ theListOfFiles.append( aDir );
theListOfFiles.append( aFileToExport );
}
bool HYDROGUI_DataModel::canCopy()
{
HYDROData_SequenceOfObjects aSeq = HYDROGUI_Tool::GetSelectedObjects( (HYDROGUI_Module*)module() );
- if( aSeq.Length() != 1 )
- return false;
-
- Handle(HYDROData_Entity) anObject = aSeq.First();
- if( anObject.IsNull() )
- return false;
+ bool isCanCopy = !aSeq.IsEmpty();
- ObjectKind aKind = anObject->GetKind();
- if( aKind > KIND_UNKNOWN && aKind <= KIND_LAST &&
- aKind != KIND_DUMMY_3D && aKind != KIND_ZONE &&
- aKind != KIND_SHAPES_GROUP && aKind != KIND_SPLITTED_GROUP )
- return true;
-
- return false;
+ for ( Standard_Integer anIndex = 1, aLength = aSeq.Length(); anIndex <= aLength; anIndex++ ) {
+ Handle(HYDROData_Entity) anObject = aSeq.Value( anIndex );
+ if( !anObject.IsNull() ) {
+ ObjectKind aKind = anObject->GetKind();
+ bool isUnrecognized = aKind <= KIND_UNKNOWN || aKind > KIND_LAST;
+ bool isChildObject = aKind == KIND_DUMMY_3D ||
+ aKind == KIND_ZONE ||
+ aKind == KIND_SHAPES_GROUP ||
+ aKind == KIND_SPLITTED_GROUP;
+ if ( isUnrecognized || isChildObject ) {
+ isCanCopy = false;
+ break;
+ }
+ }
+ }
+
+ return isCanCopy;
}
bool HYDROGUI_DataModel::canPaste()
Handle(HYDROData_DummyObject3D) anObject3D = aGeomObj->GetObject3D();
if ( !anObject3D.IsNull() )
- createObject( aGuiObj, anObject3D, aGuiObj->entry(), false );
+ createObject( aGuiObj, anObject3D, "", false );
#ifdef DEB_GROUPS
HYDROData_SequenceOfObjects anObjGroups = aGeomObj->GetGroups();
Handle(HYDROData_CalculationCase) aCaseObj =
Handle(HYDROData_CalculationCase)::DownCast( aDataObj );
+ LightApp_DataObject* aPolylineSect =
+ createObject( aGuiObj, tr( "CASE_BOUNDARY" ), aGuiObj->entry() );
+
+ Handle(HYDROData_PolylineXY) aPolyline = aCaseObj->GetBoundaryPolyline();
+ if ( !aPolyline.IsNull() && !aPolyline->IsRemoved() )
+ createObject( aPolylineSect, aPolyline, aGuiObj->entry(), false );
+
LightApp_DataObject* aCaseAOSect =
createObject( aGuiObj, tr( partitionName( KIND_ARTIFICIAL_OBJECT ).toAscii() ),
aGuiObj->entry() );
}
#ifdef DEB_GROUPS
- HYDROData_SequenceOfObjects aCalcGroups = aCaseObj->GetSplittedGroups();
+ HYDROData_SequenceOfObjects aCalcGroups = aCaseObj->GetGeometryGroups();
buildObjectPartition( aGuiObj, aCalcGroups, tr( "OBJECT_GROUPS" ), false );
HYDROData_SequenceOfObjects aCalcSplitGroups = aCaseObj->GetSplittedGroups();