-// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2010 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
//
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
+
// SMESH SMESHGUI : GUI for SMESH component
// File : SMESHGUI_Utils.cxx
// Author : Open CASCADE S.A.S.
if(theOwner){
const Handle(SALOME_InteractiveObject)& anIO = theOwner->IO();
if(!anIO.IsNull()){
- if(anIO->hasEntry()){
- _PTR(Study) aStudy = GetActiveStudyDocument();
- _PTR(SObject) aSObj = aStudy->FindObjectID(anIO->getEntry());
- anObj = SObjectToObject(aSObj,aStudy);
- }
+ if(anIO->hasEntry()){
+ _PTR(Study) aStudy = GetActiveStudyDocument();
+ _PTR(SObject) aSObj = aStudy->FindObjectID(anIO->getEntry());
+ anObj = SObjectToObject(aSObj,aStudy);
+ }
}
}
return anObj;
(SUIT_Session::session()->activeApplication());
if (app && !CORBA::is_nil(theObject)) {
if(_PTR(Study) aStudy = GetActiveStudyDocument()){
- CORBA::String_var anIOR = app->orb()->object_to_string(theObject);
- if (strcmp(anIOR.in(), "") != 0)
- return aStudy->FindObjectIOR(anIOR.in());
+ CORBA::String_var anIOR = app->orb()->object_to_string(theObject);
+ if (strcmp(anIOR.in(), "") != 0)
+ return aStudy->FindObjectIOR(anIOR.in());
}
}
return _PTR(SObject)();
if (theSObject) {
_PTR(GenericAttribute) anAttr;
if (theSObject->FindAttribute(anAttr, "AttributeIOR")) {
- _PTR(AttributeIOR) anIOR = anAttr;
- CORBA::String_var aVal = anIOR->Value().c_str();
- return app->orb()->string_to_object(aVal);
+ _PTR(AttributeIOR) anIOR = anAttr;
+ CORBA::String_var aVal = anIOR->Value().c_str();
+ // string_to_object() DOC: If the input string is not valid ...
+ // a CORBA::SystemException is thrown.
+ if ( aVal && strlen( aVal ) > 0 )
+ return app->orb()->string_to_object(aVal);
}
}
return CORBA::Object::_nil();
return SObjectToObject(theSObject,aStudy);
}
+ _PTR(SObject) ObjectToSObject( CORBA::Object_ptr theObject )
+ {
+ _PTR(SObject) res;
+ SalomeApp_Application* app = dynamic_cast<SalomeApp_Application*>
+ (SUIT_Session::session()->activeApplication());
+ if ( app ) {
+ QString IOR = app->orb()->object_to_string( theObject );
+ SalomeApp_Study* study = dynamic_cast<SalomeApp_Study*>( app->activeStudy() );
+ if ( study && !IOR.isEmpty() )
+ res = study->studyDS()->FindObjectIOR( IOR.toLatin1().constData() );
+ }
+ return res;
+ }
+
CORBA::Object_var IObjectToObject (const Handle(SALOME_InteractiveObject)& theIO)
{
if (!theIO.IsNull()) {
if (theIO->hasEntry()) {
- _PTR(Study) aStudy = GetActiveStudyDocument();
- _PTR(SObject) anObj = aStudy->FindObjectID(theIO->getEntry());
- return SObjectToObject(anObj,aStudy);
+ _PTR(Study) aStudy = GetActiveStudyDocument();
+ _PTR(SObject) anObj = aStudy->FindObjectID(theIO->getEntry());
+ return SObjectToObject(anObj,aStudy);
}
}
return CORBA::Object::_nil();
for (int i = 1; anIter->More(); anIter->Next(), i++) {
_PTR(SObject) aSObj = anIter->Value();
if (i >= 4) {
- _PTR(ChildIterator) anIter1 = aStudy->NewChildIterator(aSObj);
- for ( ; anIter1->More(); anIter1->Next()) {
- _PTR(SObject) aSObj1 = anIter1->Value();
- anAttr = aBuilder->FindOrCreateAttribute(aSObj1, "AttributePixMap");
- aPixmap = anAttr;
+ _PTR(ChildIterator) anIter1 = aStudy->NewChildIterator(aSObj);
+ for ( ; anIter1->More(); anIter1->Next()) {
+ _PTR(SObject) aSObj1 = anIter1->Value();
+ anAttr = aBuilder->FindOrCreateAttribute(aSObj1, "AttributePixMap");
+ aPixmap = anAttr;
if (theIsNotModif) {
aPixmap->SetPixMap("ICON_SMESH_TREE_MESH");
} else if ( isEmptyMesh ) {
} else {
aPixmap->SetPixMap("ICON_SMESH_TREE_MESH_PARTIAL");
}
- }
+ }
}
}
}
}
else {
SUIT_MessageBox::warning(0, QObject::tr("WRN_WARNING"),
- QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
- arg(app->resourceMgr()->stringValue("ExternalBrowser",
- "application")).
- arg(theHelpFileName));
+ QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
+ arg(app->resourceMgr()->stringValue("ExternalBrowser",
+ "application")).
+ arg(theHelpFileName));
}
}