]> SALOME platform Git repositories - modules/hydro.git/commitdiff
Salome HOME
Names of objects can't be empty (Bug #149).
authoradv <adv@opencascade.com>
Wed, 4 Dec 2013 07:04:11 +0000 (07:04 +0000)
committeradv <adv@opencascade.com>
Wed, 4 Dec 2013 07:04:11 +0000 (07:04 +0000)
src/HYDROGUI/HYDROGUI_PolylineOp.cxx
src/HYDROGUI/HYDROGUI_ProfileOp.cxx
src/HYDROGUI/HYDROGUI_StreamOp.cxx

index bbef9e43b6fb054bd08de98c2128e009ccfb7c99..1a95430469bd6e52ae0e1a95289e2118a77bbfc5 100755 (executable)
@@ -172,13 +172,27 @@ HYDROGUI_InputPanel* HYDROGUI_PolylineOp::createInputPanel() const
 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 )
@@ -186,17 +200,14 @@ bool HYDROGUI_PolylineOp::processApply( int& theUpdateFlags,
     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++ )
index 8f9519006ede54a7c9ceaf398bd9369b4a63e14f..efe8572c2f7ac80496e8b6914cea411413dcbaf5 100644 (file)
@@ -144,29 +144,39 @@ HYDROGUI_InputPanel* HYDROGUI_ProfileOp::createInputPanel() const
 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;
index a800239dbec50f754fffc06e6e6aed8661766eed..36a50ca716c99ddb49a88d8960c181cc736544c0 100755 (executable)
@@ -139,7 +139,7 @@ bool HYDROGUI_StreamOp::processApply( int& theUpdateFlags,
   }
 
   // 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() ) {