X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FRepairGUI%2FRepairGUI_RemoveWebsDlg.cxx;h=79639f3a52a02b666e79d50fbda34a73300de483;hb=9680031be017f475ebb1d506a72b9527f5ce70b3;hp=a0e18671986d72db93edd159fb906e56fd95acc1;hpb=7d880c6a8262b6d670ed70ee2b9ec25c199a46d4;p=modules%2Fgeom.git diff --git a/src/RepairGUI/RepairGUI_RemoveWebsDlg.cxx b/src/RepairGUI/RepairGUI_RemoveWebsDlg.cxx index a0e186719..79639f3a5 100755 --- a/src/RepairGUI/RepairGUI_RemoveWebsDlg.cxx +++ b/src/RepairGUI/RepairGUI_RemoveWebsDlg.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2015 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 @@ -63,7 +63,7 @@ RepairGUI_RemoveWebsDlg::RepairGUI_RemoveWebsDlg (GeometryGUI* theGeometryGUI, Q GroupPoints = new DlgRef_1Sel( centralWidget() ); GroupPoints->GroupBox1->setTitle( tr( "GEOM_REMOVE_WEBS" ) ); - GroupPoints->TextLabel1->setText( tr( "GEOM_SELECTED_SHAPE" ) ); + GroupPoints->TextLabel1->setText( tr( "GEOM_SELECTED_SHAPES" ) ); GroupPoints->PushButton1->setIcon( image1 ); GroupPoints->LineEdit1->setReadOnly( true ); @@ -141,7 +141,7 @@ bool RepairGUI_RemoveWebsDlg::ClickOnApply() initName(); myEditCurrentArgument->setText(""); - myObject = GEOM::GEOM_Object::_nil(); + myObjects.clear(); myOkObject = false; @@ -158,33 +158,16 @@ bool RepairGUI_RemoveWebsDlg::ClickOnApply() void RepairGUI_RemoveWebsDlg::SelectionIntoArgument() { myEditCurrentArgument->setText( "" ); - QString aName; - - LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); - SALOME_ListIO aSelList; - aSelMgr->selectedObjects(aSelList); - - if (myEditCurrentArgument == GroupPoints->LineEdit1) { - if (aSelList.Extent() != 1) { - if (myEditCurrentArgument == GroupPoints->LineEdit1) - myOkObject = false; - return; - } - } - - // nbSel == 1 - GEOM::GEOM_Object_ptr aSelectedObject = - GEOMBase::ConvertIOinGEOMObject(aSelList.First()); + myObjects.clear(); + myOkObject = false; - if (CORBA::is_nil(aSelectedObject)) - return; + myObjects = getSelected( TopAbs_SHAPE, -1 ); - if (myEditCurrentArgument == GroupPoints->LineEdit1) { - myObject = aSelectedObject; + if ( !myObjects.isEmpty() ) { + QString aName = myObjects.count() > 1 ? QString( "%1_objects").arg( myObjects.count() ) : GEOMBase::GetName( myObjects[0].get() ); myOkObject = true; + myEditCurrentArgument->setText( aName ); } - - myEditCurrentArgument->setText(GEOMBase::GetName(aSelectedObject)); } //================================================================================= @@ -242,7 +225,7 @@ void RepairGUI_RemoveWebsDlg::enterEvent (QEvent* e) void RepairGUI_RemoveWebsDlg::activateSelection() { TColStd_MapOfInteger aTypes; - //aTypes.Add( GEOM_SOLID ); + aTypes.Add( GEOM_SOLID ); aTypes.Add( GEOM_COMPOUND ); globalSelection( aTypes ); } @@ -271,8 +254,13 @@ bool RepairGUI_RemoveWebsDlg::isValid (QString& msg) //================================================================================= bool RepairGUI_RemoveWebsDlg::execute (ObjectList& objects) { + GEOM::ListOfGO_var objList = new GEOM::ListOfGO; + objList->length( myObjects.count() ); + for ( int i = 0; i < myObjects.count(); ++i ) + objList[i] = myObjects[i].copy(); + GEOM::GEOM_IHealingOperations_var anOper = GEOM::GEOM_IHealingOperations::_narrow(getOperation()); - GEOM::GEOM_Object_var anObj = anOper->RemoveInternalFaces(myObject); + GEOM::GEOM_Object_var anObj = anOper->RemoveInternalFaces(objList); if (!anObj->_is_nil()) objects.push_back(anObj._retn());