Salome HOME
patch for correct immersible zone color in preview
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_Tool.cxx
index 45e356eba33aecb89808930ffa822a9753b8dbb1..6cc4ae17009cd18d049be5fbea233d8d5a6b88b0 100644 (file)
@@ -28,8 +28,8 @@
 #include <HYDROData_ImmersibleZone.h>
 #include <HYDROData_Tool.h>
 #include <HYDROData_Profile.h>
-#include <HYDROData_LandCover.h>
 
+#include <GeometryGUI.h>
 #include <GEOMBase.h>
 
 #include <GraphicsView_Viewer.h>
@@ -184,7 +184,7 @@ QString HYDROGUI_Tool::GetTempDir( const bool theToCreate )
 #ifdef WNT
     tmpdir = "C:\\";
 #else
-    tmpdir = "/tmp";
+    tmpdir = strdup( "/tmp" );
 #endif
   }
   aRes = tmpdir;
@@ -228,7 +228,7 @@ bool HYDROGUI_Tool::IsObjectHasPresentation( const Handle(HYDROData_Entity)& the
          anObjectKind == KIND_DIGUE ||
          anObjectKind == KIND_DUMMY_3D || 
          anObjectKind == KIND_BATHYMETRY ||
-         anObjectKind == KIND_LAND_COVER
+         anObjectKind == KIND_LAND_COVER_MAP
 #ifdef DEB_GROUPS
          || anObjectKind == KIND_SHAPES_GROUP ||
          anObjectKind == KIND_SPLITTED_GROUP
@@ -363,23 +363,6 @@ HYDROData_SequenceOfObjects HYDROGUI_Tool::GetGeometryObjects(
   return aResSeq;
 }
 
-HYDROData_SequenceOfObjects HYDROGUI_Tool::GetLandCovers( HYDROGUI_Module* theModule )
-{
-  Handle(HYDROData_Document) aDocument = HYDROData_Document::Document( theModule->getStudyId() );
-
-  HYDROData_SequenceOfObjects aResSeq;
-
-  HYDROData_Iterator anIter( aDocument );
-  for ( ; anIter.More(); anIter.Next() )
-  {
-    Handle(HYDROData_Entity) anObj = anIter.Current();
-    if ( !anObj.IsNull() && anObj->IsKind( STANDARD_TYPE(HYDROData_LandCover) ))
-      aResSeq.Append( anObj );
-  }
-  
-  return aResSeq;
-}
-
 ObjectKind HYDROGUI_Tool::GetSelectedPartition( HYDROGUI_Module* theModule )
 {
   HYDROGUI_DataModel* aModel = theModule->getDataModel();
@@ -679,7 +662,7 @@ QColor HYDROGUI_Tool::GenerateFillingColor( HYDROGUI_Module*   theModule,
 QColor HYDROGUI_Tool::GenerateFillingColor( const Handle(HYDROData_Document)& theDoc,
                                             const QStringList&                theZoneNames )
 {
-  QColor aFillingColor( HYDROData_ImmersibleZone::DefaultFillingColor() );
+  QColor aFillingColor( Qt::darkBlue );
 
   int aCounter = 0;
   int aR = 0, aG = 0, aB = 0;
@@ -791,3 +774,39 @@ Handle(Image_PixMap) HYDROGUI_Tool::Pixmap( const QImage& theImage )
 
     return pix;
 }
+
+void HYDROGUI_Tool::DeleteGeomObjects( HYDROGUI_Module* theModule, const QStringList& theEntries )
+{
+  QStringList anEntryList;
+
+  // Get active SalomeApp_Study
+  SalomeApp_Study* aStudy = NULL;
+  if ( theModule && theModule->getApp() ) {
+    aStudy = dynamic_cast<SalomeApp_Study*>( theModule->getApp()->activeStudy() );
+  }
+  if ( !aStudy ) {
+    return;
+  }
+  // Get GEOM engine
+  GEOM::GEOM_Gen_var aGeomEngine = GeometryGUI::GetGeomGen();
+  if ( aGeomEngine->_is_nil() ) {
+    return;
+  }
+  
+  // Delete GEOM objects
+  _PTR(StudyBuilder) aStudyBuilder( aStudy->studyDS()->NewBuilder() );
+  foreach ( const QString anEntry, theEntries ) {
+    _PTR(SObject) aSObject( aStudy->studyDS()->FindObjectID( qPrintable(anEntry) ) );
+    if ( aSObject ) {
+      GEOM::GEOM_Object_var aGeomObj = 
+        GEOMBase::GetObjectFromIOR( aSObject->GetIOR().c_str() );
+
+      if ( !aGeomObj->_is_nil() ) {
+        aGeomEngine->RemoveObject( aGeomObj );
+      }
+
+      aStudyBuilder->RemoveObject( aSObject );
+    }
+  }
+}