-// Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2012 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
-// License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// Lesser General Public License for more details.
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
//
-// You should have received a copy of the GNU Lesser General Public
-// License along with this library; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//
-// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
// GEOM GEOMGUI : GUI for Geometry component
// File : OperationGUI_Fillet1d2dDlg.cxx
// Author : DMV, OCN.
-//
+
#include "OperationGUI_Fillet1d2dDlg.h"
#include <DlgRef.h>
myVertexes.Clear();
+ showOnlyPreviewControl();
+
// signals and slots connections
connect(buttonOk(), SIGNAL(clicked()), this, SLOT(ClickOnOk() ));
//=================================================================================
void OperationGUI_Fillet1d2dDlg::ClickOnOk()
{
+ setIsApplyAndClose( true );
if (ClickOnApply())
ClickOnCancel();
}
if (myEditCurrentArgument == GroupVertexes->LineEdit1) {
myShape = GEOM::GEOM_Object::_nil();
if (aSelList.Extent() == 1) {
- Standard_Boolean aResult = Standard_False;
GEOM::GEOM_Object_var anObj =
- GEOMBase::ConvertIOinGEOMObject(aSelList.First(), aResult);
+ GEOMBase::ConvertIOinGEOMObject( aSelList.First() );
- if (aResult && !anObj->_is_nil()) {
+ if ( !anObj->_is_nil() ) {
QString aName = GEOMBase::GetName( anObj );
TopoDS_Shape aShape;
if ( GEOMBase::GetShape( anObj, aShape, TopAbs_SHAPE ) && !aShape.IsNull() ) {
//Find SubShape Object in Father
GEOM::GEOM_Object_var aFindedObject = GEOMBase_Helper::findObjectInFather( anObj, aName );
- if ( aFindedObject == GEOM::GEOM_Object::_nil() ) { // Object not found in study
+ if ( aFindedObject->_is_nil()) { // Object not found in study
GEOM::GEOM_IShapesOperations_var aShapesOp = getGeomEngine()->GetIShapesOperations( getStudyId() );
anObj = aShapesOp->GetSubShape( anObj, anIndex );
}
anObj = aFindedObject; // get Object from study
}
else { // Global Selection
- if ( aShape.ShapeType() != (myIs1D ? TopAbs_WIRE : TopAbs_FACE) ) {
+ if ((myIs1D && aShape.ShapeType() != TopAbs_WIRE) ||
+ (!myIs1D && aShape.ShapeType() != TopAbs_FACE && aShape.ShapeType() != TopAbs_SHELL)) {
anObj = GEOM::GEOM_Object::_nil();
aName = "";
}
myShape = anObj;
myEditCurrentArgument->setText(aName
);
- displayPreview();
+ processPreview();
}
}
} else if (myEditCurrentArgument == GroupVertexes->LineEdit2) {
myVertexes.Clear();
bool isPreview = myIs1D;
if (aSelList.Extent() == 1) {
- Standard_Boolean aResult = Standard_False;
GEOM::GEOM_Object_var anObj =
- GEOMBase::ConvertIOinGEOMObject(aSelList.First(), aResult);
+ GEOMBase::ConvertIOinGEOMObject( aSelList.First() );
- if (aResult && !anObj->_is_nil()) {
+ if ( !anObj->_is_nil() ) {
TColStd_IndexedMapOfInteger anIndexes;
aSelMgr->GetIndexes(aSelList.First(), anIndexes);
}
}
if ( isPreview )
- displayPreview();
+ processPreview();
}
if (myEditCurrentArgument == GroupVertexes->LineEdit1) {
activateSelection();
// seems we need it only to avoid preview disappearing, caused by selection mode change
- displayPreview();
+ processPreview();
}
//=================================================================================
//=================================================================================
void OperationGUI_Fillet1d2dDlg::ValueChangedInSpinBox (double)
{
- displayPreview();
+ processPreview();
}
//=================================================================================
disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0);
globalSelection();
if (myEditCurrentArgument == GroupVertexes->LineEdit1)
- globalSelection( myIs1D ? GEOM_WIRE : GEOM_FACE ); // localSelection(myShape, myIs1D ? TopAbs_WIRE
- // : TopAbs_FACE);
+ //localSelection(myShape, myIs1D ? TopAbs_WIRE : TopAbs_FACE);
+ if (myIs1D)
+ globalSelection(GEOM_WIRE);
+ else {
+ TColStd_MapOfInteger aMap;
+ aMap.Add(GEOM_FACE);
+ aMap.Add(GEOM_SHELL);
+ globalSelection(aMap);
+ }
else if (!myShape->_is_nil() && myEditCurrentArgument == GroupVertexes->LineEdit2)
localSelection(myShape, TopAbs_VERTEX);
// function : isValid()
// purpose : Verify validity of input data
//=================================================================================
-bool OperationGUI_Fillet1d2dDlg::isValid (QString&)
+bool OperationGUI_Fillet1d2dDlg::isValid (QString& msg)
{
- return !myShape->_is_nil() && (myIs1D || myVertexes.Extent() > 0);
+ bool ok = !myShape->_is_nil();
+ ok = GroupVertexes->SpinBox_DX->isValid( msg, !IsPreview() ) && ok;
+ ok = (myIs1D || myVertexes.Extent() > 0) && ok;
+ return ok;
}
//=================================================================================