Salome HOME
Fix for bos #16366 and bos #16182
[modules/geom.git] / src / DependencyTree / DependencyTree_Selector.cxx
index 370e4511cabea1abb607b7d053064bce6d094cdf..82818e355f41604e6f9ad7a73dddf646c210699f 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2014  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2014-2020  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
@@ -48,23 +48,24 @@ void DependencyTree_Selector::getSelection( SUIT_DataOwnerPtrList& theList ) con
 {
   for( myView->initSelected(); myView->moreSelected(); myView->nextSelected() )
     if( DependencyTree_Object* treeObject = dynamic_cast<DependencyTree_Object*>( myView->selectedObject() ) ) {
-      const char* entry;
-      const char* name;
-      GEOM::GEOM_BaseObject_var anObj = GeometryGUI::GetGeomGen()->GetObject( myView->getStudyId(),
-                                                                              treeObject->getEntry().c_str() );
+      QString studyEntry;
+      QString name;
+      GEOM::GEOM_BaseObject_var anObj = GeometryGUI::GetGeomGen()->GetObject( treeObject->getEntry().c_str() );
       if( anObj->_is_nil() )
         continue;
-      QString studyEntry = anObj->GetStudyEntry();
+         CORBA::String_var studyEntryVar = anObj->GetStudyEntry();
+      studyEntry = studyEntryVar.in();
       if( studyEntry.isEmpty() ) {
-        entry = treeObject->getEntry().c_str();
+        studyEntry = treeObject->getEntry().c_str();
         name = "TEMP_IO_UNPUBLISHED";
       }
       else {
-        entry = studyEntry.toStdString().c_str();
         name = "TEMP_IO";
       }
       Handle(SALOME_InteractiveObject) tmpIO =
-        new SALOME_InteractiveObject( entry, "GEOM", name);
+        new SALOME_InteractiveObject( studyEntry.toStdString().c_str(), 
+                                                                         "GEOM", 
+                                                                         name.toStdString().c_str());
 
       theList.append( new LightApp_DataOwner( tmpIO ) );
     }