Salome HOME
Merge branch 'master' of ssh://git.salome-platform.org/modules/hydro
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_Tool.cxx
index 48bf198941b2d9b7610f211575bbc5b5376cb81e..f2e3f6fe3e75f8598f610333c0c16313ec175b94 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2013  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2015  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -6,7 +6,7 @@
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -31,6 +31,7 @@
 #include <HYDROData_Iterator.h>
 #include <HYDROData_ImmersibleZone.h>
 #include <HYDROData_Tool.h>
+#include <HYDROData_Profile.h>
 
 #include <GEOMBase.h>
 
@@ -229,7 +230,8 @@ bool HYDROGUI_Tool::IsObjectHasPresentation( const Handle(HYDROData_Entity)& the
          anObjectKind == KIND_STREAM ||
          anObjectKind == KIND_CHANNEL ||
          anObjectKind == KIND_DIGUE ||
-         anObjectKind == KIND_DUMMY_3D
+         anObjectKind == KIND_DUMMY_3D || 
+         anObjectKind == KIND_BATHYMETRY
 #ifdef DEB_GROUPS
          || anObjectKind == KIND_SHAPES_GROUP ||
          anObjectKind == KIND_SPLITTED_GROUP
@@ -438,16 +440,26 @@ Handle(HYDROData_Entity) HYDROGUI_Tool::FindObjectByName( HYDROGUI_Module* theMo
                                                           const QString&   theName,
                                                           const ObjectKind theObjectKind )
 {
+  Handle(HYDROData_Entity) aResObj;
+  
   Handle(HYDROData_Document) aDocument = HYDROData_Document::Document( theModule->getStudyId() );
-  return HYDROData_Tool::FindObjectByName( aDocument, theName, theObjectKind );
+  if ( !aDocument.IsNull() )
+    aResObj = aDocument->FindObjectByName( theName, theObjectKind );
+  
+  return aResObj;
 }
 
 HYDROData_SequenceOfObjects HYDROGUI_Tool::FindObjectsByNames( HYDROGUI_Module*   theModule,
                                                                const QStringList& theNames,
                                                                const ObjectKind   theObjectKind )
 {
+  HYDROData_SequenceOfObjects aResSeq;
+
   Handle(HYDROData_Document) aDocument = HYDROData_Document::Document( theModule->getStudyId() );
-  return HYDROData_Tool::FindObjectsByNames( aDocument, theNames, theObjectKind );
+  if ( !aDocument.IsNull() )
+    aResSeq = aDocument->FindObjectsByNames( theNames, theObjectKind );
+
+  return aResSeq;
 }
 
 QString HYDROGUI_Tool::GenerateObjectName( HYDROGUI_Module*   theModule,
@@ -662,8 +674,7 @@ QColor HYDROGUI_Tool::GenerateFillingColor( const Handle(HYDROData_Document)& th
   {
     const QString& aZoneName = aZoneNameIter.next();
     Handle(HYDROData_ImmersibleZone) aRefZone = 
-      Handle(HYDROData_ImmersibleZone)::DownCast(
-        HYDROData_Tool::FindObjectByName( theDoc, aZoneName, KIND_IMMERSIBLE_ZONE ) );
+      Handle(HYDROData_ImmersibleZone)::DownCast( theDoc->FindObjectByName( aZoneName, KIND_IMMERSIBLE_ZONE ) );
     if( !aRefZone.IsNull() )
     {
       QColor aRefColor = aRefZone->GetFillingColor();
@@ -683,22 +694,39 @@ QColor HYDROGUI_Tool::GenerateFillingColor( const Handle(HYDROData_Document)& th
 }
 
 QStringList HYDROGUI_Tool::FindExistingObjectsNames( const Handle(HYDROData_Document)& theDoc, 
-                                                     const ObjectKind theObjectKind )
+                                                     const ObjectKind theObjectKind,
+                                                     bool isCheckValidProfile )
 {
   QStringList aNames;
 
   HYDROData_Iterator anIter( theDoc, theObjectKind );
   for ( ; anIter.More(); anIter.Next() ) {
     Handle(HYDROData_Entity) anObject = anIter.Current();
-    if( !anObject.IsNull() ) {
-      aNames.append( anObject->GetName() );
+
+    bool isOK = !anObject.IsNull();
+    
+    if( isOK && isCheckValidProfile )
+    {
+      Handle_HYDROData_Profile aProfile = Handle_HYDROData_Profile::DownCast( anObject );
+      if( !aProfile.IsNull() && !aProfile->IsValid() )
+        isOK = false;
     }
+      
+    if( isOK )
+      aNames.append( anObject->GetName() );
   }
 
   return aNames;
 }
 
-QString HYDROGUI_Tool::GetCoordinateString( const double theNumber )
+QString HYDROGUI_Tool::GetCoordinateString( const double theNumber, bool isInLocale )
 {
-  return QString::number( theNumber, 'f', 2 );
-}
\ No newline at end of file
+  if( isInLocale )
+  {
+    static QLocale aLocale( QLocale::English, QLocale::France );
+    return aLocale.toString( theNumber, 'f', 2 );
+  }
+  else
+    return QString::number( theNumber, 'f', 2 );
+}
+