X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROGUI%2FHYDROGUI_ImportBathymetryOp.cxx;h=ad2cc3dfea2b4b712c650f138b47dce8f0471a2d;hb=a1431f03eac1d1aed4203d0568d987c41ce939b3;hp=ea5eb1e1b3bef3eecb7a8e84d03782eb0014d891;hpb=69a89dc9d9d583bcdc326b8386a713e9f3c3c25a;p=modules%2Fhydro.git diff --git a/src/HYDROGUI/HYDROGUI_ImportBathymetryOp.cxx b/src/HYDROGUI/HYDROGUI_ImportBathymetryOp.cxx index ea5eb1e1..ad2cc3df 100644 --- a/src/HYDROGUI/HYDROGUI_ImportBathymetryOp.cxx +++ b/src/HYDROGUI/HYDROGUI_ImportBathymetryOp.cxx @@ -67,8 +67,11 @@ void HYDROGUI_ImportBathymetryOp::startOperation() { QString aName = myEditedObject->GetName(); QString aFileName = myEditedObject->GetFilePath(); + bool anIsAltitudesInverted = myEditedObject->IsAltitudesInverted(); + aPanel->setObjectName( aName ); aPanel->setFileName( aFileName ); + aPanel->setInvertAltitudes( anIsAltitudesInverted ); } } } @@ -108,6 +111,8 @@ bool HYDROGUI_ImportBathymetryOp::processApply( int& theUpdateFlags, } QString aFileName = aPanel->getFileName().simplified(); + bool anIsInvertAltitudes = aPanel->isInvertAltitudes(); + if ( aFileName.isEmpty() ) { theErrorMsg = tr( "INCORRECT_FILE_NAME" ); @@ -121,12 +126,15 @@ bool HYDROGUI_ImportBathymetryOp::processApply( int& theUpdateFlags, return false; } - // check that there are no other objects with the same name in the document - Handle(HYDROData_Entity) anObject = HYDROGUI_Tool::FindObjectByName( module(), anObjectName ); - if ( ( !myIsEdit ) && ( !anObject.IsNull() ) ) + if( !myIsEdit || ( !myEditedObject.IsNull() && myEditedObject->GetName() != anObjectName ) ) { - theErrorMsg = tr( "OBJECT_EXISTS_IN_DOCUMENT" ).arg( anObjectName ); - return false; + // check that there are no other objects with the same name in the document + Handle(HYDROData_Entity) anObject = HYDROGUI_Tool::FindObjectByName( module(), anObjectName ); + if( !anObject.IsNull() ) + { + theErrorMsg = tr( "OBJECT_EXISTS_IN_DOCUMENT" ).arg( anObjectName ); + return false; + } } Handle(HYDROData_Bathymetry) aBathymetryObj; @@ -142,10 +150,19 @@ bool HYDROGUI_ImportBathymetryOp::processApply( int& theUpdateFlags, if ( aBathymetryObj.IsNull() ) return false; - if ( !aBathymetryObj->ImportFromFile( aFileName ) ) + QString anOldFileName = aBathymetryObj->GetFilePath(); + if ( aFileName != anOldFileName ) { - theErrorMsg = tr( "BAD_IMPORTED_BATHYMETRY_FILE" ).arg( aFileName ); - return false; + aBathymetryObj->SetAltitudesInverted( anIsInvertAltitudes, false ); + if ( !aBathymetryObj->ImportFromFile( aFileName ) ) + { + theErrorMsg = tr( "BAD_IMPORTED_BATHYMETRY_FILE" ).arg( aFileName ); + return false; + } + } + else if ( anIsInvertAltitudes != aBathymetryObj->IsAltitudesInverted() ) + { + aBathymetryObj->SetAltitudesInverted( anIsInvertAltitudes ); } aBathymetryObj->SetName( anObjectName ); @@ -190,7 +207,7 @@ void HYDROGUI_ImportBathymetryOp::onFileSelected() return; QString anObjectName = aPanel->getObjectName().simplified(); - if ( anObjectName.isEmpty() ) + //if ( anObjectName.isEmpty() ) { anObjectName = aPanel->getFileName(); if ( !anObjectName.isEmpty() ) {