PAL10332 - references are interpreted as original objects in filters, dialogs, etc.

This commit is contained in:
asl 2005-10-25 08:17:50 +00:00
parent 09694149f8
commit 49cd48980d
3 changed files with 7 additions and 4 deletions

View File

@ -54,7 +54,7 @@ bool GEOM_SelectionFilter::isOk( const SUIT_DataOwner* sOwner ) const
// function : getObject // function : getObject
// purpose : // purpose :
//======================================================================= //=======================================================================
GEOM::GEOM_Object_ptr GEOM_SelectionFilter::getObject (const SUIT_DataOwner* sOwner) const GEOM::GEOM_Object_ptr GEOM_SelectionFilter::getObject( const SUIT_DataOwner* sOwner, const bool extractReference ) const
{ {
GEOM::GEOM_Object_var anObj; GEOM::GEOM_Object_var anObj;
@ -65,7 +65,10 @@ GEOM::GEOM_Object_ptr GEOM_SelectionFilter::getObject (const SUIT_DataOwner* sOw
_PTR(Study) study = appStudy->studyDS(); _PTR(Study) study = appStudy->studyDS();
QString entry = owner->entry(); QString entry = owner->entry();
_PTR(SObject) aSO (study->FindObjectID(entry.latin1())); _PTR(SObject) aSO (study->FindObjectID(entry.latin1())), aRefSO;
if( extractReference && aSO && aSO->ReferencedObject( aRefSO ) )
aSO = aRefSO;
if (aSO) { if (aSO) {
std::string aValue = aSO->GetIOR(); std::string aValue = aSO->GetIOR();
if (strcmp(aValue.c_str(), "") != 0) { if (strcmp(aValue.c_str(), "") != 0) {

View File

@ -20,7 +20,7 @@ public:
virtual bool isOk( const SUIT_DataOwner* ) const; virtual bool isOk( const SUIT_DataOwner* ) const;
protected: protected:
GEOM::GEOM_Object_ptr getObject( const SUIT_DataOwner* ) const; GEOM::GEOM_Object_ptr getObject( const SUIT_DataOwner*, const bool = true ) const;
bool getShape( const GEOM::GEOM_Object_ptr&, TopoDS_Shape& ) const; bool getShape( const GEOM::GEOM_Object_ptr&, TopoDS_Shape& ) const;
bool contains( const int ) const; bool contains( const int ) const;

View File

@ -232,7 +232,7 @@ void GEOMToolsGUI::OnEditDelete()
SalomeApp_SelectionMgr* aSelMgr = app->selectionMgr(); SalomeApp_SelectionMgr* aSelMgr = app->selectionMgr();
SalomeApp_Study* appStudy = dynamic_cast<SalomeApp_Study*>( app->activeStudy() ); SalomeApp_Study* appStudy = dynamic_cast<SalomeApp_Study*>( app->activeStudy() );
if ( aSelMgr && appStudy ) { if ( aSelMgr && appStudy ) {
aSelMgr->selectedObjects( selected ); aSelMgr->selectedObjects( selected, QString::null, false );
if ( !selected.IsEmpty() ) { if ( !selected.IsEmpty() ) {
_PTR(Study) aStudy = appStudy->studyDS(); _PTR(Study) aStudy = appStudy->studyDS();