From: vsr Date: Tue, 7 Sep 2010 13:00:54 +0000 (+0000) Subject: Merge from V6_1_BR 07/09/2010 X-Git-Tag: V6_2_0a1~16 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=cacfca6348ac6327880a1aab3edda29e1ae85d7c;p=modules%2Fgeom.git Merge from V6_1_BR 07/09/2010 --- diff --git a/src/BasicGUI/BasicGUI_PointDlg.cxx b/src/BasicGUI/BasicGUI_PointDlg.cxx index ef68dfb54..dc8ff2693 100644 --- a/src/BasicGUI/BasicGUI_PointDlg.cxx +++ b/src/BasicGUI/BasicGUI_PointDlg.cxx @@ -76,7 +76,8 @@ //================================================================================= BasicGUI_PointDlg::BasicGUI_PointDlg( GeometryGUI* theGeometryGUI, QWidget* parent, bool modal, Qt::WindowFlags fl ) - : GEOMBase_Skeleton( theGeometryGUI, parent, modal, fl ) + : GEOMBase_Skeleton( theGeometryGUI, parent, modal, fl ), + myBusy ( false ) { QPixmap image0( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_POINT") ) ); QPixmap image1( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_POINT_EDGE" ) ) ); @@ -532,6 +533,8 @@ void BasicGUI_PointDlg::SelectionIntoArgument() if ( aShape.IsNull() || aShape.ShapeType() != myNeedType) return; + myBusy = true; + if ( id == GEOM_POINT_XYZ ) { gp_Pnt aPnt = BRep_Tool::Pnt( TopoDS::Vertex( aShape ) ); GroupXYZ->SpinBox_DX->setValue( aPnt.X() ); @@ -572,6 +575,7 @@ void BasicGUI_PointDlg::SelectionIntoArgument() myFace = aSelectedObject; GroupOnSurface->LineEdit1->setText( aName ); } + myBusy = false; } } @@ -638,6 +642,10 @@ void BasicGUI_PointDlg::SetEditCurrentArgument() GroupLineIntersection->LineEdit2->setEnabled(true); } send->setDown(true); + + if ( ( send == GroupLineIntersection->PushButton1 || + send == GroupLineIntersection->PushButton2 ) && !myBusy ) + SelectionIntoArgument(); } diff --git a/src/BasicGUI/BasicGUI_PointDlg.h b/src/BasicGUI/BasicGUI_PointDlg.h index 367391047..abb2eab36 100644 --- a/src/BasicGUI/BasicGUI_PointDlg.h +++ b/src/BasicGUI/BasicGUI_PointDlg.h @@ -81,6 +81,8 @@ private: GEOM::GEOM_Object_var myRefPoint; GEOM::GEOM_Object_var myLine1; GEOM::GEOM_Object_var myLine2; + + bool myBusy; DlgRef_3Spin* GroupXYZ; DlgRef_1Sel3Spin* GroupRefPoint; diff --git a/src/GEOMImpl/GEOMImpl_PointDriver.cxx b/src/GEOMImpl/GEOMImpl_PointDriver.cxx index 38065f47f..8af5452e6 100644 --- a/src/GEOMImpl/GEOMImpl_PointDriver.cxx +++ b/src/GEOMImpl/GEOMImpl_PointDriver.cxx @@ -190,6 +190,10 @@ Standard_Integer GEOMImpl_PointDriver::Execute(TFunction_Logbook& log) const Standard_TypeMismatch::Raise ("Creation Point On Lines Intersection Aborted : Line shape is not an edge or wire"); } + + if (aRefShape1.IsSame(aRefShape2)) + Standard_ConstructionError::Raise("The lines to make intersection must be different"); + //Calculate Lines Intersection Point BRepExtrema_DistShapeShape dst (aRefShape1, aRefShape2); if (dst.IsDone()) {