+ // Break link with Shaper model
+ void breakShaperLink()
+ {
+ LightApp_SelectionMgr *aSel = SMESHGUI::selectionMgr();
+ SALOME_ListIO selected;
+ if (aSel) {
+ aSel->selectedObjects(selected);
+ if (selected.Extent()) {
+ Handle(SALOME_InteractiveObject) anIObject = selected.First();
+ _PTR(Study) aStudy = SMESH::getStudy();
+ std::string aEntry = anIObject->getEntry();
+ _PTR(SObject) aSObj = aStudy->FindObjectID(aEntry);
+ if (aSObj) {
+ std::string aName = aSObj->GetName();
+ QMessageBox::StandardButton aRes = SUIT_MessageBox::warning(SMESHGUI::desktop(),
+ QObject::tr("SMESH_WRN_WARNING"),
+ QObject::tr("MSG_BREAK_SHAPER_LINK").arg(aName.c_str()),
+ SUIT_MessageBox::Yes | SUIT_MessageBox::No, SUIT_MessageBox::No);
+ if (aRes == SUIT_MessageBox::Yes) {
+ SUIT_DataOwnerPtrList aList;
+ aSel->selected(aList, "ObjectBrowser", true);
+ SUIT_DataOwner* aOwn = aList.first();
+ LightApp_DataOwner* sowner = dynamic_cast<LightApp_DataOwner*>(aOwn);
+ QString aREntry = sowner->entry();
+
+ static GEOM::GEOM_Gen_var geomGen;
+ if (CORBA::is_nil(geomGen)) {
+ SalomeApp_Application* app = dynamic_cast<SalomeApp_Application*>
+ (SUIT_Session::session()->activeApplication());
+ if (app) {
+ SALOME_LifeCycleCORBA* ls = new SALOME_LifeCycleCORBA(app->namingService());
+ Engines::EngineComponent_var comp =
+ ls->FindOrLoad_Component("FactoryServer", "SHAPERSTUDY");
+ geomGen = GEOM::GEOM_Gen::_narrow(comp);
+ }
+ }
+ if (!CORBA::is_nil(geomGen)) {
+ geomGen->BreakLink(aREntry.toStdString().c_str());
+ SMESHGUI::GetSMESHGUI()->updateObjBrowser();
+ }
+ }
+ }
+ }
+ }
+ }
+
+ void SetDisplayMode(int theCommandID, VTK::MarkerMap& theMarkerMap)