X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROGUI%2FHYDROGUI_Tool.cxx;h=6cc4ae17009cd18d049be5fbea233d8d5a6b88b0;hb=36005df362d7bee6db949b079960cec90333aed2;hp=83cdad6035e229bfa2e2dbfe417dba2a5b28cd8f;hpb=1687cb2e2e3e31ae16197ba2b0939cacc31f9807;p=modules%2Fhydro.git diff --git a/src/HYDROGUI/HYDROGUI_Tool.cxx b/src/HYDROGUI/HYDROGUI_Tool.cxx index 83cdad60..6cc4ae17 100644 --- a/src/HYDROGUI/HYDROGUI_Tool.cxx +++ b/src/HYDROGUI/HYDROGUI_Tool.cxx @@ -28,8 +28,8 @@ #include #include #include -#include +#include #include #include @@ -184,7 +184,7 @@ QString HYDROGUI_Tool::GetTempDir( const bool theToCreate ) #ifdef WNT tmpdir = "C:\\"; #else - tmpdir = "/tmp"; + tmpdir = strdup( "/tmp" ); #endif } aRes = tmpdir; @@ -209,7 +209,6 @@ void HYDROGUI_Tool::SetActiveViewManager( HYDROGUI_Module* theModule, bool HYDROGUI_Tool::IsObjectHasPresentation( const Handle(HYDROData_Entity)& theObject, const QString& theViewerType ) { - if ( theObject.IsNull() ) return false; @@ -228,7 +227,8 @@ bool HYDROGUI_Tool::IsObjectHasPresentation( const Handle(HYDROData_Entity)& the anObjectKind == KIND_CHANNEL || anObjectKind == KIND_DIGUE || anObjectKind == KIND_DUMMY_3D || - anObjectKind == KIND_BATHYMETRY + anObjectKind == KIND_BATHYMETRY || + 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( 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 ); + } + } +}