-// Copyright (C) 2007-2014 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
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;
}
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;
}
// purpose :
//=======================================================================
Handle(AIS_InteractiveObject) GEOMBase::GetAIS( const Handle(SALOME_InteractiveObject)& IO,
- bool onlyInActiveView, bool onlyGeom )
+ bool onlyInActiveView, bool /*onlyGeom*/ )
{
Handle(AIS_InteractiveObject) aisObject;
SalomeApp_Study* study = dynamic_cast<SalomeApp_Study*>( 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();
}
}
-
//=================================================================================
// function : CreateArrowForLinearEdge()
// purpose : Create a cone topology to be used to display an arrow in the middle
}
}
}
- catch ( Standard_Failure ) {
+ catch ( Standard_Failure& ) {
// OCC failures are hard to catch in GUI.
// This is because of the position for #include <Standard_ErrorHandler.hxx> that is very critical to find
// in SALOME environment : compilation error !
/* 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 : */
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" ),
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();
}
// function : TypeName()
// purpose : Get string representation for the shape type
//=======================================================================
-QString GEOMBase::TypeName( TopAbs_ShapeEnum type )
+QString GEOMBase::TypeName( TopAbs_ShapeEnum type, bool capitalize )
{
QString name = "shape";
switch( type ) {
default:
break;
}
+ if ( capitalize && !name.isEmpty() )
+ name = name.left(1).toUpper() + name.mid(1);
return name;
}
// 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<SalomeApp_Study*>( SUIT_Session::session()->activeApplication()->activeStudy() );
if ( study && !CORBA::is_nil( 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() );
}
}
}