X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FGEOMBase%2FGEOMBase.cxx;h=05f6db4330790e7825241ec946fc0ff6d8829d67;hb=refs%2Fheads%2FV9_9_BR;hp=e10909ddca19a73d142a7305a86791d3eeadbd55;hpb=ff7fc4d6c2f5e6de741fd7f0b9ebf01de04d0e10;p=modules%2Fgeom.git diff --git a/src/GEOMBase/GEOMBase.cxx b/src/GEOMBase/GEOMBase.cxx index e10909ddc..05f6db433 100644 --- a/src/GEOMBase/GEOMBase.cxx +++ b/src/GEOMBase/GEOMBase.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2022 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 @@ -307,7 +307,7 @@ Handle(GEOM_AISShape) GEOMBase::ConvertIORinGEOMAISShape(const QString& IOR, boo if ( it.Value()->IsInstance( STANDARD_TYPE(GEOM_AISShape) ) ) { Handle(GEOM_AISShape) sh = Handle(GEOM_AISShape)::DownCast( it.Value() ); if ( !sh.IsNull() && sh->hasIO() ) { - Handle(SALOME_InteractiveObject) IO = Handle(SALOME_InteractiveObject)::DownCast( sh->getIO() ); + Handle(SALOME_InteractiveObject) IO = sh->getIO(); if ( !IO.IsNull() && IO->hasEntry() && obj->GetID() == IO->getEntry() ) shape = sh; } @@ -354,7 +354,7 @@ GEOM_Actor* GEOMBase::ConvertIORinGEOMActor(const QString& IOR, bool onlyInActiv if ( a->IsA( "GEOM_Actor" ) ) { GEOM_Actor* ga = GEOM_Actor::SafeDownCast( a ); if ( ga && ga->hasIO() ) { - Handle(SALOME_InteractiveObject) IO = Handle(SALOME_InteractiveObject)::DownCast( ga->getIO() ); + Handle(SALOME_InteractiveObject) IO = ga->getIO(); if ( !IO.IsNull() && IO->hasEntry() && obj->GetID() == IO->getEntry() ) actor = ga; } @@ -374,7 +374,7 @@ GEOM_Actor* GEOMBase::ConvertIORinGEOMActor(const QString& IOR, bool onlyInActiv // purpose : //======================================================================= Handle(AIS_InteractiveObject) GEOMBase::GetAIS( const Handle(SALOME_InteractiveObject)& IO, - bool onlyInActiveView, bool onlyGeom ) + bool onlyInActiveView, bool /*onlyGeom*/ ) { Handle(AIS_InteractiveObject) aisObject; @@ -450,12 +450,11 @@ GEOM::GEOM_Object_ptr GEOMBase::ConvertIOinGEOMObject( const Handle(SALOME_Inter SalomeApp_Study* study = dynamic_cast( SUIT_Session::session()->activeApplication()->activeStudy() ); if ( study ) { _PTR(Study) studyDS = study->studyDS(); - _PTR(SObject) obj( studyDS->FindObjectID( IO->getEntry() ) ); - if ( obj ) { - CORBA::Object_var corbaObj = GeometryGUI::ClientSObjectToObject( obj ); - if ( !CORBA::is_nil( corbaObj ) ) + _PTR(SObject) obj = studyDS->FindObjectID( IO->getEntry() ); + if ( GeometryGUI::IsInGeomComponent( obj )) { + CORBA::Object_var corbaObj = GeometryGUI::ClientSObjectToObject( obj ); object = GEOM::GEOM_Object::_narrow( corbaObj ); - } + } } } return object._retn(); @@ -489,7 +488,6 @@ void GEOMBase::ConvertListOfIOInListOfGO( const SALOME_ListIO& IObjects, } } - //================================================================================= // function : CreateArrowForLinearEdge() // purpose : Create a cone topology to be used to display an arrow in the middle @@ -526,7 +524,7 @@ TopoDS_Shape GEOMBase::CreateArrowForLinearEdge( const TopoDS_Shape& shape ) } } } - catch ( Standard_Failure ) { + catch ( Standard_Failure& ) { // OCC failures are hard to catch in GUI. // This is because of the position for #include that is very critical to find // in SALOME environment : compilation error ! @@ -626,7 +624,7 @@ bool GEOMBase::SelectionByNameInDialogs( QWidget* widget, const QString& objectU /* Create a SALOME_InteractiveObject with a SALOME::SObject */ Handle(SALOME_InteractiveObject) IO = new SALOME_InteractiveObject( listSO[0]->GetID().c_str(), "GEOM", - objectUserName.toLatin1().constData() ); + objectUserName.toUtf8().constData() ); /* Add as a selected object */ /* Clear any previous selection : */ @@ -710,7 +708,7 @@ void GEOMBase::ShowErrorMessage( const QString& errorCode, const QString& commen if ( !errorCode.isEmpty() ) text << QObject::tr( errorCode.toLatin1().constData() ); if ( !comment.isEmpty() ) - text << QObject::tr( comment.toLatin1().constData() ); + text << QObject::tr( comment.toUtf8().constData() ); SUIT_MessageBox::critical( SUIT_Session::session()->activeApplication()->desktop(), QObject::tr( "GEOM_ERROR" ), @@ -747,7 +745,10 @@ bool GEOMBase::GetShape( GEOM::GEOM_Object_ptr object, TopoDS_Shape& shape, cons if ( !CORBA::is_nil( object ) ) { TopAbs_ShapeEnum stype = (TopAbs_ShapeEnum)( object->GetShapeType() ); if ( type == TopAbs_SHAPE || type == stype ) - shape = GEOM_Client::get_client().GetShape( GeometryGUI::GetGeomGen(), object ); + { + GEOM::GEOM_Gen_var gen = object->GetGen(); + shape = GEOM_Client::get_client().GetShape( gen, object ); + } } return !shape.IsNull(); } @@ -859,7 +860,7 @@ QString GEOMBase::GetEntry( GEOM::GEOM_Object_ptr object ) // Function : PublishSubObject // Purpose : Publish sub-shape under the main object //================================================================ -void GEOMBase::PublishSubObject( GEOM::GEOM_Object_ptr object ) +void GEOMBase::PublishSubObject( GEOM::GEOM_Object_ptr object, const QString& name ) { SalomeApp_Study* study = dynamic_cast( SUIT_Session::session()->activeApplication()->activeStudy() ); if ( study && !CORBA::is_nil( object ) ) { @@ -868,9 +869,8 @@ void GEOMBase::PublishSubObject( GEOM::GEOM_Object_ptr object ) GEOM::GEOM_Object_var father = object->GetMainShape(); QString fatherEntry = GetEntry( father ); if ( entry.isEmpty() && !CORBA::is_nil( father ) && !fatherEntry.isEmpty() ) { - QString name = GetName( object ); - GeometryGUI::GetGeomGen()->AddInStudy( GeometryGUI::ClientStudyToStudy( studyDS ), - object, name.toLatin1().data(), father.in() ); + QString aName = !name.isEmpty() ? name : GetName( object ); + GeometryGUI::GetGeomGen()->AddInStudy( object, aName.toUtf8().data(), father.in() ); } } }