bool HYDROGUI_PolylineOp::processApply( int& theUpdateFlags,
QString& theErrorMsg )
{
- HYDROGUI_PolylineDlg* aPanel = (HYDROGUI_PolylineDlg*)inputPanel();
+ HYDROGUI_PolylineDlg* aPanel = ::qobject_cast<HYDROGUI_PolylineDlg*>( inputPanel() );
+ if ( !aPanel )
+ return false;
- int aStudyId = module()->getStudyId();
- bool aHasDoc = HYDROData_Document::HasDocument(aStudyId);
- Handle(HYDROData_Document) aDocument = HYDROData_Document::Document( aStudyId );
- if( aDocument.IsNull() )
+ QString aPolylineName = aPanel->getPolylineName().simplified();
+ if ( aPolylineName.isEmpty() )
+ {
+ theErrorMsg = tr( "INCORRECT_OBJECT_NAME" );
return false;
+ }
+
+ if( !myIsEdit || ( !myEditedObject.IsNull() && myEditedObject->GetName() != aPolylineName ) )
+ {
+ // check that there are no other objects with the same name in the document
+ Handle(HYDROData_Entity) anObject = HYDROGUI_Tool::FindObjectByName( module(), aPolylineName );
+ if( !anObject.IsNull() )
+ {
+ theErrorMsg = tr( "OBJECT_EXISTS_IN_DOCUMENT" ).arg( aPolylineName );
+ return false;
+ }
+ }
Handle(HYDROData_PolylineXY) aPolylineObj;
if( myIsEdit )
aPolylineObj = myEditedObject;
aPolylineObj->RemoveSections();
}
- else{
- aPolylineObj = Handle(HYDROData_PolylineXY)::DownCast( aDocument->CreateObject( KIND_POLYLINEXY ) );
-
- //double aZValue = double( ++ZValueIncrement ) * 1e-2; // empiric value, to be revised
- //aPolylineObj->SetZValue( aZValue );
+ else
+ {
+ aPolylineObj = Handle(HYDROData_PolylineXY)::DownCast( doc()->CreateObject( KIND_POLYLINEXY ) );
}
if( aPolylineObj.IsNull() )
return false;
- QString aPolylineName = aPanel->getPolylineName();
aPolylineObj->SetName(aPolylineName);
for ( int i = 0 ; i < myCurve->getNbSections() ; i++ )
bool HYDROGUI_ProfileOp::processApply( int& theUpdateFlags,
QString& theErrorMsg )
{
- HYDROGUI_ProfileDlg* aPanel = (HYDROGUI_ProfileDlg*)inputPanel();
+ HYDROGUI_ProfileDlg* aPanel = ::qobject_cast<HYDROGUI_ProfileDlg*>( inputPanel() );
+ if ( !aPanel )
+ return false;
- int aStudyId = module()->getStudyId();
- bool aHasDoc = HYDROData_Document::HasDocument(aStudyId);
- Handle(HYDROData_Document) aDocument = HYDROData_Document::Document( aStudyId );
- if( aDocument.IsNull() )
+ QString aProfileName = aPanel->getProfileName().simplified();
+ if ( aProfileName.isEmpty() )
+ {
+ theErrorMsg = tr( "INCORRECT_OBJECT_NAME" );
return false;
+ }
+
+ if( !myIsEdit || ( !myEditedObject.IsNull() && myEditedObject->GetName() != aProfileName ) )
+ {
+ // check that there are no other objects with the same name in the document
+ Handle(HYDROData_Entity) anObject = HYDROGUI_Tool::FindObjectByName( module(), aProfileName );
+ if( !anObject.IsNull() )
+ {
+ theErrorMsg = tr( "OBJECT_EXISTS_IN_DOCUMENT" ).arg( aProfileName );
+ return false;
+ }
+ }
Handle(HYDROData_Profile) aProfileObj;
if( myIsEdit ){
aProfileObj = myEditedObject;
}
else{
- aProfileObj = Handle(HYDROData_Profile)::DownCast( aDocument->CreateObject( KIND_PROFILE ) );
-
- //double aZValue = double( ++ZValueIncrement ) * 1e-2; // empiric value, to be revised
- //aProfileObj->SetZValue( aZValue );
+ aProfileObj = Handle(HYDROData_Profile)::DownCast( doc()->CreateObject( KIND_PROFILE ) );
}
if( aProfileObj.IsNull() )
return false;
- QString aProfileName = aPanel->getProfileName();
aProfileObj->SetName(aProfileName);
HYDROData_ProfileUZ::PointsList aProfileParamPoints;
}
// Check that there are no other objects with the same name in the document
- if( !myIsEdit || ( !myEditedObject.IsNull() && myEditedObject->GetName() != anObjectName ) )
+ if( myEditedObject->GetName() != anObjectName )
{
Handle(HYDROData_Entity) anObject = HYDROGUI_Tool::FindObjectByName( module(), anObjectName );
if( !anObject.IsNull() ) {