*** empty log message ***

This commit is contained in:
vsr 2007-10-15 10:41:03 +00:00
parent 7a04da0b3c
commit 496cc5f9ba
34 changed files with 2381 additions and 2503 deletions

View File

@ -19,12 +19,12 @@ salomeidldir = $(prefix)/idl/@PACKAGE@
salomeresdir = $(prefix)/share/@PACKAGE@/resources/@MODULE_NAME@
# Directories for installing admin files
admlocaldir = $(prefix)/adm_local
admlocalunixdir = $(admlocaldir)/unix
admlocalm4dir = $(admlocaldir)/unix/config_files
admlocaldir = $(prefix)/adm_local
admlocalunixdir = $(admlocaldir)/unix
admlocalm4dir = $(admlocaldir)/unix/config_files
# Shared modules installation directory
sharedpkgpythondir =$(pkgpythondir)/shared_modules
sharedpkgpythondir = $(pkgpythondir)/shared_modules
# Documentation directory
docdir = $(datadir)/doc/@PACKAGE@
@ -36,14 +36,19 @@ docdir = $(datadir)/doc/@PACKAGE@
$(MOC) $< -o $@
# qm-files generation
%.qm: %.po
$(MSG2QM) $< $@
%.qm: %.ts
$(LRELEASE) $< -qm $@
# uic-files generation
ui_%.h: %.ui
$(UIC) -o $@ $<
EXTRA_DIST=$(MOC_FILES:%_moc.cxx=%.h) $(nodist_salomeres_DATA:%.qm=%.po)
mostlyclean-local:
rm -f @builddir@/*_moc.cxx
rm -f @builddir@/*.qm
rm -f @builddir@/ui_*.h
# tests
tests: unittest

View File

@ -74,7 +74,7 @@ dnl libtool macro check for CC, LD, NM, LN_S, RANLIB, STRIP + pour les librairie
echo
echo ---------------------------------------------
echo Coniguring production
echo Configuring production
echo ---------------------------------------------
echo
AC_ENABLE_DEBUG(yes)
@ -234,14 +234,6 @@ echo
CHECK_QT
echo
echo ---------------------------------------------
echo testing msg2qm
echo ---------------------------------------------
echo
CHECK_MSG2QM
echo
echo ---------------------------------------------
echo testing VTK
@ -304,12 +296,20 @@ fi
echo
echo ---------------------------------------------
echo Testing Kernel
echo Testing SALOME KERNEL module
echo ---------------------------------------------
echo
CHECK_KERNEL
echo
echo ---------------------------------------------
echo Testing SALOME GUI module
echo ---------------------------------------------
echo
CHECK_SALOME_GUI
echo
echo ---------------------------------------------
echo Summary
@ -317,7 +317,7 @@ echo ---------------------------------------------
echo
echo Configure
variables="cc_ok lex_yacc_ok python_ok swig_ok threads_ok OpenGL_ok qt_ok vtk_ok hdf5_ok omniORB_ok boost_ok occ_ok doxygen_ok graphviz_ok Kernel_ok"
variables="cc_ok lex_yacc_ok python_ok swig_ok threads_ok OpenGL_ok qt_ok vtk_ok hdf5_ok omniORB_ok boost_ok occ_ok doxygen_ok graphviz_ok Kernel_ok SalomeGUI_ok"
for var in $variables
do
@ -330,7 +330,7 @@ echo "Default ORB : $DEFAULT_ORB"
echo
dnl We don t need to say when we re entering directories if we re using
dnl GNU make becuase make does it for us.
dnl GNU make because make does it for us.
if test "X$GMAKE" = "Xyes"; then
AC_SUBST(SETX) SETX=":"
else

View File

@ -1,46 +1,29 @@
// GEOM GEOMGUI : GUI for Geometry component
// GEOM GEOMGUI : GUI for Geometry component
//
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
//
// 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
//
// File : BasicGUI.cxx
// Author : Damien COQUERET, Open CASCADE S.A.S.
//
//
// File : BasicGUI.cxx
// Author : Damien COQUERET
// Module : GEOM
// $Header$
#include "BasicGUI.h"
#include "GeometryGUI.h"
#include "SUIT_Session.h"
#include "SUIT_Desktop.h"
#include "SUIT_ViewWindow.h"
#include "OCCViewer_ViewWindow.h"
#include "OCCViewer_ViewModel.h"
#include "OCCViewer_ViewManager.h"
#include "OCCViewer_ViewPort3d.h"
#include <BRep_Tool.hxx>
#include <ProjLib.hxx>
#include <ElSLib.hxx>
#include <TopoDS.hxx>
#include "BasicGUI_PointDlg.h" // Method POINT
#include "BasicGUI_LineDlg.h" // Method LINE
@ -53,16 +36,29 @@
#include "BasicGUI_WorkingPlaneDlg.h" // Method WORKING PLANE
#include "BasicGUI_MarkerDlg.h" // Method REPAIR
#include <QMouseEvent>
#include <GeometryGUI.h>
using namespace std;
#include <SUIT_Session.h>
#include <SUIT_Desktop.h>
#include <SUIT_ViewWindow.h>
#include <OCCViewer_ViewWindow.h>
#include <OCCViewer_ViewModel.h>
#include <OCCViewer_ViewManager.h>
#include <OCCViewer_ViewPort3d.h>
#include <BRep_Tool.hxx>
#include <ProjLib.hxx>
#include <ElSLib.hxx>
#include <TopoDS.hxx>
#include <QMouseEvent>
//=======================================================================
// function : BasicGUI()
// purpose : Constructor
//=======================================================================
BasicGUI::BasicGUI( GeometryGUI* parent ) :
GEOMGUI(parent)
BasicGUI::BasicGUI( GeometryGUI* parent )
: GEOMGUI( parent )
{
}
@ -79,47 +75,46 @@ BasicGUI::~BasicGUI()
// function : OnGUIEvent()
// purpose :
//=======================================================================
bool BasicGUI::OnGUIEvent(int theCommandID, SUIT_Desktop* parent)
bool BasicGUI::OnGUIEvent( int theCommandID, SUIT_Desktop* parent )
{
getGeometryGUI()->EmitSignalDeactivateDialog();
QDialog* aDlg = NULL;
switch ( theCommandID )
{
case 4011: // POINT
aDlg = new BasicGUI_PointDlg( getGeometryGUI(), parent, "" );
break;
case 4012: // LINE
aDlg = new BasicGUI_LineDlg( getGeometryGUI(), parent, "" );
break;
case 4013: // CIRCLE
aDlg = new BasicGUI_CircleDlg( getGeometryGUI(), parent, "");
break;
case 4014: // ELLIPSE
aDlg = new BasicGUI_EllipseDlg( getGeometryGUI(), parent, "" );
break;
case 4015: // ARC
aDlg = new BasicGUI_ArcDlg( getGeometryGUI(), parent, "" );
break ;
case 4016: // VECTOR
aDlg = new BasicGUI_VectorDlg( getGeometryGUI(), parent, "" );
break;
case 4017: // PLANE
aDlg = new BasicGUI_PlaneDlg( getGeometryGUI(), parent, "");
break;
case 4018: // WORKING PLANE
aDlg = new BasicGUI_WorkingPlaneDlg( getGeometryGUI(), parent, "" );
break;
case 4019: // CURVE
aDlg = new BasicGUI_CurveDlg( getGeometryGUI(), parent, "" );
break;
case 4020: // REPAIR
aDlg = new BasicGUI_MarkerDlg( getGeometryGUI(), parent );
break;
default:
SUIT_Session::session()->activeApplication()->putInfo(tr("GEOM_PRP_COMMAND").arg(theCommandID));
break;
}
switch ( theCommandID ) {
case 4011: // POINT
aDlg = new BasicGUI_PointDlg( getGeometryGUI(), parent, "" );
break;
case 4012: // LINE
aDlg = new BasicGUI_LineDlg( getGeometryGUI(), parent, "" );
break;
case 4013: // CIRCLE
aDlg = new BasicGUI_CircleDlg( getGeometryGUI(), parent, "");
break;
case 4014: // ELLIPSE
aDlg = new BasicGUI_EllipseDlg( getGeometryGUI(), parent, "" );
break;
case 4015: // ARC
aDlg = new BasicGUI_ArcDlg( getGeometryGUI(), parent, "" );
break ;
case 4016: // VECTOR
aDlg = new BasicGUI_VectorDlg( getGeometryGUI(), parent, "" );
break;
case 4017: // PLANE
aDlg = new BasicGUI_PlaneDlg( getGeometryGUI(), parent, "");
break;
case 4018: // WORKING PLANE
aDlg = new BasicGUI_WorkingPlaneDlg( getGeometryGUI(), parent, "" );
break;
case 4019: // CURVE
aDlg = new BasicGUI_CurveDlg( getGeometryGUI(), parent, "" );
break;
case 4020: // REPAIR
aDlg = new BasicGUI_MarkerDlg( getGeometryGUI(), parent );
break;
default:
SUIT_Session::session()->activeApplication()->putInfo( tr( "GEOM_PRP_COMMAND" ).arg( theCommandID ) );
break;
}
if ( aDlg != NULL )
aDlg->show();
@ -137,15 +132,13 @@ bool BasicGUI::OnMousePress( QMouseEvent* pe, SUIT_Desktop* parent, SUIT_ViewWin
QDialog* aDlg = getGeometryGUI()->GetActiveDialogBox();
// Create Point dialog, OCC viewer
if ( aDlg && ( QString(aDlg->metaObject()->className()).compare("BasicGUI_PointDlg") == 0) &&
if ( aDlg && ( QString( aDlg->metaObject()->className() ).compare( "BasicGUI_PointDlg" ) == 0 ) &&
theViewWindow->getViewManager()->getType() == OCCViewer_Viewer::Type() &&
pe->modifiers() != Qt::ControlModifier )
{
pe->modifiers() != Qt::ControlModifier ) {
BasicGUI_PointDlg* aPntDlg = (BasicGUI_PointDlg*) aDlg;
if ( aPntDlg->acceptMouseEvent() )
{
if ( aPntDlg->acceptMouseEvent() ) {
OCCViewer_Viewer* anOCCViewer =
((OCCViewer_ViewManager*)(theViewWindow->getViewManager()))->getOCCViewer();
( (OCCViewer_ViewManager*)( theViewWindow->getViewManager() ) )->getOCCViewer();
Handle(AIS_InteractiveContext) ic = anOCCViewer->getAISContext();
gp_Pnt aPnt;
@ -157,14 +150,12 @@ bool BasicGUI::OnMousePress( QMouseEvent* pe, SUIT_Desktop* parent, SUIT_ViewWin
ic->Select(); // New selection
ic->InitSelected();
if ( ic->MoreSelected() )
{
if ( ic->MoreSelected() ) {
TopoDS_Shape aShape = ic->SelectedShape();
if ( !aShape.IsNull() && aShape.ShapeType() == TopAbs_VERTEX )
aPnt = BRep_Tool::Pnt( TopoDS::Vertex( ic->SelectedShape() ) );
}
else
{
else {
OCCViewer_ViewPort3d* vp = ((OCCViewer_ViewWindow*)theViewWindow)->getViewPort();
aPnt = ConvertClickToPoint( pe->x(), pe->y(), vp->getView() );
}
@ -180,25 +171,25 @@ bool BasicGUI::OnMousePress( QMouseEvent* pe, SUIT_Desktop* parent, SUIT_ViewWin
// function : ConvertClickToPoint()
// purpose : Returns the point clicked in 3D view
//=======================================================================
gp_Pnt BasicGUI::ConvertClickToPoint( int x, int y, Handle(V3d_View) aView)
gp_Pnt BasicGUI::ConvertClickToPoint( int x, int y, Handle(V3d_View) aView )
{
V3d_Coordinate XEye, YEye, ZEye, XAt, YAt, ZAt;
aView->Eye(XEye, YEye, ZEye);
aView->Eye( XEye, YEye, ZEye );
aView->At(XAt, YAt, ZAt);
gp_Pnt EyePoint(XEye, YEye, ZEye);
gp_Pnt AtPoint(XAt, YAt, ZAt);
aView->At( XAt, YAt, ZAt );
gp_Pnt EyePoint( XEye, YEye, ZEye );
gp_Pnt AtPoint( XAt, YAt, ZAt );
gp_Vec EyeVector(EyePoint, AtPoint);
gp_Dir EyeDir(EyeVector);
gp_Vec EyeVector( EyePoint, AtPoint );
gp_Dir EyeDir( EyeVector );
gp_Pln PlaneOfTheView = gp_Pln(AtPoint,EyeDir);
gp_Pln PlaneOfTheView = gp_Pln( AtPoint, EyeDir );
Standard_Real X, Y, Z;
aView->Convert(x, y, X, Y, Z);
gp_Pnt ConvertedPoint(X, Y, Z);
aView->Convert( x, y, X, Y, Z );
gp_Pnt ConvertedPoint( X, Y, Z );
gp_Pnt2d ConvertedPointOnPlane = ProjLib::Project(PlaneOfTheView, ConvertedPoint);
gp_Pnt ResultPoint = ElSLib::Value(ConvertedPointOnPlane.X(), ConvertedPointOnPlane.Y(), PlaneOfTheView);
gp_Pnt2d ConvertedPointOnPlane = ProjLib::Project( PlaneOfTheView, ConvertedPoint );
gp_Pnt ResultPoint = ElSLib::Value( ConvertedPointOnPlane.X(), ConvertedPointOnPlane.Y(), PlaneOfTheView );
return ResultPoint;
}
@ -207,7 +198,7 @@ gp_Pnt BasicGUI::ConvertClickToPoint( int x, int y, Handle(V3d_View) aView)
//=====================================================================================
extern "C"
{
GEOM_BASICGUI_EXPORT
BASICGUI_EXPORT
GEOMGUI* GetLibGUI( GeometryGUI* parent )
{
return new BasicGUI( parent );

View File

@ -1,52 +1,50 @@
// GEOM GEOMGUI : GUI for Geometry component
// GEOM GEOMGUI : GUI for Geometry component
//
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
//
// 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
//
// File : BasicGUI.h
// Author : Damien COQUERET, Open CASCADE S.A.S.
//
//
// File : BasicGUI.h
// Author : Damien COQUERET
// Module : GEOM
#ifndef BASICGUI_H
#define BASICGUI_H
#include "GEOM_BasicGUI.hxx"
#include "GEOMGUI.h"
#include <GEOMGUI.h>
#include <V3d_View.hxx>
//=================================================================================
// class : BasicGUI
// purpose :
//=================================================================================
class GEOM_BASICGUI_EXPORT BasicGUI : public GEOMGUI
class BASICGUI_EXPORT BasicGUI : public GEOMGUI
{
public:
BasicGUI( GeometryGUI* parent );
BasicGUI( GeometryGUI* );
~BasicGUI();
bool OnGUIEvent(int theCommandID, SUIT_Desktop* parent);
bool OnMousePress(QMouseEvent* pe, SUIT_Desktop* parent, SUIT_ViewWindow* theViewWindow);
bool OnGUIEvent( int, SUIT_Desktop* );
bool OnMousePress( QMouseEvent*, SUIT_Desktop*, SUIT_ViewWindow* );
gp_Pnt ConvertClickToPoint( int x, int y, Handle(V3d_View) aView );
gp_Pnt ConvertClickToPoint( int, int, Handle(V3d_View) );
};
#endif
#endif // BASICGUI_H

View File

@ -1,44 +1,40 @@
// GEOM GEOMGUI : GUI for Geometry component
// GEOM GEOMGUI : GUI for Geometry component
//
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
//
// 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
//
// File : BasicGUI_ArcDlg.cxx
// Author : Lucien PIGNOLONI, Open CASCADE S.A.S.
//
//
// File : BasicGUI_ArcDlg.cxx
// Author : Lucien PIGNOLONI
// Module : GEOM
// $Header$
#include "BasicGUI_ArcDlg.h"
#include "GeometryGUI.h"
#include "GEOMBase.h"
#include <GEOM_DlgRef.h>
#include <GeometryGUI.h>
#include <GEOMBase.h>
#include "SUIT_ResourceMgr.h"
#include "SUIT_Session.h"
#include "SalomeApp_Application.h"
#include "LightApp_SelectionMgr.h"
#include <SUIT_ResourceMgr.h>
#include <SUIT_Session.h>
#include <SalomeApp_Application.h>
#include <LightApp_SelectionMgr.h>
#include "GEOMImpl_Types.hxx"
using namespace std;
#include <GEOMImpl_Types.hxx>
//=================================================================================
// class : BasicGUI_ArcDlg()
@ -47,32 +43,29 @@ using namespace std;
// The dialog will by default be modeless, unless you set 'modal' to
// TRUE to construct a modal dialog.
//=================================================================================
BasicGUI_ArcDlg::BasicGUI_ArcDlg(GeometryGUI* theGeometryGUI, QWidget* parent,
const char* name, bool modal, Qt::WindowFlags fl)
: GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, Qt::WindowTitleHint | Qt::WindowSystemMenuHint)
BasicGUI_ArcDlg::BasicGUI_ArcDlg( GeometryGUI* theGeometryGUI, QWidget* parent,
const char* name, bool modal, Qt::WindowFlags fl )
: GEOMBase_Skeleton( theGeometryGUI, parent, name, modal, fl )
{
QPixmap image0(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_ARC")));
QPixmap image1(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_ARC_CENTER")));
QPixmap image2(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_SELECT")));
QPixmap image0( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_ARC" ) ) );
QPixmap image1( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_ARC_CENTER" ) ) );
QPixmap image2( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_SELECT" ) ) );
setWindowTitle(tr("GEOM_ARC_TITLE"));
setWindowTitle( tr( "GEOM_ARC_TITLE" ) );
/***************************************************************/
GroupConstructors->setTitle(tr("GEOM_ARC"));
RadioButton1->setIcon(image0);
RadioButton2->setIcon(image1);
RadioButton3->setAttribute( Qt::WA_DeleteOnClose );
RadioButton3->close();
mainFrame()->GroupConstructors->setTitle( tr( "GEOM_ARC" ) );
mainFrame()->RadioButton1->setIcon( image0 );
mainFrame()->RadioButton2->setIcon( image1 );
mainFrame()->RadioButton3->setAttribute( Qt::WA_DeleteOnClose );
mainFrame()->RadioButton3->close();
Group3Pnts = new Ui::DlgRef_3Sel_QTD();
QWidget* aGroup3PntsWidget = new QWidget(this);
Group3Pnts->setupUi(aGroup3PntsWidget);
aGroup3PntsWidget->setObjectName("Group3Pnts");
Group3Pnts = new DlgRef_3Sel( centralWidget() );
Group3Pnts->GroupBox1->setTitle(tr("GEOM_POINTS"));
Group3Pnts->TextLabel1->setText(tr("GEOM_POINT_I").arg("1"));
Group3Pnts->TextLabel2->setText(tr("GEOM_POINT_I").arg("2"));
Group3Pnts->TextLabel3->setText(tr("GEOM_POINT_I").arg("3"));
Group3Pnts->GroupBox1->setTitle( tr( "GEOM_POINTS" ) );
Group3Pnts->TextLabel1->setText( tr( "GEOM_POINT_I" ).arg( 1 ) );
Group3Pnts->TextLabel2->setText( tr( "GEOM_POINT_I" ).arg( 2 ) );
Group3Pnts->TextLabel3->setText( tr( "GEOM_POINT_I" ).arg( 3 ) );
Group3Pnts->LineEdit1->setReadOnly( true );
Group3Pnts->LineEdit2->setReadOnly( true );
@ -83,30 +76,29 @@ BasicGUI_ArcDlg::BasicGUI_ArcDlg(GeometryGUI* theGeometryGUI, QWidget* parent,
Group3Pnts->PushButton3->setIcon(image2);
Group3Pnts2 = new Ui::DlgRef_3Sel1Check_QTD();
QWidget* aGroup3Pnts2Widget = new QWidget(this);
Group3Pnts2->setupUi(aGroup3Pnts2Widget);
aGroup3Pnts2Widget->setObjectName("Group3Pnts2");
Group3Pnts2 = new DlgRef_3Sel1Check( centralWidget() );
Group3Pnts2->GroupBox1->setTitle(tr("GEOM_POINTS"));
Group3Pnts2->TextLabel1->setText(tr("GEOM_CENTER_POINT"));
Group3Pnts2->TextLabel2->setText(tr("GEOM_POINT_I").arg("Start"));
Group3Pnts2->TextLabel3->setText(tr("GEOM_POINT_I").arg("End"));
Group3Pnts2->GroupBox1->setTitle( tr( "GEOM_POINTS" ) );
Group3Pnts2->TextLabel1->setText( tr( "GEOM_CENTER_POINT" ) );
Group3Pnts2->TextLabel2->setText( tr( "GEOM_POINT_I" ).arg( "Start" ) );
Group3Pnts2->TextLabel3->setText( tr( "GEOM_POINT_I" ).arg( "End" ) );
Group3Pnts2->LineEdit1->setReadOnly( true );
Group3Pnts2->LineEdit2->setReadOnly( true );
Group3Pnts2->LineEdit3->setReadOnly( true );
Group3Pnts2->PushButton1->setIcon(image2);
Group3Pnts2->PushButton2->setIcon(image2);
Group3Pnts2->PushButton3->setIcon(image2);
Group3Pnts2->PushButton1->setIcon( image2 );
Group3Pnts2->PushButton2->setIcon( image2 );
Group3Pnts2->PushButton3->setIcon( image2 );
Group3Pnts2->radioButton4->setText(tr("GEOM_REVERSE"));
Group3Pnts2->CheckButton1->setText( tr( "GEOM_REVERSE" ) );
gridLayout1->addWidget( aGroup3PntsWidget, 2, 0 );
gridLayout1->addWidget( aGroup3Pnts2Widget, 2, 0 );
QVBoxLayout* layout = new QVBoxLayout( centralWidget() );
layout->setMargin( 0 ); layout->setSpacing( 6 );
layout->addWidget( Group3Pnts );
layout->addWidget( Group3Pnts2 );
setHelpFileName("arc.htm");
setHelpFileName( "arc.htm" );
Init();
}
@ -136,40 +128,40 @@ void BasicGUI_ArcDlg::Init()
myEditCurrentArgument->setFocus();
myPoint1 = myPoint2 = myPoint3 = GEOM::GEOM_Object::_nil();
Group3Pnts2->radioButton4->setChecked(FALSE);
Group3Pnts2->CheckButton1->setChecked( false );
/* signals and slots connections */
connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
connect(myGeomGUI, SIGNAL(SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
connect(myGeomGUI, SIGNAL(SignalCloseAllDialogs()), this, SLOT(ClickOnCancel()));
connect( myGeomGUI, SIGNAL( SignalDeactivateActiveDialog() ), this, SLOT( DeactivateActiveDialog() ) );
connect( myGeomGUI, SIGNAL( SignalCloseAllDialogs() ), this, SLOT( ClickOnCancel() ) );
connect(GroupConstructors, SIGNAL(clicked(int)), this, SLOT(ConstructorsClicked(int)));
connect( this, SIGNAL( constructorsClicked( int ) ), this, SLOT( ConstructorsClicked( int ) ) );
connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
connect( buttonCancel(), SIGNAL( clicked() ), this, SLOT( ClickOnCancel() ) );
connect( buttonOk(), SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) );
connect( buttonApply(), SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) );
connect(Group3Pnts->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
connect(Group3Pnts->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
connect(Group3Pnts->PushButton3, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
connect( Group3Pnts->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) );
connect( Group3Pnts->PushButton2, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) );
connect( Group3Pnts->PushButton3, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) );
connect(Group3Pnts->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed()));
connect(Group3Pnts->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed()));
connect(Group3Pnts->LineEdit3, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed()));
connect( Group3Pnts->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) );
connect( Group3Pnts->LineEdit2, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) );
connect( Group3Pnts->LineEdit3, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) );
connect(Group3Pnts2->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
connect(Group3Pnts2->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
connect(Group3Pnts2->PushButton3, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
connect( Group3Pnts2->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) );
connect( Group3Pnts2->PushButton2, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) );
connect( Group3Pnts2->PushButton3, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) );
connect(Group3Pnts2->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed()));
connect(Group3Pnts2->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed()));
connect(Group3Pnts2->LineEdit3, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed()));
connect( Group3Pnts2->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) );
connect( Group3Pnts2->LineEdit2, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) );
connect( Group3Pnts2->LineEdit3, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) );
connect(Group3Pnts2->radioButton4, SIGNAL(stateChanged(int)), this, SLOT(ReverseSense(int)));
connect( Group3Pnts2->CheckButton1, SIGNAL( toggled( bool ) ), this, SLOT( ReverseSense() ) );
connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(),
SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(),
SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
initName( tr( "GEOM_ARC" ).toLatin1().constData() );
initName( tr( "GEOM_ARC" ) );
ConstructorsClicked( 0 );
@ -214,8 +206,8 @@ bool BasicGUI_ArcDlg::ClickOnApply()
Group3Pnts2->LineEdit1->setText( "" );
Group3Pnts2->LineEdit2->setText( "" );
Group3Pnts2->LineEdit3->setText( "" );
if (getConstructorId() == 0) myEditCurrentArgument = Group3Pnts->LineEdit1;
if (getConstructorId() == 1) myEditCurrentArgument = Group3Pnts2->LineEdit1;
if ( getConstructorId() == 0 ) myEditCurrentArgument = Group3Pnts->LineEdit1;
if ( getConstructorId() == 1 ) myEditCurrentArgument = Group3Pnts2->LineEdit1;
ConstructorsClicked( getConstructorId() );
return true;
@ -228,54 +220,43 @@ bool BasicGUI_ArcDlg::ClickOnApply()
//=================================================================================
void BasicGUI_ArcDlg::SelectionIntoArgument()
{
if ((getConstructorId() != 0) && (getConstructorId() != 1))
if ( getConstructorId() != 0 && getConstructorId() != 1 )
return;
myEditCurrentArgument->setText("");
if ( IObjectCount() != 1 ){
switch (getConstructorId())
{
case 0:
{
if ( myEditCurrentArgument == Group3Pnts->LineEdit1 ) myPoint1 = GEOM::GEOM_Object::_nil();
else if ( myEditCurrentArgument == Group3Pnts->LineEdit2 ) myPoint2 = GEOM::GEOM_Object::_nil();
else if ( myEditCurrentArgument == Group3Pnts->LineEdit3 ) myPoint3 = GEOM::GEOM_Object::_nil();
return;
break;
}
case 1:
{
if ( myEditCurrentArgument == Group3Pnts2->LineEdit1 ) myPoint1 = GEOM::GEOM_Object::_nil();
else if ( myEditCurrentArgument == Group3Pnts2->LineEdit2 ) myPoint2 = GEOM::GEOM_Object::_nil();
else if ( myEditCurrentArgument == Group3Pnts2->LineEdit3 ) myPoint3 = GEOM::GEOM_Object::_nil();
return;
break;
}
myEditCurrentArgument->setText( "" );
if ( IObjectCount() != 1 ) {
switch ( getConstructorId() ) {
case 0:
if ( myEditCurrentArgument == Group3Pnts->LineEdit1 ) myPoint1 = GEOM::GEOM_Object::_nil();
else if ( myEditCurrentArgument == Group3Pnts->LineEdit2 ) myPoint2 = GEOM::GEOM_Object::_nil();
else if ( myEditCurrentArgument == Group3Pnts->LineEdit3 ) myPoint3 = GEOM::GEOM_Object::_nil();
return;
break;
case 1:
if ( myEditCurrentArgument == Group3Pnts2->LineEdit1 ) myPoint1 = GEOM::GEOM_Object::_nil();
else if ( myEditCurrentArgument == Group3Pnts2->LineEdit2 ) myPoint2 = GEOM::GEOM_Object::_nil();
else if ( myEditCurrentArgument == Group3Pnts2->LineEdit3 ) myPoint3 = GEOM::GEOM_Object::_nil();
return;
break;
}
}
// nbSel == 1
Standard_Boolean aRes = Standard_False;
GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject( firstIObject(), aRes );
if ( !CORBA::is_nil( aSelectedObject ) && aRes )
{
switch (getConstructorId())
{
case 0:
{
myEditCurrentArgument->setText( GEOMBase::GetName( aSelectedObject ) );
if ( myEditCurrentArgument == Group3Pnts->LineEdit1 ) myPoint1 = aSelectedObject;
else if ( myEditCurrentArgument == Group3Pnts->LineEdit2 ) myPoint2 = aSelectedObject;
else if ( myEditCurrentArgument == Group3Pnts->LineEdit3 ) myPoint3 = aSelectedObject;
break;
}
case 1:
{
myEditCurrentArgument->setText( GEOMBase::GetName( aSelectedObject ) );
if ( myEditCurrentArgument == Group3Pnts2->LineEdit1 ) myPoint1 = aSelectedObject;
else if ( myEditCurrentArgument == Group3Pnts2->LineEdit2 ) myPoint2 = aSelectedObject;
else if ( myEditCurrentArgument == Group3Pnts2->LineEdit3 ) myPoint3 = aSelectedObject;
break;
}
if ( !CORBA::is_nil( aSelectedObject ) && aRes ) {
switch ( getConstructorId() ) {
case 0:
myEditCurrentArgument->setText( GEOMBase::GetName( aSelectedObject ) );
if ( myEditCurrentArgument == Group3Pnts->LineEdit1 ) myPoint1 = aSelectedObject;
else if ( myEditCurrentArgument == Group3Pnts->LineEdit2 ) myPoint2 = aSelectedObject;
else if ( myEditCurrentArgument == Group3Pnts->LineEdit3 ) myPoint3 = aSelectedObject;
break;
case 1:
myEditCurrentArgument->setText( GEOMBase::GetName( aSelectedObject ) );
if ( myEditCurrentArgument == Group3Pnts2->LineEdit1 ) myPoint1 = aSelectedObject;
else if ( myEditCurrentArgument == Group3Pnts2->LineEdit2 ) myPoint2 = aSelectedObject;
else if ( myEditCurrentArgument == Group3Pnts2->LineEdit3 ) myPoint3 = aSelectedObject;
break;
}
}
@ -290,22 +271,17 @@ void BasicGUI_ArcDlg::SelectionIntoArgument()
void BasicGUI_ArcDlg::SetEditCurrentArgument()
{
QPushButton* send = (QPushButton*)sender();
switch (getConstructorId())
{
case 0:
{
if ( send == Group3Pnts->PushButton1 ) myEditCurrentArgument = Group3Pnts->LineEdit1;
else if ( send == Group3Pnts->PushButton2 ) myEditCurrentArgument = Group3Pnts->LineEdit2;
else if ( send == Group3Pnts->PushButton3 ) myEditCurrentArgument = Group3Pnts->LineEdit3;
break;
}
case 1:
{
if ( send == Group3Pnts2->PushButton1 ) myEditCurrentArgument = Group3Pnts2->LineEdit1;
else if ( send == Group3Pnts2->PushButton2 ) myEditCurrentArgument = Group3Pnts2->LineEdit2;
else if ( send == Group3Pnts2->PushButton3 ) myEditCurrentArgument = Group3Pnts2->LineEdit3;
break;
}
switch ( getConstructorId() ) {
case 0:
if ( send == Group3Pnts->PushButton1 ) myEditCurrentArgument = Group3Pnts->LineEdit1;
else if ( send == Group3Pnts->PushButton2 ) myEditCurrentArgument = Group3Pnts->LineEdit2;
else if ( send == Group3Pnts->PushButton3 ) myEditCurrentArgument = Group3Pnts->LineEdit3;
break;
case 1:
if ( send == Group3Pnts2->PushButton1 ) myEditCurrentArgument = Group3Pnts2->LineEdit1;
else if ( send == Group3Pnts2->PushButton2 ) myEditCurrentArgument = Group3Pnts2->LineEdit2;
else if ( send == Group3Pnts2->PushButton3 ) myEditCurrentArgument = Group3Pnts2->LineEdit3;
break;
}
myEditCurrentArgument->setFocus();
SelectionIntoArgument();
@ -320,8 +296,7 @@ void BasicGUI_ArcDlg::LineEditReturnPressed()
{
QLineEdit* send = (QLineEdit*)sender();
if ( send == Group3Pnts->LineEdit1 || send == Group3Pnts->LineEdit2 || send == Group3Pnts->LineEdit3 ||
send == Group3Pnts2->LineEdit1 || send == Group3Pnts2->LineEdit2 || send == Group3Pnts2->LineEdit3 )
{
send == Group3Pnts2->LineEdit1 || send == Group3Pnts2->LineEdit2 || send == Group3Pnts2->LineEdit3 ) {
myEditCurrentArgument = send;
GEOMBase_Skeleton::LineEditReturnPressed();
}
@ -335,8 +310,8 @@ void BasicGUI_ArcDlg::LineEditReturnPressed()
void BasicGUI_ArcDlg::ActivateThisDialog()
{
GEOMBase_Skeleton::ActivateThisDialog();
connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(),
SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(),
SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
// myGeomGUI->SetState( 0 );
globalSelection( GEOM_POINT );
@ -367,9 +342,9 @@ void BasicGUI_ArcDlg::DeactivateActiveDialog()
// function : enterEvent()
// purpose :
//=================================================================================
void BasicGUI_ArcDlg::enterEvent(QEvent* e)
void BasicGUI_ArcDlg::enterEvent( QEvent* )
{
if ( !GroupConstructors->isEnabled() )
if ( !mainFrame()->GroupConstructors->isEnabled() )
ActivateThisDialog();
}
@ -410,28 +385,26 @@ bool BasicGUI_ArcDlg::execute( ObjectList& objects )
bool res = false;
GEOM::GEOM_Object_var anObj;
switch (getConstructorId())
{
case 0:
{
if ( !CORBA::is_nil(myPoint1) && !CORBA::is_nil(myPoint2) &&!CORBA::is_nil(myPoint3) ){
anObj = GEOM::GEOM_ICurvesOperations::_narrow(getOperation())->MakeArc(myPoint1, myPoint2, myPoint3);
res = true;
}
break;
}
case 1:
switch ( getConstructorId() ) {
case 0:
{
bool Sense;
(Group3Pnts2->radioButton4->isChecked()) ? Sense=true : Sense = false;
if ( !CORBA::is_nil(myPoint1) && !CORBA::is_nil(myPoint2) &&!CORBA::is_nil(myPoint3) ){
anObj = GEOM::GEOM_ICurvesOperations::_narrow(getOperation())->MakeArcCenter(myPoint1, myPoint2, myPoint3,Sense);
res = true;
}
break;
if ( !CORBA::is_nil( myPoint1 ) && !CORBA::is_nil( myPoint2 ) && !CORBA::is_nil( myPoint3 ) ) {
anObj = GEOM::GEOM_ICurvesOperations::_narrow( getOperation() )->MakeArc( myPoint1, myPoint2, myPoint3 );
res = true;
}
break;
}
case 1:
{
bool Sense = Group3Pnts2->CheckButton1->isChecked();
if ( !CORBA::is_nil( myPoint1 ) && !CORBA::is_nil( myPoint2 ) && !CORBA::is_nil( myPoint3 ) ) {
anObj = GEOM::GEOM_ICurvesOperations::_narrow( getOperation() )->MakeArcCenter( myPoint1, myPoint2, myPoint3, Sense );
res = true;
}
break;
}
}
if ( !anObj->_is_nil() ){
if ( !anObj->_is_nil() ) {
objects.push_back( anObj._retn() );
}
return res;
@ -452,30 +425,33 @@ void BasicGUI_ArcDlg::closeEvent( QCloseEvent* e )
//=================================================================================
void BasicGUI_ArcDlg::ConstructorsClicked( int constructorId )
{
disconnect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), 0, this, 0 );
disconnect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), 0, this, 0);
switch (constructorId)
{
case 0:
switch ( constructorId ) {
case 0:
{
::qobject_cast<QWidget*>( Group3Pnts->gridLayout->parent() )->show();
resize(0, 0);
::qobject_cast<QWidget*>( Group3Pnts2->gridLayout->parent() )->hide();
Group3Pnts2->hide();
Group3Pnts->show();
connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(),
SIGNAL(currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
break;
}
case 1:
case 1:
{
::qobject_cast<QWidget*>( Group3Pnts->gridLayout->parent() )->hide();
resize(0, 0);
::qobject_cast<QWidget*>( Group3Pnts2->gridLayout->parent() )->show();
connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
Group3Pnts->hide();
Group3Pnts2->show();
connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(),
SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
break;
}
}
qApp->processEvents();
updateGeometry();
resize( minimumSize() );
displayPreview();
}
@ -483,7 +459,7 @@ void BasicGUI_ArcDlg::ConstructorsClicked( int constructorId )
// function : ReverseSense()
// purpose : Orientation of the arc
//=================================================================================
void BasicGUI_ArcDlg::ReverseSense(int sense)
void BasicGUI_ArcDlg::ReverseSense()
{
displayPreview();
}

View File

@ -1,81 +1,82 @@
// GEOM GEOMGUI : GUI for Geometry component
// GEOM GEOMGUI : GUI for Geometry component
//
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
//
// 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
//
// File : BasicGUI_ArcDlg.h
// Author : Lucien PIGNOLONI, Open CASCADE S.A.S.
//
//
// File : BasicGUI_ArcDlg.h
// Author : Lucien PIGNOLONI
// Module : GEOM
#ifndef DIALOGBOX_ARC_H
#define DIALOGBOX_ARC_H
#ifndef BASICGUI_ARCDLG_H
#define BASICGUI_ARCDLG_H
#include "GEOM_BasicGUI.hxx"
#include "GEOM_BasicGUI.hxx"
#include "GEOMBase_Skeleton.h"
#include "DlgRef_3Sel_QTD.h"
#include "DlgRef_3Sel1Check_QTD.h"
#include <GEOMBase_Skeleton.h>
class DlgRef_3Sel;
class DlgRef_3Sel1Check;
//=================================================================================
// class : BasicGUI_ArcDlg
// purpose :
//=================================================================================
class GEOM_BASICGUI_EXPORT BasicGUI_ArcDlg : public GEOMBase_Skeleton
class BASICGUI_EXPORT BasicGUI_ArcDlg : public GEOMBase_Skeleton
{
Q_OBJECT
Q_OBJECT
public:
BasicGUI_ArcDlg( GeometryGUI* theGeometryGUI, QWidget* parent = 0,
const char* name = 0, bool modal = FALSE, Qt::WindowFlags fl = 0 );
~BasicGUI_ArcDlg();
BasicGUI_ArcDlg( GeometryGUI*, QWidget* = 0,
const char* = 0, bool = false, Qt::WindowFlags = 0 );
~BasicGUI_ArcDlg();
protected:
// redefined from GEOMBase_Helper
virtual GEOM::GEOM_IOperations_ptr createOperation();
virtual bool isValid( QString& );
virtual bool execute( ObjectList& objects );
// redefined from GEOMBase_Helper
virtual GEOM::GEOM_IOperations_ptr createOperation();
virtual bool isValid( QString& );
virtual bool execute( ObjectList& );
virtual void closeEvent( QCloseEvent* e );
virtual void closeEvent( QCloseEvent* );
private :
void Init();
void enterEvent(QEvent* e);
int myConstructorId;
GEOM::GEOM_Object_var myPoint1, myPoint2, myPoint3;
private:
void Init();
void enterEvent( QEvent* );
Ui::DlgRef_3Sel_QTD* Group3Pnts;
Ui::DlgRef_3Sel1Check_QTD* Group3Pnts2;
private:
int myConstructorId;
GEOM::GEOM_Object_var myPoint1, myPoint2, myPoint3;
DlgRef_3Sel* Group3Pnts;
DlgRef_3Sel1Check* Group3Pnts2;
private slots:
void ClickOnOk();
void ClickOnCancel();
bool ClickOnApply();
void ClickOnOk();
void ClickOnCancel();
bool ClickOnApply();
void ActivateThisDialog();
void DeactivateActiveDialog();
void ConstructorsClicked( int );
void LineEditReturnPressed();
void SelectionIntoArgument();
void SetEditCurrentArgument();
void ReverseSense(int);
void ActivateThisDialog();
void DeactivateActiveDialog();
void ConstructorsClicked( int );
void LineEditReturnPressed();
void SelectionIntoArgument();
void SetEditCurrentArgument();
void ReverseSense();
};
#endif // DIALOGBOX_ARC_H
#endif // BASICGUI_ARCDLG_H

View File

@ -1,44 +1,41 @@
// GEOM GEOMGUI : GUI for Geometry component
// GEOM GEOMGUI : GUI for Geometry component
//
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
//
// 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
//
// File : BasicGUI_CircleDlg.cxx
// Author : Lucien PIGNOLONI, Open CASCADE S.A.S.
//
//
// File : BasicGUI_CircleDlg.cxx
// Author : Lucien PIGNOLONI
// Module : GEOM
// $Header$
#include "BasicGUI_CircleDlg.h"
#include "DlgRef_2Sel1Spin.h"
#include "DlgRef_SpinBox.h"
#include "GeometryGUI.h"
#include "GEOMBase.h"
#include <GEOM_DlgRef.h>
#include "SUIT_ResourceMgr.h"
#include "SUIT_Session.h"
#include "SalomeApp_Application.h"
#include "LightApp_SelectionMgr.h"
#include <GeometryGUI.h>
#include <GEOMBase.h>
#include "GEOMImpl_Types.hxx"
#include <SUIT_ResourceMgr.h>
#include <SUIT_Session.h>
#include <SalomeApp_Application.h>
#include <LightApp_SelectionMgr.h>
#include <GEOMImpl_Types.hxx>
//=================================================================================
// class : BasicGUI_CircleDlg()
@ -47,57 +44,56 @@
// The dialog will by default be modeless, unless you set 'modal' to
// TRUE to construct a modal dialog.
//=================================================================================
BasicGUI_CircleDlg::BasicGUI_CircleDlg(GeometryGUI* theGeometryGUI, QWidget* parent,
const char* name, bool modal, Qt::WindowFlags fl)
:GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, Qt::WindowTitleHint | Qt::WindowSystemMenuHint)
BasicGUI_CircleDlg::BasicGUI_CircleDlg( GeometryGUI* theGeometryGUI, QWidget* parent,
const char* name, bool modal, Qt::WindowFlags fl )
: GEOMBase_Skeleton( theGeometryGUI, parent, name, modal, fl )
{
QPixmap image0(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_CIRCLE_PV")));
QPixmap image2(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_CIRCLE_PNTS")));
QPixmap image1(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_SELECT")));
QPixmap image0( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_CIRCLE_PV" ) ) );
QPixmap image2( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_CIRCLE_PNTS" ) ) );
QPixmap image1( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_SELECT" ) ) );
setWindowTitle(tr("GEOM_CIRCLE_TITLE"));
setWindowTitle( tr( "GEOM_CIRCLE_TITLE" ) );
/***************************************************************/
GroupConstructors->setTitle(tr("GEOM_CIRCLE"));
RadioButton1->setIcon(image0);
RadioButton2->setIcon(image2);
RadioButton3->setAttribute( Qt::WA_DeleteOnClose );
RadioButton3->close();
mainFrame()->GroupConstructors->setTitle( tr( "GEOM_CIRCLE" ) );
mainFrame()->RadioButton1->setIcon( image0 );
mainFrame()->RadioButton2->setIcon( image2 );
mainFrame()->RadioButton3->setAttribute( Qt::WA_DeleteOnClose );
mainFrame()->RadioButton3->close();
GroupPntVecR = new DlgRef_2Sel1Spin(this, "GroupPntVecR");
GroupPntVecR->GroupBox1->setTitle(tr("GEOM_ARGUMENTS"));
GroupPntVecR = new DlgRef_2Sel1Spin( centralWidget() );
GroupPntVecR->GroupBox1->setTitle( tr( "GEOM_ARGUMENTS" ) );
GroupPntVecR->TextLabel1->setText(tr("GEOM_CENTER_POINT"));
GroupPntVecR->TextLabel2->setText(tr("GEOM_VECTOR"));
GroupPntVecR->TextLabel3->setText(tr("GEOM_RADIUS"));
GroupPntVecR->PushButton1->setIcon(image1);
GroupPntVecR->PushButton2->setIcon(image1);
GroupPntVecR->TextLabel1->setText( tr( "GEOM_CENTER_POINT" ) );
GroupPntVecR->TextLabel2->setText( tr( "GEOM_VECTOR" ) );
GroupPntVecR->TextLabel3->setText( tr( "GEOM_RADIUS" ) );
GroupPntVecR->PushButton1->setIcon( image1 );
GroupPntVecR->PushButton2->setIcon( image1 );
GroupPntVecR->LineEdit1->setReadOnly( true );
GroupPntVecR->LineEdit2->setReadOnly( true );
Group3Pnts = new Ui::DlgRef_3Sel_QTD();
QWidget* aGroup3PntsWidget = new QWidget(this);
Group3Pnts->setupUi(aGroup3PntsWidget);
aGroup3PntsWidget->setObjectName("Group3Pnts");
Group3Pnts = new DlgRef_3Sel( centralWidget() );
Group3Pnts->GroupBox1->setTitle(tr("GEOM_3_POINTS"));
Group3Pnts->TextLabel1->setText(tr("GEOM_POINT1"));
Group3Pnts->TextLabel2->setText(tr("GEOM_POINT2"));
Group3Pnts->TextLabel3->setText(tr("GEOM_POINT3"));
Group3Pnts->PushButton1->setIcon(image1);
Group3Pnts->PushButton2->setIcon(image1);
Group3Pnts->PushButton3->setIcon(image1);
Group3Pnts->GroupBox1->setTitle( tr( "GEOM_3_POINTS" ) );
Group3Pnts->TextLabel1->setText( tr( "GEOM_POINT1" ) );
Group3Pnts->TextLabel2->setText( tr( "GEOM_POINT2" ) );
Group3Pnts->TextLabel3->setText( tr( "GEOM_POINT3" ) );
Group3Pnts->PushButton1->setIcon( image1 );
Group3Pnts->PushButton2->setIcon( image1 );
Group3Pnts->PushButton3->setIcon( image1 );
Group3Pnts->LineEdit1->setReadOnly( true );
Group3Pnts->LineEdit2->setReadOnly( true );
Group3Pnts->LineEdit3->setReadOnly( true );
gridLayout1->addWidget( GroupPntVecR, 2, 0 );
gridLayout1->addWidget( aGroup3PntsWidget, 2, 0 );
QVBoxLayout* layout = new QVBoxLayout( centralWidget() );
layout->setMargin( 0 ); layout->setSpacing( 6 );
layout->addWidget( GroupPntVecR );
layout->addWidget( Group3Pnts );
/***************************************************************/
setHelpFileName("circle.htm");
setHelpFileName( "circle.htm" );
Init();
}
@ -127,39 +123,41 @@ void BasicGUI_CircleDlg::Init()
/* Get setting of step value from file configuration */
SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr();
double aStep = resMgr->doubleValue( "Geometry", "SettingsGeomStep", 100);
double aStep = resMgr->doubleValue( "Geometry", "SettingsGeomStep", 100 );
/* min, max, step and decimals for spin boxes & initial values */
GroupPntVecR->SpinBox_DX->RangeStepAndValidator(0.001, COORD_MAX, aStep, 3);
GroupPntVecR->SpinBox_DX->SetValue( 100 );
initSpinBox( GroupPntVecR->SpinBox_DX, 0.001, COORD_MAX, aStep, 3 );
GroupPntVecR->SpinBox_DX->setValue( 100 );
/* signals and slots connections */
connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
connect(myGeomGUI, SIGNAL(SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
connect(myGeomGUI, SIGNAL(SignalCloseAllDialogs()), this, SLOT(ClickOnCancel()));
connect( myGeomGUI, SIGNAL( SignalDeactivateActiveDialog() ), this, SLOT( DeactivateActiveDialog() ) );
connect( myGeomGUI, SIGNAL( SignalCloseAllDialogs() ), this, SLOT( ClickOnCancel() ) );
connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
connect(GroupConstructors, SIGNAL(clicked(int)), this, SLOT(ConstructorsClicked(int)));
connect( buttonCancel(), SIGNAL( clicked() ), this, SLOT( ClickOnCancel() ) );
connect( buttonOk(), SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) );
connect( buttonApply(), SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) );
connect(GroupPntVecR->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
connect(GroupPntVecR->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
connect(Group3Pnts->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
connect(Group3Pnts->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
connect(Group3Pnts->PushButton3, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
connect( this, SIGNAL( constructorsClicked( int ) ), this, SLOT( ConstructorsClicked( int ) ) );
connect(GroupPntVecR->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed()));
connect(GroupPntVecR->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed()));
connect( GroupPntVecR->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) );
connect( GroupPntVecR->PushButton2, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) );
connect( Group3Pnts->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) );
connect( Group3Pnts->PushButton2, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) );
connect( Group3Pnts->PushButton3, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) );
connect(GroupPntVecR->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox()));
connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupPntVecR->SpinBox_DX, SLOT(SetStep(double)));
connect( GroupPntVecR->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) );
connect( GroupPntVecR->LineEdit2, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) );
connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(),
SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())) ;
connect( GroupPntVecR->SpinBox_DX, SIGNAL( valueChanged( double ) ), this, SLOT(ValueChangedInSpinBox() ) );
// VSR: TODO ->>
connect( myGeomGUI, SIGNAL( SignalDefaultStepValueChanged( double ) ), GroupPntVecR->SpinBox_DX, SLOT( SetStep( double ) ) );
// <<-
initName( tr( "GEOM_CIRCLE" ).toLatin1().constData() );
connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(),
SIGNAL( currentSelectionChanged() ), this, SLOT(SelectionIntoArgument() ) ) ;
initName( tr( "GEOM_CIRCLE" ) );
::qobject_cast<QWidget*>( Group3Pnts->gridLayout->parent() )->hide();
ConstructorsClicked( 0 );
}
@ -169,40 +167,41 @@ void BasicGUI_CircleDlg::Init()
//=================================================================================
void BasicGUI_CircleDlg::ConstructorsClicked( int constructorId )
{
disconnect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), 0, this, 0 );
disconnect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), 0, this, 0 );
myPoint = myDir = myPoint1 = myPoint2 = myPoint3 = GEOM::GEOM_Object::_nil();
switch ( constructorId )
{
case 0:
{
::qobject_cast<QWidget*>( Group3Pnts->gridLayout->parent() )->hide();
resize(0, 0);
GroupPntVecR->show();
switch ( constructorId ) {
case 0:
{
Group3Pnts->hide();
GroupPntVecR->show();
myEditCurrentArgument = GroupPntVecR->LineEdit1;
GroupPntVecR->LineEdit1->setText("");
GroupPntVecR->LineEdit2->setText("");
break;
}
myEditCurrentArgument = GroupPntVecR->LineEdit1;
GroupPntVecR->LineEdit1->setText( "" );
GroupPntVecR->LineEdit2->setText( "" );
break;
}
case 1:
{
GroupPntVecR->hide();
resize( 0, 0 );
::qobject_cast<QWidget*>( Group3Pnts->gridLayout->parent() )->show();
Group3Pnts->show();
myEditCurrentArgument = Group3Pnts->LineEdit1;
Group3Pnts->LineEdit1->setText("");
Group3Pnts->LineEdit2->setText("");
Group3Pnts->LineEdit3->setText("");
Group3Pnts->LineEdit1->setText( "" );
Group3Pnts->LineEdit2->setText( "" );
Group3Pnts->LineEdit3->setText( "" );
break;
}
}
}
qApp->processEvents();
updateGeometry();
resize( minimumSize() );
myEditCurrentArgument->setFocus();
globalSelection( GEOM_POINT );
connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(),
SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(),
SIGNAL( currentSelectionChanged() ), this, SLOT(SelectionIntoArgument() ) );
}
//=================================================================================
@ -244,10 +243,9 @@ void BasicGUI_CircleDlg::ClickOnCancel()
//=================================================================================
void BasicGUI_CircleDlg::SelectionIntoArgument()
{
myEditCurrentArgument->setText("");
myEditCurrentArgument->setText( "" );
if ( IObjectCount() != 1 )
{
if ( IObjectCount() != 1 ) {
if ( myEditCurrentArgument == GroupPntVecR->LineEdit1 ) myPoint = GEOM::GEOM_Object::_nil();
else if ( myEditCurrentArgument == GroupPntVecR->LineEdit2 ) myDir = GEOM::GEOM_Object::_nil();
else if ( myEditCurrentArgument == Group3Pnts->LineEdit1 ) myPoint1 = GEOM::GEOM_Object::_nil();
@ -259,8 +257,7 @@ void BasicGUI_CircleDlg::SelectionIntoArgument()
// nbSel == 1
Standard_Boolean aRes = Standard_False;
GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject( firstIObject(), aRes );
if ( !CORBA::is_nil( aSelectedObject ) && aRes )
{
if ( !CORBA::is_nil( aSelectedObject ) && aRes ) {
myEditCurrentArgument->setText( GEOMBase::GetName( aSelectedObject ) );
if ( myEditCurrentArgument == GroupPntVecR->LineEdit1 ) myPoint = aSelectedObject;
else if ( myEditCurrentArgument == GroupPntVecR->LineEdit2 ) myDir = aSelectedObject;
@ -307,8 +304,7 @@ void BasicGUI_CircleDlg::LineEditReturnPressed()
send == GroupPntVecR->LineEdit2 ||
send == Group3Pnts->LineEdit1 ||
send == Group3Pnts->LineEdit2 ||
send == Group3Pnts->LineEdit3 )
{
send == Group3Pnts->LineEdit3 ) {
myEditCurrentArgument = send;
GEOMBase_Skeleton::LineEditReturnPressed();
}
@ -323,8 +319,8 @@ void BasicGUI_CircleDlg::ActivateThisDialog()
{
GEOMBase_Skeleton::ActivateThisDialog();
globalSelection( GEOM_POINT );
connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(),
SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(),
SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
// myGeomGUI->SetState( 0 );
@ -336,9 +332,9 @@ void BasicGUI_CircleDlg::ActivateThisDialog()
// function : enterEvent()
// purpose :
//=================================================================================
void BasicGUI_CircleDlg::enterEvent(QEvent* e)
void BasicGUI_CircleDlg::enterEvent( QEvent* )
{
if ( !GroupConstructors->isEnabled() )
if ( !mainFrame()->GroupConstructors->isEnabled() )
ActivateThisDialog();
}
@ -367,7 +363,7 @@ void BasicGUI_CircleDlg::ValueChangedInSpinBox()
//=================================================================================
double BasicGUI_CircleDlg::getRadius() const
{
return GroupPntVecR->SpinBox_DX->GetValue();
return GroupPntVecR->SpinBox_DX->value();
}
//=================================================================================
@ -413,8 +409,7 @@ bool BasicGUI_CircleDlg::execute( ObjectList& objects )
GEOM::GEOM_Object_var anObj;
switch ( getConstructorId() )
{
switch ( getConstructorId() ) {
case 0 :
anObj = GEOM::GEOM_ICurvesOperations::_narrow( getOperation() )->MakeCirclePntVecR( myPoint, myDir, getRadius() );
res = true;
@ -439,4 +434,3 @@ void BasicGUI_CircleDlg::closeEvent( QCloseEvent* e )
{
GEOMBase_Skeleton::closeEvent( e );
}

View File

@ -1,85 +1,84 @@
// GEOM GEOMGUI : GUI for Geometry component
// GEOM GEOMGUI : GUI for Geometry component
//
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
//
// 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
//
// File : BasicGUI_CircleDlg.h
// Author : Lucien PIGNOLONI, Open CASCADE S.A.S.
//
//
// File : BasicGUI_CircleDlg.h
// Author : Lucien PIGNOLONI
// Module : GEOM
#ifndef DIALOGBOX_CIRCLE_H
#define DIALOGBOX_CIRCLE_H
#ifndef BASICGUI_CIRCLEDLG_H
#define BASICGUI_CIRCLEDLG_H
#include "GEOM_BasicGUI.hxx"
#include "GEOMBase_Skeleton.h"
#include "DlgRef_3Sel_QTD.h"
#include <GEOMBase_Skeleton.h>
class DlgRef_3Sel;
class DlgRef_2Sel1Spin;
//=================================================================================
// class : BasicGUI_CircleDlg
// purpose :
//=================================================================================
class GEOM_BASICGUI_EXPORT BasicGUI_CircleDlg : public GEOMBase_Skeleton
class BASICGUI_EXPORT BasicGUI_CircleDlg : public GEOMBase_Skeleton
{
Q_OBJECT
Q_OBJECT
public:
BasicGUI_CircleDlg(GeometryGUI* theGeometryGUI, QWidget* parent = 0,
const char* name = 0, bool modal = FALSE, Qt::WindowFlags fl = 0);
~BasicGUI_CircleDlg();
BasicGUI_CircleDlg( GeometryGUI*, QWidget* = 0,
const char* = 0, bool = false, Qt::WindowFlags = 0 );
~BasicGUI_CircleDlg();
protected:
// redefined from GEOMBase_Helper
virtual GEOM::GEOM_IOperations_ptr createOperation();
virtual bool isValid( QString& );
virtual bool execute( ObjectList& objects );
// redefined from GEOMBase_Helper
virtual GEOM::GEOM_IOperations_ptr createOperation();
virtual bool isValid( QString& );
virtual bool execute( ObjectList& );
virtual void closeEvent( QCloseEvent* e );
virtual void closeEvent( QCloseEvent* );
private:
void Init();
void enterEvent(QEvent* e);
double getRadius() const;
void Init();
void enterEvent( QEvent* );
double getRadius() const;
GEOM::GEOM_Object_var myPoint, myDir, myPoint1, myPoint2, myPoint3;
private:
GEOM::GEOM_Object_var myPoint, myDir, myPoint1, myPoint2, myPoint3;
DlgRef_2Sel1Spin* GroupPntVecR;
Ui::DlgRef_3Sel_QTD* Group3Pnts;
DlgRef_2Sel1Spin* GroupPntVecR;
DlgRef_3Sel* Group3Pnts;
private slots:
void ClickOnOk();
void ClickOnCancel();
bool ClickOnApply();
void ClickOnOk();
void ClickOnCancel();
bool ClickOnApply();
void ActivateThisDialog();
void DeactivateActiveDialog();
void ActivateThisDialog();
void DeactivateActiveDialog();
void SelectionIntoArgument();
void SelectionIntoArgument();
void ConstructorsClicked( int );
void LineEditReturnPressed();
void SetEditCurrentArgument();
void ValueChangedInSpinBox();
void ConstructorsClicked( int );
void LineEditReturnPressed();
void SetEditCurrentArgument();
void ValueChangedInSpinBox();
};
#endif // DIALOGBOX_CIRCLE_H
#endif // BASICGUI_CIRCLEDLG_H

View File

@ -1,47 +1,42 @@
// GEOM GEOMGUI : GUI for Geometry component
// GEOM GEOMGUI : GUI for Geometry component
//
// Copyright (C) 2003 OPEN CASCADE
// Copyright (C) 2003 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
//
// File : BasicGUI_CurveDlg.cxx
// Author : Lucien PIGNOLONI, Open CASCADE S.A.S.
//
//
// File : BasicGUI_CurveDlg.cxx
// Author : Nicolas REJNERI
// Module : GEOM
// $Header$
#include "BasicGUI_CurveDlg.h"
#include "GeometryGUI.h"
#include "GEOMBase.h"
#include <GEOM_DlgRef.h>
#include <GeometryGUI.h>
#include <GEOMBase.h>
#include "SUIT_ResourceMgr.h"
#include "SUIT_Session.h"
#include "SalomeApp_Application.h"
#include "LightApp_SelectionMgr.h"
#include <SUIT_ResourceMgr.h>
#include <SUIT_Session.h>
#include <SalomeApp_Application.h>
#include <LightApp_SelectionMgr.h>
#include "SALOME_ListIteratorOfListIO.hxx"
#include "SALOME_ListIO.hxx"
#include <SALOME_ListIteratorOfListIO.hxx>
#include <SALOME_ListIO.hxx>
#include "GEOMImpl_Types.hxx"
using namespace std;
#include <string>
#include <GEOMImpl_Types.hxx>
//=================================================================================
// class : BasicGUI_CurveDlg()
@ -50,38 +45,36 @@ using namespace std;
// The dialog will by default be modeless, unless you set 'modal' to
// TRUE to construct a modal dialog.
//=================================================================================
BasicGUI_CurveDlg::BasicGUI_CurveDlg(GeometryGUI* theGeometryGUI, QWidget* parent,
const char* name, bool modal, Qt::WindowFlags fl)
:GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, Qt::WindowTitleHint | Qt::WindowSystemMenuHint)
BasicGUI_CurveDlg::BasicGUI_CurveDlg( GeometryGUI* theGeometryGUI, QWidget* parent,
const char* name, bool modal, Qt::WindowFlags fl )
: GEOMBase_Skeleton( theGeometryGUI, parent, name, modal, fl )
{
QPixmap image0(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_POLYLINE")));
QPixmap image2(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_SPLINE")));
QPixmap image3(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_BEZIER")));
QPixmap image0( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_POLYLINE" ) ) );
QPixmap image2( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_SPLINE" ) ) );
QPixmap image3( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_BEZIER" ) ) );
QPixmap image1( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_SELECT" ) ) );
QPixmap image1(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_SELECT")));
setWindowTitle(tr("GEOM_CURVE_TITLE"));
setWindowTitle( tr( "GEOM_CURVE_TITLE" ) );
/***************************************************************/
RadioButton1->setIcon( image0 );
RadioButton2->setIcon( image3 );
RadioButton3->setIcon( image2 );
mainFrame()->RadioButton1->setIcon( image0 );
mainFrame()->RadioButton2->setIcon( image3 );
mainFrame()->RadioButton3->setIcon( image2 );
GroupPoints = new Ui::DlgRef_1Sel_QTD();
QWidget* aGroupPointsWidget = new QWidget(this);
GroupPoints->setupUi(aGroupPointsWidget);
aGroupPointsWidget->setObjectName("GroupPoints");
GroupPoints = new DlgRef_1Sel( centralWidget() );
GroupPoints->GroupBox1->setTitle( tr( "GEOM_NODES" ) );
GroupPoints->TextLabel1->setText( tr("GEOM_POINTS") );
GroupPoints->PushButton1->setIcon(image1);
GroupPoints->TextLabel1->setText( tr( "GEOM_POINTS" ) );
GroupPoints->PushButton1->setIcon( image1 );
GroupPoints->LineEdit1->setReadOnly( true );
gridLayout1->addWidget(aGroupPointsWidget, 2, 0);
QVBoxLayout* layout = new QVBoxLayout( centralWidget() );
layout->setMargin( 0 ); layout->setSpacing( 6 );
layout->addWidget( GroupPoints );
/***************************************************************/
setHelpFileName("curve.htm");
setHelpFileName( "curve.htm" );
Init();
}
@ -111,21 +104,22 @@ void BasicGUI_CurveDlg::Init()
globalSelection( GEOM_POINT );
/* signals and slots connections */
connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
connect(myGeomGUI, SIGNAL(SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
connect(myGeomGUI, SIGNAL(SignalCloseAllDialogs()), this, SLOT(ClickOnCancel()));
connect( myGeomGUI, SIGNAL( SignalDeactivateActiveDialog() ), this, SLOT( DeactivateActiveDialog( ) ) );
connect( myGeomGUI, SIGNAL( SignalCloseAllDialogs() ), this, SLOT( ClickOnCancel() ) );
connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
connect(GroupConstructors, SIGNAL(clicked(int)), this, SLOT(ConstructorsClicked(int)));
connect( buttonCancel(), SIGNAL( clicked() ), this, SLOT( ClickOnCancel() ) );
connect( buttonOk(), SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) );
connect( buttonApply(), SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) );
connect(GroupPoints->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
connect(GroupPoints->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed()));
connect( this, SIGNAL( constructorsClicked( int ) ), this, SLOT( ConstructorsClicked( int ) ) );
connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(),
SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())) ;
connect( GroupPoints->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) );
connect( GroupPoints->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) );
initName( tr( "GEOM_CURVE" ).toLatin1().constData() );
connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(),
SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
initName( tr( "GEOM_CURVE" ) );
ConstructorsClicked( 0 );
}
@ -136,12 +130,12 @@ void BasicGUI_CurveDlg::Init()
void BasicGUI_CurveDlg::ConstructorsClicked( int id )
{
QString aTitle = tr( id == 0 ? "GEOM_POLYLINE" : id == 1 ? "GEOM_BEZIER" : "GEOM_INTERPOL" );
GroupConstructors->setTitle( aTitle );
mainFrame()->GroupConstructors->setTitle( aTitle );
myPoints = new GEOM::ListOfGO();
myPoints = new GEOM::ListOfGO();
myPoints->length( 0 );
myEditCurrentArgument->setText("");
myEditCurrentArgument->setText( "" );
}
@ -211,19 +205,20 @@ void BasicGUI_CurveDlg::ClickOnCancel()
* \retval -1, if point not in list, else 1 in list
*/
//=================================================================================
static int isPointInList(list<GEOM::GEOM_Object_var>& thePoints,
GEOM::GEOM_Object_var& theObject)
static int isPointInList( list<GEOM::GEOM_Object_var>& thePoints,
GEOM::GEOM_Object_var& theObject )
{
int len = thePoints.size();
if(len<1){
if ( len < 1 ) {
return -1;
}
for(list<GEOM::GEOM_Object_var>::iterator i=thePoints.begin();i!=thePoints.end();i++)
if (string((*i)->GetEntry()) == string(theObject->GetEntry())){
for ( list<GEOM::GEOM_Object_var>::iterator i = thePoints.begin(); i != thePoints.end(); i++ ) {
if ( string( (*i)->GetEntry() ) == string( theObject->GetEntry() ) ) {
return 1;
}
}
return -1;
}
@ -235,24 +230,24 @@ static int isPointInList(list<GEOM::GEOM_Object_var>& thePoints,
* \li \a theNewPoints - not ordered sequence with necessary points
*/
//=================================================================================
static void removeUnnecessaryPnt(list<GEOM::GEOM_Object_var>& theOldPoints,
GEOM::ListOfGO_var& theNewPoints)
static void removeUnnecessaryPnt( list<GEOM::GEOM_Object_var>& theOldPoints,
GEOM::ListOfGO_var& theNewPoints )
{
list<GEOM::GEOM_Object_var> objs_to_remove;
for(list<GEOM::GEOM_Object_var>::iterator i=theOldPoints.begin();i!=theOldPoints.end();i++){
for ( list<GEOM::GEOM_Object_var>::iterator i = theOldPoints.begin(); i != theOldPoints.end(); i++ ) {
bool found = false;
for (int j=0;j<theNewPoints->length() && !found ; j++){
if(string((*i)->GetEntry()) == string(theNewPoints[j]->GetEntry())){
for ( int j = 0; j < theNewPoints->length() && !found ; j++ ) {
if ( string( (*i)->GetEntry() ) == string( theNewPoints[j]->GetEntry() ) ) {
found = true;
}
}
if(!found){
objs_to_remove.push_back(*i);
if ( !found ) {
objs_to_remove.push_back( *i );
//cout << "removed: " << (*i)->GetEntry() << endl;
}
}
for(list<GEOM::GEOM_Object_var>::iterator i=objs_to_remove.begin();i!=objs_to_remove.end();i++){
theOldPoints.remove(*i);
for ( list<GEOM::GEOM_Object_var>::iterator i = objs_to_remove.begin(); i != objs_to_remove.end(); i++ ) {
theOldPoints.remove( *i );
}
}
@ -262,7 +257,7 @@ static void removeUnnecessaryPnt(list<GEOM::GEOM_Object_var>& theOldPoints,
//=================================================================================
void BasicGUI_CurveDlg::SelectionIntoArgument()
{
myEditCurrentArgument->setText("");
myEditCurrentArgument->setText( "" );
Standard_Boolean aRes = Standard_False;
int i = 0;
@ -270,31 +265,30 @@ void BasicGUI_CurveDlg::SelectionIntoArgument()
bool is_append = myPoints->length() < IOC; // if true - add point, else remove
myPoints->length( IOC ); // this length may be greater than number of objects,
// that will actually be put into myPoints
for ( SALOME_ListIteratorOfListIO anIt( selectedIO() ); anIt.More(); anIt.Next() )
{
GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject( anIt.Value(), aRes );
if ( !CORBA::is_nil( aSelectedObject ) && aRes )
{
//TopoDS_Shape aPointShape;
//if ( myGeomBase->GetShape( aSelectedObject, aPointShape, TopAbs_VERTEX ) )
int pos = isPointInList(myOrderedSel,aSelectedObject);
if(is_append && pos==-1)
myOrderedSel.push_back(aSelectedObject);
myPoints[i++] = aSelectedObject;
}
for ( SALOME_ListIteratorOfListIO anIt( selectedIO() ); anIt.More(); anIt.Next() ) {
GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject( anIt.Value(), aRes );
if ( !CORBA::is_nil( aSelectedObject ) && aRes ) {
//TopoDS_Shape aPointShape;
//if ( myGeomBase->GetShape( aSelectedObject, aPointShape, TopAbs_VERTEX ) )
int pos = isPointInList(myOrderedSel, aSelectedObject);
if ( is_append && pos == -1 )
myOrderedSel.push_back( aSelectedObject );
myPoints[i++] = aSelectedObject;
}
}
myPoints->length( i ); // this is the right length, smaller of equal to the previously set
if(IOC == 0)
if ( IOC == 0 )
myOrderedSel.clear();
else
removeUnnecessaryPnt(myOrderedSel,myPoints);
removeUnnecessaryPnt( myOrderedSel, myPoints );
if(myOrderedSel.size() == myPoints->length()){
int k=0;
for (list<GEOM::GEOM_Object_var>::iterator j=myOrderedSel.begin();j!=myOrderedSel.end();j++)
if ( myOrderedSel.size() == myPoints->length() ) {
int k = 0;
for ( list<GEOM::GEOM_Object_var>::iterator j = myOrderedSel.begin(); j!= myOrderedSel.end(); j++ )
myPoints[k++] = *j;
} else {
}
else {
//cout << "ERROR: Ordered sequence size != selection sequence size! ("<<myOrderedSel.size()<<"!="<<myPoints->length()<<")"<<endl;
}
if ( i )
@ -311,8 +305,8 @@ void BasicGUI_CurveDlg::SelectionIntoArgument()
void BasicGUI_CurveDlg::ActivateThisDialog()
{
GEOMBase_Skeleton::ActivateThisDialog();
connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(),
SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(),
SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
// myGeomGUI->SetState( 0 );
@ -334,9 +328,9 @@ void BasicGUI_CurveDlg::DeactivateActiveDialog()
// function : enterEvent()
// purpose :
//=================================================================================
void BasicGUI_CurveDlg::enterEvent(QEvent* e)
void BasicGUI_CurveDlg::enterEvent( QEvent* )
{
if ( !GroupConstructors->isEnabled() )
if ( !mainFrame()->GroupConstructors->isEnabled() )
ActivateThisDialog();
}
@ -368,8 +362,7 @@ bool BasicGUI_CurveDlg::execute( ObjectList& objects )
GEOM::GEOM_Object_var anObj;
switch ( getConstructorId() )
{
switch ( getConstructorId() ) {
case 0 :
anObj = GEOM::GEOM_ICurvesOperations::_narrow( getOperation() )->MakePolyline( myPoints );
res = true;

View File

@ -1,81 +1,80 @@
// GEOM GEOMGUI : GUI for Geometry component
// GEOM GEOMGUI : GUI for Geometry component
//
// Copyright (C) 2003 OPEN CASCADE
// Copyright (C) 2003 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
//
// File : BasicGUI_CurveDlg.h
// Author : Alexander SLADKOV, Open CASCADE S.A.S. (alexander.sladkov@opencascade.com)
//
//
// File : BasicGUI_CurveDlg.h
// Author : Alexander SLADKOV
// Module : GEOM
#ifndef BASICGUI_CURVE_H
#define BASICGUI_CURVE_H
#ifndef BASICGUI_CURVEDLG_H
#define BASICGUI_CURVEDLG_H
#include "GEOM_BasicGUI.hxx"
#include "GEOMBase_Skeleton.h"
#include "DlgRef_1Sel_QTD.h"
#include <GEOMBase_Skeleton.h>
#include <list>
class DlgRef_1Sel;
//=================================================================================
// class : BasicGUI_CurveDlg
// purpose :
//=================================================================================
class GEOM_BASICGUI_EXPORT BasicGUI_CurveDlg : public GEOMBase_Skeleton
class BASICGUI_EXPORT BasicGUI_CurveDlg : public GEOMBase_Skeleton
{
Q_OBJECT
Q_OBJECT
public:
BasicGUI_CurveDlg(GeometryGUI* theGeometryGUI, QWidget* parent = 0,
const char* name = 0, bool modal = FALSE, Qt::WindowFlags fl = 0);
~BasicGUI_CurveDlg();
BasicGUI_CurveDlg( GeometryGUI*, QWidget* = 0,
const char* = 0, bool = false, Qt::WindowFlags = 0 );
~BasicGUI_CurveDlg();
protected:
// redefined from GEOMBase_Helper
virtual GEOM::GEOM_IOperations_ptr createOperation();
virtual bool isValid( QString& );
virtual bool execute( ObjectList& objects );
// redefined from GEOMBase_Helper
virtual GEOM::GEOM_IOperations_ptr createOperation();
virtual bool isValid( QString& );
virtual bool execute( ObjectList& );
virtual void closeEvent( QCloseEvent* e );
virtual void closeEvent( QCloseEvent* );
private :
void Init();
void enterEvent(QEvent* e);
private:
void Init();
void enterEvent( QEvent* );
Ui::DlgRef_1Sel_QTD* GroupPoints;
GEOM::ListOfGO_var myPoints;
list<GEOM::GEOM_Object_var> myOrderedSel;//!< This list used for managing orderes selection
private:
DlgRef_1Sel* GroupPoints;
GEOM::ListOfGO_var myPoints;
list<GEOM::GEOM_Object_var> myOrderedSel; //!< This list used for managing orderes selection
private slots:
void ClickOnOk();
void ClickOnCancel();
bool ClickOnApply();
void ClickOnOk();
void ClickOnCancel();
bool ClickOnApply();
void ActivateThisDialog();
void DeactivateActiveDialog();
void ConstructorsClicked( int );
void LineEditReturnPressed();
void SelectionIntoArgument();
void SetEditCurrentArgument();
void ActivateThisDialog();
void DeactivateActiveDialog();
void ConstructorsClicked( int );
void LineEditReturnPressed();
void SelectionIntoArgument();
void SetEditCurrentArgument();
};
#endif // BASICGUI_CURVE_H
#endif // BASICGUI_CURVEDLG_H

View File

@ -1,45 +1,40 @@
// GEOM GEOMGUI : GUI for Geometry component
// GEOM GEOMGUI : GUI for Geometry component
//
// Copyright (C) 2003 OPEN CASCADE
// Copyright (C) 2003 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
//
// File : BasicGUI_EllipseDlg.cxx
// Author : Nicolas REJNERI, Open CASCADE S.A.S.
//
//
// File : BasicGUI_EllipseDlg.cxx
// Author : Nicolas REJNERI
// Module : GEOM
// $Header$
#include "BasicGUI_EllipseDlg.h"
#include "DlgRef_2Sel2Spin.h"
#include "DlgRef_SpinBox.h"
#include "GeometryGUI.h"
#include "GEOMBase.h"
#include <GEOM_DlgRef.h>
#include "SUIT_ResourceMgr.h"
#include "SUIT_Session.h"
#include "SalomeApp_Application.h"
#include "LightApp_SelectionMgr.h"
#include <GeometryGUI.h>
#include <GEOMBase.h>
#include "GEOMImpl_Types.hxx"
#include <SUIT_ResourceMgr.h>
#include <SUIT_Session.h>
#include <SalomeApp_Application.h>
#include <LightApp_SelectionMgr.h>
using namespace std;
#include <GEOMImpl_Types.hxx>
//=================================================================================
// class : BasicGUI_EllipseDlg()
@ -48,39 +43,41 @@ using namespace std;
// The dialog will by default be modeless, unless you set 'modal' to
// TRUE to construct a modal dialog.
//=================================================================================
BasicGUI_EllipseDlg::BasicGUI_EllipseDlg(GeometryGUI* theGeometryGUI, QWidget* parent,
const char* name, bool modal, Qt::WindowFlags fl)
:GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, Qt::WindowTitleHint | Qt::WindowSystemMenuHint)
BasicGUI_EllipseDlg::BasicGUI_EllipseDlg( GeometryGUI* theGeometryGUI, QWidget* parent,
const char* name, bool modal, Qt::WindowFlags fl )
: GEOMBase_Skeleton( theGeometryGUI, parent, name, modal, fl )
{
QPixmap image0(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_ELLIPSE_PV")));
QPixmap image1(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_SELECT")));
QPixmap image0( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_ELLIPSE_PV" ) ) );
QPixmap image1( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_SELECT" ) ) );
setWindowTitle(tr("GEOM_ELLIPSE_TITLE"));
setWindowTitle( tr( "GEOM_ELLIPSE_TITLE" ) );
/***************************************************************/
GroupConstructors->setTitle(tr("GEOM_ELLIPSE"));
RadioButton1->setIcon(image0);
RadioButton2->setAttribute( Qt::WA_DeleteOnClose );
RadioButton2->close();
RadioButton3->setAttribute( Qt::WA_DeleteOnClose );
RadioButton3->close();
mainFrame()->GroupConstructors->setTitle( tr( "GEOM_ELLIPSE" ) );
mainFrame()->RadioButton1->setIcon( image0 );
mainFrame()->RadioButton2->setAttribute( Qt::WA_DeleteOnClose );
mainFrame()->RadioButton2->close();
mainFrame()->RadioButton3->setAttribute( Qt::WA_DeleteOnClose );
mainFrame()->RadioButton3->close();
GroupPoints = new DlgRef_2Sel2Spin(this, "GroupPoints");
GroupPoints->GroupBox1->setTitle(tr("GEOM_ARGUMENTS"));
GroupPoints->TextLabel1->setText(tr("GEOM_CENTER"));
GroupPoints->TextLabel2->setText(tr("GEOM_VECTOR"));
GroupPoints->TextLabel3->setText(tr("GEOM_RADIUS_MAJOR"));
GroupPoints->TextLabel4->setText(tr("GEOM_RADIUS_MINOR"));
GroupPoints->PushButton1->setIcon(image1);
GroupPoints->PushButton2->setIcon(image1);
GroupPoints = new DlgRef_2Sel2Spin( centralWidget() );
GroupPoints->GroupBox1->setTitle( tr( "GEOM_ARGUMENTS" ) );
GroupPoints->TextLabel1->setText( tr( "GEOM_CENTER" ) );
GroupPoints->TextLabel2->setText( tr( "GEOM_VECTOR" ) );
GroupPoints->TextLabel3->setText( tr( "GEOM_RADIUS_MAJOR" ) );
GroupPoints->TextLabel4->setText( tr( "GEOM_RADIUS_MINOR" ) );
GroupPoints->PushButton1->setIcon( image1 );
GroupPoints->PushButton2->setIcon( image1 );
GroupPoints->LineEdit1->setReadOnly( true );
GroupPoints->LineEdit2->setReadOnly( true );
gridLayout1->addWidget(GroupPoints, 2, 0);
QVBoxLayout* layout = new QVBoxLayout( centralWidget() );
layout->setMargin( 0 ); layout->setSpacing( 6 );
layout->addWidget( GroupPoints );
/***************************************************************/
setHelpFileName("ellipse.htm");
setHelpFileName( "ellipse.htm" );
Init();
}
@ -111,40 +108,42 @@ void BasicGUI_EllipseDlg::Init()
/* Get setting of step value from file configuration */
SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr();
double step = resMgr->doubleValue( "Geometry", "SettingsGeomStep", 100);
double step = resMgr->doubleValue( "Geometry", "SettingsGeomStep", 100 );
double aMajorR( 200. ), aMinorR( 100. );
/* min, max, step and decimals for spin boxes & initial values */
GroupPoints->SpinBox_DX->RangeStepAndValidator( 0.001, COORD_MAX, step, 3 );
GroupPoints->SpinBox_DY->RangeStepAndValidator( 0.001, COORD_MAX, step, 3 );
GroupPoints->SpinBox_DX->SetValue( aMajorR );
GroupPoints->SpinBox_DY->SetValue( aMinorR );
initSpinBox( GroupPoints->SpinBox_DX, 0.001, COORD_MAX, step, 3 );
initSpinBox( GroupPoints->SpinBox_DY, 0.001, COORD_MAX, step, 3 );
GroupPoints->SpinBox_DX->setValue( aMajorR );
GroupPoints->SpinBox_DY->setValue( aMinorR );
/* signals and slots connections */
connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
connect(myGeomGUI, SIGNAL(SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
connect(myGeomGUI, SIGNAL(SignalCloseAllDialogs()), this, SLOT(ClickOnCancel()));
connect( myGeomGUI, SIGNAL( SignalDeactivateActiveDialog() ), this, SLOT( DeactivateActiveDialog() ) );
connect( myGeomGUI, SIGNAL( SignalCloseAllDialogs() ), this, SLOT( ClickOnCancel() ) );
connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
connect( buttonCancel(), SIGNAL( clicked() ), this, SLOT( ClickOnCancel() ) );
connect( buttonOk(), SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) );
connect( buttonApply(), SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) );
connect(GroupPoints->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
connect(GroupPoints->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
connect( GroupPoints->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) );
connect( GroupPoints->PushButton2, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) );
connect(GroupPoints->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed()));
connect(GroupPoints->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed()));
connect( GroupPoints->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) );
connect( GroupPoints->LineEdit2, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) );
connect(GroupPoints->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double)));
connect(GroupPoints->SpinBox_DY, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double)));
connect( GroupPoints->SpinBox_DX, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) );
connect( GroupPoints->SpinBox_DY, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) );
connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupPoints->SpinBox_DX, SLOT(SetStep(double)));
connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupPoints->SpinBox_DY, SLOT(SetStep(double)));
// VSR: TODO ->>
connect( myGeomGUI, SIGNAL( SignalDefaultStepValueChanged( double ) ), GroupPoints->SpinBox_DX, SLOT( SetStep( double ) ) );
connect( myGeomGUI, SIGNAL( SignalDefaultStepValueChanged( double ) ), GroupPoints->SpinBox_DY, SLOT( SetStep( double ) ) );
// <<-
connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(),
SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())) ;
initName( tr( "GEOM_ELLIPSE" ).toLatin1().constData() );
initName( tr( "GEOM_ELLIPSE" ) );
}
@ -195,10 +194,9 @@ void BasicGUI_EllipseDlg::ClickOnCancel()
//=================================================================================
void BasicGUI_EllipseDlg::SelectionIntoArgument()
{
myEditCurrentArgument->setText("");
myEditCurrentArgument->setText( "" );
if ( IObjectCount() != 1 )
{
if ( IObjectCount() != 1 ) {
if ( myEditCurrentArgument == GroupPoints->LineEdit1 ) myPoint = GEOM::GEOM_Object::_nil();
else if ( myEditCurrentArgument == GroupPoints->LineEdit2 ) myDir = GEOM::GEOM_Object::_nil();
return;
@ -206,8 +204,7 @@ void BasicGUI_EllipseDlg::SelectionIntoArgument()
Standard_Boolean aRes = Standard_False;
GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject( firstIObject(), aRes );
if ( !CORBA::is_nil( aSelectedObject ) && aRes )
{
if ( !CORBA::is_nil( aSelectedObject ) && aRes ) {
myEditCurrentArgument->setText( GEOMBase::GetName( aSelectedObject ) );
if ( myEditCurrentArgument == GroupPoints->LineEdit1 ) myPoint = aSelectedObject;
else if ( myEditCurrentArgument == GroupPoints->LineEdit2 ) myDir = aSelectedObject;
@ -244,8 +241,7 @@ void BasicGUI_EllipseDlg::LineEditReturnPressed()
{
QLineEdit* send = (QLineEdit*)sender();
if ( send == GroupPoints->LineEdit1 ||
send == GroupPoints->LineEdit2 )
{
send == GroupPoints->LineEdit2 ) {
myEditCurrentArgument = send;
GEOMBase_Skeleton::LineEditReturnPressed();
}
@ -259,8 +255,8 @@ void BasicGUI_EllipseDlg::LineEditReturnPressed()
void BasicGUI_EllipseDlg::ActivateThisDialog()
{
GEOMBase_Skeleton::ActivateThisDialog();
connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(),
SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(),
SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
GroupPoints->LineEdit1->setFocus();
myEditCurrentArgument = GroupPoints->LineEdit1;
@ -286,9 +282,9 @@ void BasicGUI_EllipseDlg::DeactivateActiveDialog()
// function : enterEvent()
// purpose :
//=================================================================================
void BasicGUI_EllipseDlg::enterEvent(QEvent* e)
void BasicGUI_EllipseDlg::enterEvent( QEvent* )
{
if ( !GroupConstructors->isEnabled() )
if ( !mainFrame()->GroupConstructors->isEnabled() )
ActivateThisDialog();
}
@ -296,7 +292,7 @@ void BasicGUI_EllipseDlg::enterEvent(QEvent* e)
// function : ValueChangedInSpinBox()
// purpose :
//=================================================================================
void BasicGUI_EllipseDlg::ValueChangedInSpinBox(double newValue)
void BasicGUI_EllipseDlg::ValueChangedInSpinBox( double newValue )
{
displayPreview();
}
@ -316,12 +312,11 @@ GEOM::GEOM_IOperations_ptr BasicGUI_EllipseDlg::createOperation()
//=================================================================================
bool BasicGUI_EllipseDlg::isValid( QString& msg )
{
double aMajorR = GroupPoints->SpinBox_DX->GetValue();
double aMinorR = GroupPoints->SpinBox_DY->GetValue();
if ( aMajorR < aMinorR )
{
msg = tr( "GEOM_ELLIPSE_ERROR_1" );
return false;
double aMajorR = GroupPoints->SpinBox_DX->value();
double aMinorR = GroupPoints->SpinBox_DY->value();
if ( aMajorR < aMinorR ) {
msg = tr( "GEOM_ELLIPSE_ERROR_1" );
return false;
}
return !myPoint->_is_nil() && !myDir->_is_nil();
}
@ -332,8 +327,8 @@ bool BasicGUI_EllipseDlg::isValid( QString& msg )
//=================================================================================
bool BasicGUI_EllipseDlg::execute( ObjectList& objects )
{
double aMajorR = GroupPoints->SpinBox_DX->GetValue();
double aMinorR = GroupPoints->SpinBox_DY->GetValue();
double aMajorR = GroupPoints->SpinBox_DX->value();
double aMinorR = GroupPoints->SpinBox_DY->value();
GEOM::GEOM_Object_var anObj = GEOM::GEOM_ICurvesOperations::_narrow( getOperation() )->MakeEllipse( myPoint, myDir, aMajorR, aMinorR );
if ( !anObj->_is_nil() )
@ -350,4 +345,3 @@ void BasicGUI_EllipseDlg::closeEvent( QCloseEvent* e )
{
GEOMBase_Skeleton::closeEvent( e );
}

View File

@ -1,35 +1,33 @@
// GEOM GEOMGUI : GUI for Geometry component
// GEOM GEOMGUI : GUI for Geometry component
//
// Copyright (C) 2003 OPEN CASCADE
// Copyright (C) 2003 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
//
// File : BasicGUI_EllipseDlg.h
// Author : Nicolas REJNERI, Open CASCADE S.A.S.
//
//
// File : BasicGUI_EllipseDlg.h
// Author : Nicolas REJNERI
// Module : GEOM
#ifndef BASICGUI_ELLIPSE_H
#define BASICGUI_ELLIPSE_H
#ifndef BASICGUI_ELLIPSEDLG_H
#define BASICGUI_ELLIPSEDLG_H
#include "GEOM_BasicGUI.hxx"
#include "GEOMBase_Skeleton.h"
#include <GEOMBase_Skeleton.h>
class DlgRef_2Sel2Spin;
@ -37,44 +35,44 @@ class DlgRef_2Sel2Spin;
// class : BasicGUI_EllipseDlg
// purpose :
//=================================================================================
class GEOM_BASICGUI_EXPORT BasicGUI_EllipseDlg : public GEOMBase_Skeleton
class BASICGUI_EXPORT BasicGUI_EllipseDlg : public GEOMBase_Skeleton
{
Q_OBJECT
Q_OBJECT
public:
BasicGUI_EllipseDlg(GeometryGUI* theGeometryGUI, QWidget* parent = 0,
const char* name = 0, bool modal = FALSE, Qt::WindowFlags fl = 0);
~BasicGUI_EllipseDlg();
BasicGUI_EllipseDlg( GeometryGUI*, QWidget* = 0,
const char* = 0, bool = false, Qt::WindowFlags = 0 );
~BasicGUI_EllipseDlg();
protected:
// redefined from GEOMBase_Helper
virtual GEOM::GEOM_IOperations_ptr createOperation();
virtual bool isValid( QString& );
virtual bool execute( ObjectList& objects );
// redefined from GEOMBase_Helper
virtual GEOM::GEOM_IOperations_ptr createOperation();
virtual bool isValid( QString& );
virtual bool execute( ObjectList& );
virtual void closeEvent( QCloseEvent* e );
virtual void closeEvent( QCloseEvent* );
private :
void Init();
void enterEvent(QEvent* e);
private:
void Init();
void enterEvent( QEvent* );
GEOM::GEOM_Object_var myPoint, myDir;
private:
GEOM::GEOM_Object_var myPoint, myDir;
DlgRef_2Sel2Spin* GroupPoints;
DlgRef_2Sel2Spin* GroupPoints;
private slots:
void ClickOnOk();
void ClickOnCancel();
bool ClickOnApply();
void ClickOnOk();
void ClickOnCancel();
bool ClickOnApply();
void ActivateThisDialog();
void DeactivateActiveDialog();
void LineEditReturnPressed();
void SelectionIntoArgument();
void SetEditCurrentArgument();
void ValueChangedInSpinBox(double newValue);
void ActivateThisDialog();
void DeactivateActiveDialog();
void LineEditReturnPressed();
void SelectionIntoArgument();
void SetEditCurrentArgument();
void ValueChangedInSpinBox( double );
};
#endif // BASICGUI_ELLIPSE_H
#endif // BASICGUI_ELLIPSEDLG_H

View File

@ -1,44 +1,40 @@
// GEOM GEOMGUI : GUI for Geometry component
// GEOM GEOMGUI : GUI for Geometry component
//
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
//
// 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
//
// File : BasicGUI_LineDlg.cxx
// Author : Lucien PIGNOLONI, Open CASCADE S.A.S.
//
//
// File : BasicGUI_LineDlg.cxx
// Author : Lucien PIGNOLONI
// Module : GEOM
// $Header$
#include "BasicGUI_LineDlg.h"
#include "GeometryGUI.h"
#include "GEOMBase.h"
#include <GeometryGUI.h>
#include <GEOMBase.h>
#include <GEOM_DlgRef.h>
#include "SUIT_ResourceMgr.h"
#include "SUIT_Session.h"
#include "SalomeApp_Application.h"
#include "LightApp_SelectionMgr.h"
#include <SUIT_ResourceMgr.h>
#include <SUIT_Session.h>
#include <SalomeApp_Application.h>
#include <LightApp_SelectionMgr.h>
#include "GEOMImpl_Types.hxx"
using namespace std;
#include <GEOMImpl_Types.hxx>
//=================================================================================
// class : BasicGUI_LineDlg()
@ -47,41 +43,41 @@ using namespace std;
// The dialog will by default be modeless, unless you set 'modal' to
// TRUE to construct a modal dialog.
//=================================================================================
BasicGUI_LineDlg::BasicGUI_LineDlg(GeometryGUI* theGeometryGUI, QWidget* parent,
const char* name, bool modal, Qt::WindowFlags fl)
:GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, Qt::WindowTitleHint | Qt::WindowSystemMenuHint)
BasicGUI_LineDlg::BasicGUI_LineDlg( GeometryGUI* theGeometryGUI, QWidget* parent,
const char* name, bool modal, Qt::WindowFlags fl )
: GEOMBase_Skeleton( theGeometryGUI, parent, name, modal, fl )
{
QPixmap image0(SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM",tr("ICON_DLG_LINE_2P")));
QPixmap image1(SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM",tr("ICON_SELECT")));
QPixmap image0( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_LINE_2P" ) ) );
QPixmap image1( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_SELECT" ) ) );
setWindowTitle(tr("GEOM_LINE_TITLE"));
setWindowTitle( tr( "GEOM_LINE_TITLE" ) );
/***************************************************************/
GroupConstructors->setTitle(tr("GEOM_LINE"));
RadioButton1->setIcon(image0);
RadioButton2->setAttribute( Qt::WA_DeleteOnClose );
RadioButton2->close();
RadioButton3->setAttribute( Qt::WA_DeleteOnClose );
RadioButton3->close();
mainFrame()->GroupConstructors->setTitle( tr( "GEOM_LINE" ) );
mainFrame()->RadioButton1->setIcon( image0 );
mainFrame()->RadioButton2->setAttribute( Qt::WA_DeleteOnClose );
mainFrame()->RadioButton2->close();
mainFrame()->RadioButton3->setAttribute( Qt::WA_DeleteOnClose );
mainFrame()->RadioButton3->close();
GroupPoints = new Ui::DlgRef_2Sel_QTD();
QWidget* aGroupPointsWidget = new QWidget(this);
GroupPoints->setupUi(aGroupPointsWidget);
aGroupPointsWidget->setObjectName("GroupPoints");
GroupPoints = new DlgRef_2Sel( centralWidget() );
GroupPoints->GroupBox1->setTitle(tr("GEOM_POINTS"));
GroupPoints->TextLabel1->setText(tr("GEOM_POINT_I").arg("1"));
GroupPoints->TextLabel2->setText(tr("GEOM_POINT_I").arg("2"));
GroupPoints->PushButton1->setIcon(image1);
GroupPoints->PushButton2->setIcon(image1);
GroupPoints->GroupBox1->setTitle( tr( "GEOM_POINTS" ) );
GroupPoints->TextLabel1->setText( tr( "GEOM_POINT_I" ).arg( 1 ) );
GroupPoints->TextLabel2->setText( tr( "GEOM_POINT_I" ).arg( 2 ) );
GroupPoints->PushButton1->setIcon( image1 );
GroupPoints->PushButton2->setIcon( image1 );
GroupPoints->LineEdit1->setReadOnly( true );
GroupPoints->LineEdit2->setReadOnly( true );
gridLayout1->addWidget(aGroupPointsWidget, 2, 0);
QVBoxLayout* layout = new QVBoxLayout( centralWidget() );
layout->setMargin( 0 ); layout->setSpacing( 6 );
layout->addWidget( GroupPoints );
/***************************************************************/
setHelpFileName("line.htm");
setHelpFileName( "line.htm" );
Init();
}
@ -111,23 +107,23 @@ void BasicGUI_LineDlg::Init()
globalSelection( GEOM_POINT );
/* signals and slots connections */
connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
connect(myGeomGUI, SIGNAL(SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
connect(myGeomGUI, SIGNAL(SignalCloseAllDialogs()), this, SLOT(ClickOnCancel()));
connect( myGeomGUI, SIGNAL( SignalDeactivateActiveDialog() ), this, SLOT( DeactivateActiveDialog() ) );
connect( myGeomGUI, SIGNAL( SignalCloseAllDialogs() ), this, SLOT( ClickOnCancel() ) );
connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
connect( buttonCancel(), SIGNAL( clicked() ), this, SLOT( ClickOnCancel() ) );
connect( buttonOk(), SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) );
connect( buttonApply(), SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) );
connect(GroupPoints->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
connect(GroupPoints->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
connect( GroupPoints->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) );
connect( GroupPoints->PushButton2, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) );
connect(GroupPoints->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed()));
connect(GroupPoints->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed()));
connect( GroupPoints->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) );
connect( GroupPoints->LineEdit2, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) );
connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(),
SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(),
SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
initName( tr("GEOM_LINE").toLatin1().constData() );
initName( tr( "GEOM_LINE" ) );
}
@ -170,10 +166,9 @@ bool BasicGUI_LineDlg::ClickOnApply()
//=================================================================================
void BasicGUI_LineDlg::SelectionIntoArgument()
{
myEditCurrentArgument->setText("");
myEditCurrentArgument->setText( "" );
if ( IObjectCount() != 1 )
{
if ( IObjectCount() != 1 ) {
if ( myEditCurrentArgument == GroupPoints->LineEdit1 ) myPoint1 = GEOM::GEOM_Object::_nil();
else if ( myEditCurrentArgument == GroupPoints->LineEdit2 ) myPoint2 = GEOM::GEOM_Object::_nil();
return;
@ -182,8 +177,7 @@ void BasicGUI_LineDlg::SelectionIntoArgument()
// nbSel == 1
Standard_Boolean aRes = Standard_False;
GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject( firstIObject(), aRes );
if ( !CORBA::is_nil( aSelectedObject ) && aRes )
{
if ( !CORBA::is_nil( aSelectedObject ) && aRes ) {
myEditCurrentArgument->setText( GEOMBase::GetName( aSelectedObject ) );
if ( myEditCurrentArgument == GroupPoints->LineEdit1 ) myPoint1 = aSelectedObject;
else if ( myEditCurrentArgument == GroupPoints->LineEdit2 ) myPoint2 = aSelectedObject;
@ -228,8 +222,8 @@ void BasicGUI_LineDlg::LineEditReturnPressed()
void BasicGUI_LineDlg::ActivateThisDialog()
{
GEOMBase_Skeleton::ActivateThisDialog();
connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(),
SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(),
SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
// myGeomGUI->SetState( 0 );
globalSelection( GEOM_POINT );
@ -256,9 +250,9 @@ void BasicGUI_LineDlg::DeactivateActiveDialog()
// function : enterEvent()
// purpose :
//=================================================================================
void BasicGUI_LineDlg::enterEvent(QEvent* e)
void BasicGUI_LineDlg::enterEvent( QEvent* )
{
if ( !GroupConstructors->isEnabled() )
if ( !mainFrame()->GroupConstructors->isEnabled() )
ActivateThisDialog();
}

View File

@ -1,80 +1,79 @@
// GEOM GEOMGUI : GUI for Geometry component
// GEOM GEOMGUI : GUI for Geometry component
//
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
//
// 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
//
// File : BasicGUI_LineDlg.h
// Author : Lucien PIGNOLONI, Open CASCADE S.A.S.
//
//
// File : BasicGUI_LineDlg.h
// Author : Lucien PIGNOLONI
// Module : GEOM
#ifndef DIALOGBOX_LINE_H
#define DIALOGBOX_LINE_H
#ifndef BASICGUI_LINEDLG_H
#define BASICGUI_LINEDLG_H
#include "GEOM_BasicGUI.hxx"
#include "GEOMBase_Skeleton.h"
#include "DlgRef_2Sel_QTD.h"
#include <GEOMBase_Skeleton.h>
class DlgRef_2Sel;
//=================================================================================
// class : BasicGUI_LineDlg
// purpose :
//=================================================================================
class GEOM_BASICGUI_EXPORT BasicGUI_LineDlg : public GEOMBase_Skeleton
class BASICGUI_EXPORT BasicGUI_LineDlg : public GEOMBase_Skeleton
{
Q_OBJECT
Q_OBJECT
public:
BasicGUI_LineDlg(GeometryGUI* theGeometryGUI, QWidget* parent = 0,
const char* name = 0, bool modal = FALSE, Qt::WindowFlags fl = 0);
~BasicGUI_LineDlg();
BasicGUI_LineDlg( GeometryGUI*, QWidget* = 0,
const char* = 0, bool = false, Qt::WindowFlags = 0 );
~BasicGUI_LineDlg();
protected:
// redefined from GEOMBase_Helper
virtual GEOM::GEOM_IOperations_ptr createOperation();
virtual bool isValid( QString& );
virtual bool execute( ObjectList& objects );
// redefined from GEOMBase_Helper
virtual GEOM::GEOM_IOperations_ptr createOperation();
virtual bool isValid( QString& );
virtual bool execute( ObjectList& );
virtual void closeEvent( QCloseEvent* e );
virtual void closeEvent( QCloseEvent* );
private :
void Init();
void enterEvent(QEvent* e);
private:
void Init();
void enterEvent( QEvent* );
GEOM::GEOM_Object_var myPoint1;
GEOM::GEOM_Object_var myPoint2;
private:
GEOM::GEOM_Object_var myPoint1;
GEOM::GEOM_Object_var myPoint2;
Ui::DlgRef_2Sel_QTD* GroupPoints;
DlgRef_2Sel* GroupPoints;
private slots:
void ClickOnOk();
void ClickOnCancel();
bool ClickOnApply();
void ClickOnOk();
void ClickOnCancel();
bool ClickOnApply();
void ActivateThisDialog();
void DeactivateActiveDialog();
void LineEditReturnPressed();
void SelectionIntoArgument();
void SetEditCurrentArgument();
void ActivateThisDialog();
void DeactivateActiveDialog();
void LineEditReturnPressed();
void SelectionIntoArgument();
void SetEditCurrentArgument();
};
#endif // DIALOGBOX_LINE_H
#endif // BASICGUI_LINEDLG_H

View File

@ -1,45 +1,42 @@
// GEOM GEOMGUI : GUI for Geometry component
// GEOM GEOMGUI : GUI for Geometry component
//
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
//
// 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
//
// File : BasicGUI_MarkerDlg.cxx
// Author : Sergey LITONIN, Open CASCADE S.A.S. (sergey.litonin@opencascade.com)
//
//
// File : BasicGUI_MarkerDlg.cxx
// Author : Sergey LITONIN
// Module : GEOM
// $Header$
#include "BasicGUI_MarkerDlg.h"
#include "DlgRef_SpinBox.h"
#include "GeometryGUI.h"
#include "GEOMBase.h"
#include <GEOM_DlgRef.h>
#include <GeometryGUI.h>
#include <GEOMBase.h>
#include "SUIT_ResourceMgr.h"
#include "SUIT_Session.h"
#include "SalomeApp_Application.h"
#include "LightApp_SelectionMgr.h"
#include <SUIT_ResourceMgr.h>
#include <SUIT_Session.h>
#include <SalomeApp_Application.h>
#include <LightApp_SelectionMgr.h>
#include <QLabel>
#include "GEOMImpl_Types.hxx"
#include <GEOMImpl_Types.hxx>
// OCCT Includes
#include <BRep_Tool.hxx>
@ -59,8 +56,8 @@
// purpose : Constructor
//=================================================================================
BasicGUI_MarkerDlg::BasicGUI_MarkerDlg( GeometryGUI* theGeometryGUI, QWidget* theParent )
: GEOMBase_Skeleton(theGeometryGUI, theParent, "BasicGUI_MarkerDlg", false,
Qt::WindowTitleHint | Qt::WindowSystemMenuHint)
: GEOMBase_Skeleton( theGeometryGUI, theParent, "BasicGUI_MarkerDlg", false,
Qt::WindowTitleHint | Qt::WindowSystemMenuHint )
{
QPixmap iconCS1 ( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_MARKER" ) ) );
QPixmap iconCS2 ( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_MARKER2" ) ) );
@ -69,49 +66,44 @@ BasicGUI_MarkerDlg::BasicGUI_MarkerDlg( GeometryGUI* theGeometryGUI, QWidget* th
setWindowTitle( tr( "CAPTION" ) );
GroupConstructors->setTitle( tr( "LOCALCS" ) );
RadioButton1->setIcon( iconCS1 );
RadioButton2->setIcon( iconCS2 );
RadioButton3->setIcon( iconCS3 );
mainFrame()->GroupConstructors->setTitle( tr( "LOCALCS" ) );
mainFrame()->RadioButton1->setIcon( iconCS1 );
mainFrame()->RadioButton2->setIcon( iconCS2 );
mainFrame()->RadioButton3->setIcon( iconCS3 );
Group1 = new Ui::DlgRef_1Sel_QTD();
QWidget* aGroup1Widget = new QWidget(this);
Group1->setupUi(aGroup1Widget);
aGroup1Widget->setObjectName("Group1");
Group1 = new DlgRef_1Sel( centralWidget() );
Group1->GroupBox1->setTitle(tr("GEOM_ARGUMENTS"));
Group1->TextLabel1->setText(tr("GEOM_OBJECT"));
Group1->PushButton1->setIcon(iconSelect);
Group1->GroupBox1->setTitle( tr( "GEOM_ARGUMENTS" ) );
Group1->TextLabel1->setText( tr( "GEOM_OBJECT" ) );
Group1->PushButton1->setIcon( iconSelect );
Group2 = new Ui::DlgRef_3Sel_QTD();
QWidget* aGroup2Widget = new QWidget(this);
Group2->setupUi(aGroup2Widget);
aGroup2Widget->setObjectName("Group2");
Group2 = new DlgRef_3Sel( centralWidget() );
Group2->GroupBox1->setTitle(tr("GEOM_ARGUMENTS"));
Group2->TextLabel1->setText(tr("GEOM_POINT"));
Group2->TextLabel2->setText(tr("XDIR"));
Group2->TextLabel3->setText(tr("YDIR"));
Group2->PushButton1->setIcon(iconSelect);
Group2->PushButton2->setIcon(iconSelect);
Group2->PushButton3->setIcon(iconSelect);
Group2->GroupBox1->setTitle( tr( "GEOM_ARGUMENTS" ) );
Group2->TextLabel1->setText( tr( "GEOM_POINT" ) );
Group2->TextLabel2->setText( tr( "XDIR" ) );
Group2->TextLabel3->setText( tr( "YDIR" ) );
Group2->PushButton1->setIcon( iconSelect );
Group2->PushButton2->setIcon( iconSelect );
Group2->PushButton3->setIcon( iconSelect );
aMainGrp = new QFrame( this );
aMainGrp->setFrameStyle( QFrame::NoFrame );
aMainGrp = new QFrame( centralWidget() );
aMainGrp->setFrameStyle( QFrame::NoFrame | QFrame::Plain );
aMainGrp->setContentsMargins( 0, 0, 0, 0 );
QHBoxLayout* aMainGrpLayout = new QHBoxLayout( aMainGrp );
aMainGrpLayout->setMargin( 0 );
QGroupBox* anOriGrp = new QGroupBox( tr( "ORIGIN" ), aMainGrp );
QVBoxLayout* anOriGrpLayout = new QVBoxLayout( anOriGrp );
anOriGrpLayout->addWidget( new QLabel( tr( "GEOM_X" ), anOriGrp ) );
myData[ X ] = new DlgRef_SpinBox( anOriGrp );
myData[ X ] = new QDoubleSpinBox( anOriGrp );
anOriGrpLayout->addWidget( myData[ X ] );
anOriGrpLayout->addWidget( new QLabel( tr( "GEOM_Y" ), anOriGrp ) );
myData[ Y ] = new DlgRef_SpinBox( anOriGrp );
myData[ Y ] = new QDoubleSpinBox( anOriGrp );
anOriGrpLayout->addWidget( myData[ Y ] );
anOriGrpLayout->addWidget( new QLabel( tr( "GEOM_Z" ), anOriGrp ) );
myData[ Z ] = new DlgRef_SpinBox( anOriGrp );
myData[ Z ] = new QDoubleSpinBox( anOriGrp );
anOriGrpLayout->addWidget( myData[ Z ] );
aMainGrpLayout->addWidget( anOriGrp );
@ -120,13 +112,13 @@ BasicGUI_MarkerDlg::BasicGUI_MarkerDlg( GeometryGUI* theGeometryGUI, QWidget* th
QVBoxLayout* aXAxisGrpLayout = new QVBoxLayout( aXAxisGrp );
aXAxisGrpLayout->addWidget( new QLabel( tr( "DX" ), aXAxisGrp ) );
myData[ DX1 ] = new DlgRef_SpinBox( aXAxisGrp );
myData[ DX1 ] = new QDoubleSpinBox( aXAxisGrp );
aXAxisGrpLayout->addWidget( myData[ DX1 ] );
aXAxisGrpLayout->addWidget( new QLabel( tr( "DY" ), aXAxisGrp ) );
myData[ DY1 ] = new DlgRef_SpinBox( aXAxisGrp );
myData[ DY1 ] = new QDoubleSpinBox( aXAxisGrp );
aXAxisGrpLayout->addWidget( myData[ DY1 ] );
aXAxisGrpLayout->addWidget( new QLabel( tr( "DZ" ), aXAxisGrp ) );
myData[ DZ1 ] = new DlgRef_SpinBox( aXAxisGrp );
myData[ DZ1 ] = new QDoubleSpinBox( aXAxisGrp );
aXAxisGrpLayout->addWidget( myData[ DZ1 ] );
aMainGrpLayout->addWidget( aXAxisGrp );
@ -135,22 +127,24 @@ BasicGUI_MarkerDlg::BasicGUI_MarkerDlg( GeometryGUI* theGeometryGUI, QWidget* th
QVBoxLayout* anYAxisGrpLayout = new QVBoxLayout( anYAxisGrp );
anYAxisGrpLayout->addWidget( new QLabel( tr( "DX" ), anYAxisGrp ) );
myData[ DX2 ] = new DlgRef_SpinBox( anYAxisGrp );
myData[ DX2 ] = new QDoubleSpinBox( anYAxisGrp );
anYAxisGrpLayout->addWidget( myData[ DX2 ] );
anYAxisGrpLayout->addWidget( new QLabel( tr( "DY" ), anYAxisGrp ) );
myData[ DY2 ] = new DlgRef_SpinBox( anYAxisGrp );
myData[ DY2 ] = new QDoubleSpinBox( anYAxisGrp );
anYAxisGrpLayout->addWidget( myData[ DY2 ] );
anYAxisGrpLayout->addWidget( new QLabel( tr( "DZ" ), anYAxisGrp ) );
myData[ DZ2 ] = new DlgRef_SpinBox( anYAxisGrp );
myData[ DZ2 ] = new QDoubleSpinBox( anYAxisGrp );
anYAxisGrpLayout->addWidget( myData[ DZ2 ] );
aMainGrpLayout->addWidget( anYAxisGrp );
gridLayout1->addWidget( aMainGrp, 2, 0 );
gridLayout1->addWidget( aGroup1Widget, 2, 0 );
gridLayout1->addWidget( aGroup2Widget, 2, 0 );
QVBoxLayout* layout = new QVBoxLayout( centralWidget() );
layout->setMargin( 0 ); layout->setSpacing( 6 );
layout->addWidget( aMainGrp );
layout->addWidget( Group1 );
layout->addWidget( Group2 );
setHelpFileName("local_coordinate_system.htm");
setHelpFileName( "local_coordinate_system.htm" );
Init();
}
@ -179,44 +173,44 @@ void BasicGUI_MarkerDlg::Init()
Group2->LineEdit2->setReadOnly( true );
Group2->LineEdit3->setReadOnly( true );
connect(GroupConstructors, SIGNAL(clicked(int)), this, SLOT(ConstructorsClicked(int)));
connect(Group1->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
connect(Group2->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
connect(Group2->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
connect(Group2->PushButton3, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
connect( this, SIGNAL( constructorsClicked( int ) ), this, SLOT( ConstructorsClicked( int ) ) );
connect(Group1->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed()));
connect(Group2->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed()));
connect(Group2->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed()));
connect(Group2->LineEdit3, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed()));
connect( Group1->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) );
connect( Group2->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) );
connect( Group2->PushButton2, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) );
connect( Group2->PushButton3, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) );
connect( buttonCancel, SIGNAL( clicked() ), this, SLOT( onClose() ) );
connect( myGeomGUI, SIGNAL( SignalDeactivateActiveDialog() ), this, SLOT( onDeactivate() ) );
connect( myGeomGUI, SIGNAL( SignalCloseAllDialogs() ), this, SLOT( onClose() ) );
connect( Group1->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) );
connect( Group2->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) );
connect( Group2->LineEdit2, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) );
connect( Group2->LineEdit3, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) );
connect( buttonOk, SIGNAL( clicked() ), this, SLOT( onOk() ) );
connect( buttonApply, SIGNAL( clicked() ), this, SLOT( onApply() ) );
connect( myGeomGUI, SIGNAL( SignalDeactivateActiveDialog() ), this, SLOT( onDeactivate() ) );
connect( myGeomGUI, SIGNAL( SignalCloseAllDialogs() ), this, SLOT( onClose() ) );
connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(),
connect( buttonCancel(), SIGNAL( clicked() ), this, SLOT( onClose() ) );
connect( buttonOk(), SIGNAL( clicked() ), this, SLOT( onOk() ) );
connect( buttonApply(), SIGNAL( clicked() ), this, SLOT( onApply() ) );
connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(),
SIGNAL( currentSelectionChanged() ), this, SLOT( onSelectionDone() ) );
initName( tr( "LCS_NAME" ).toLatin1().constData() );
initName( tr( "LCS_NAME" ) );
SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr();
double step = resMgr->doubleValue( "Geometry", "SettingsGeomStep", 100);
double step = resMgr->doubleValue( "Geometry", "SettingsGeomStep", 100 );
for ( DataMap::iterator anIter = myData.begin(); anIter != myData.end(); ++anIter )
{
anIter.value()->RangeStepAndValidator( COORD_MIN, COORD_MAX, step, 3 );
for ( DataMap::iterator anIter = myData.begin(); anIter != myData.end(); ++anIter ) {
initSpinBox( anIter.value(), COORD_MIN, COORD_MAX, step, 3 );
connect( anIter.value(), SIGNAL( valueChanged( double ) ),
this, SLOT( onValueChanged( double ) ) );
}
myBlockPreview = true;
for ( DataMap::iterator anIter = myData.begin(); anIter != myData.end(); ++anIter )
anIter.value()->SetValue( 0 );
myData[ DX1 ]->SetValue( 1 );
myData[ DY2 ]->SetValue( 1 );
anIter.value()->setValue( 0 );
myData[ DX1 ]->setValue( 1 );
myData[ DY2 ]->setValue( 1 );
myBlockPreview = false;
ConstructorsClicked( 0 );
@ -246,8 +240,7 @@ void BasicGUI_MarkerDlg::Init()
//=================================================================================
void BasicGUI_MarkerDlg::ConstructorsClicked( int constructorId )
{
if ( myConstructorId == constructorId && myConstructorId == 0 )
{
if ( myConstructorId == constructorId && myConstructorId == 0 ) {
localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX );
activate( GEOM_MARKER );
displayPreview();
@ -256,50 +249,50 @@ void BasicGUI_MarkerDlg::ConstructorsClicked( int constructorId )
myConstructorId = constructorId;
disconnect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), 0, this, 0);
disconnect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), 0, this, 0 );
switch (constructorId)
switch ( constructorId ) {
case 0:
{
case 0:
{
::qobject_cast<QWidget*>( Group1->gridLayout->parent() )->hide();
::qobject_cast<QWidget*>( Group2->gridLayout->parent() )->hide();
resize(0, 0);
Group1->hide();
Group2->hide();
aMainGrp->show();
localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX );
activate( GEOM_MARKER );
break;
}
case 1:
{
::qobject_cast<QWidget*>( Group2->gridLayout->parent() )->hide();
aMainGrp->hide();
//PAL6669: resize(0, 0);
::qobject_cast<QWidget*>( Group1->gridLayout->parent() )->show();
case 1:
{
aMainGrp->hide();
Group2->hide();
Group1->show();
globalSelection( GEOM_ALLGEOM );
myEditCurrentArgument = Group1->LineEdit1;
Group1->LineEdit1->setText("");
break;
}
case 2:
{
aMainGrp->hide();
::qobject_cast<QWidget*>( Group1->gridLayout->parent() )->show();
//PAL6669: resize(0, 0);
::qobject_cast<QWidget*>( Group2->gridLayout->parent() )->show();
globalSelection( GEOM_POINT );
myEditCurrentArgument = Group2->LineEdit1;
Group2->LineEdit1->setText("");
Group2->LineEdit2->setText("");
Group2->LineEdit3->setText("");
break;
}
globalSelection( GEOM_ALLGEOM );
myEditCurrentArgument = Group1->LineEdit1;
Group1->LineEdit1->setText( "" );
break;
}
case 2:
{
aMainGrp->hide();
Group1->show();
Group2->show();
connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(),
SIGNAL(currentSelectionChanged()), this, SLOT(onSelectionDone()));
globalSelection( GEOM_POINT );
myEditCurrentArgument = Group2->LineEdit1;
Group2->LineEdit1->setText( "" );
Group2->LineEdit2->setText( "" );
Group2->LineEdit3->setText( "" );
break;
}
}
qApp->processEvents();
updateGeometry();
resize( minimumSize() );
connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(),
SIGNAL( currentSelectionChanged() ), this, SLOT( onSelectionDone() ) );
onSelectionDone();
}
@ -343,52 +336,45 @@ bool BasicGUI_MarkerDlg::onApply()
//=================================================================================
void BasicGUI_MarkerDlg::onSelectionDone0()
{
if ( IObjectCount() == 1 )
{
if ( IObjectCount() == 1 ) {
Standard_Boolean aRes = Standard_False;
Handle(SALOME_InteractiveObject) anIO = firstIObject();
GEOM::GEOM_Object_var aSelectedObj = GEOMBase::ConvertIOinGEOMObject( anIO, aRes );
LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
if ( aRes && !aSelectedObj->_is_nil() )
{
if ( aRes && !aSelectedObj->_is_nil() ) {
TopoDS_Shape aShape;
if ( GEOMBase::GetShape( aSelectedObj, aShape, TopAbs_SHAPE ) && !aShape.IsNull() )
{
if ( GEOMBase::GetShape( aSelectedObj, aShape, TopAbs_SHAPE ) && !aShape.IsNull() ) {
// Existing LCS selected
if ( aSelectedObj->GetType() == GEOM_MARKER && aShape.ShapeType() == TopAbs_FACE )
{
if ( aSelectedObj->GetType() == GEOM_MARKER && aShape.ShapeType() == TopAbs_FACE ) {
TopoDS_Face aFace = TopoDS::Face( aShape );
Handle(Geom_Plane) aPlane = Handle(Geom_Plane)::DownCast( BRep_Tool::Surface( aFace ) );
if ( !aPlane.IsNull() )
{
if ( !aPlane.IsNull() ) {
gp_Ax3 anAx3 = aPlane->Pln().Position();
gp_Pnt aLoc = anAx3.Location();
gp_Dir aXDir = anAx3.XDirection();
gp_Dir aYDir = anAx3.YDirection();
myData[ X ]->SetValue( aLoc.X() );
myData[ Y ]->SetValue( aLoc.Y() );
myData[ Z ]->SetValue( aLoc.Z() );
myData[ X ]->setValue( aLoc.X() );
myData[ Y ]->setValue( aLoc.Y() );
myData[ Z ]->setValue( aLoc.Z() );
myData[ DX1 ]->SetValue( aXDir.X() );
myData[ DY1 ]->SetValue( aXDir.Y() );
myData[ DZ1 ]->SetValue( aXDir.Z() );
myData[ DX1 ]->setValue( aXDir.X() );
myData[ DY1 ]->setValue( aXDir.Y() );
myData[ DZ1 ]->setValue( aXDir.Z() );
myData[ DX2 ]->SetValue( aYDir.X() );
myData[ DY2 ]->SetValue( aYDir.Y() );
myData[ DZ2 ]->SetValue( aYDir.Z() );
myData[ DX2 ]->setValue( aYDir.X() );
myData[ DY2 ]->setValue( aYDir.Y() );
myData[ DZ2 ]->setValue( aYDir.Z() );
aSelMgr->clearSelected();
}
}
else
{
else {
TColStd_IndexedMapOfInteger aMap;
aSelMgr->GetIndexes( anIO, aMap );
if ( aMap.Extent() == 1 )
{
if ( aMap.Extent() == 1 ) {
int anIndex = aMap( 1 );
TopTools_IndexedMapOfShape aShapes;
TopExp::MapShapes( aShape, aShapes );
@ -396,12 +382,11 @@ void BasicGUI_MarkerDlg::onSelectionDone0()
aSelMgr->clearSelected();
}
if ( !aShape.IsNull() && aShape.ShapeType() == TopAbs_VERTEX )
{
if ( !aShape.IsNull() && aShape.ShapeType() == TopAbs_VERTEX ) {
gp_Pnt aPnt = BRep_Tool::Pnt( TopoDS::Vertex( aShape ) );
myData[ X ]->SetValue( aPnt.X() );
myData[ Y ]->SetValue( aPnt.Y() );
myData[ Z ]->SetValue( aPnt.Z() );
myData[ X ]->setValue( aPnt.X() );
myData[ Y ]->setValue( aPnt.Y() );
myData[ Z ]->setValue( aPnt.Z() );
}
}
}
@ -423,7 +408,7 @@ void BasicGUI_MarkerDlg::onSelectionDone()
return;
}
myEditCurrentArgument->setText("");
myEditCurrentArgument->setText( "" );
QString aName;
if ( IObjectCount() == 1 ) {
@ -436,37 +421,37 @@ void BasicGUI_MarkerDlg::onSelectionDone()
if ( getConstructorId() == 1 ) { // by shape position
// Get shape's position
CORBA::Double Ox,Oy,Oz, Zx,Zy,Zz, Xx,Xy,Xz, Yx,Yy,Yz;
CORBA::Double Ox, Oy, Oz, Zx, Zy, Zz, Xx, Xy, Xz, Yx, Yy, Yz;
Ox = Oy = Oz = Zx = Zy = Xy = Xz = Yx = Yz = 0;
Zz = Xx = Yy = 1.;
GEOM::GEOM_IMeasureOperations_ptr aMeasureOp =
myGeomGUI->GetGeomGen()->GetIMeasureOperations(getStudyId());
aMeasureOp->GetPosition(aSelectedObj, Ox,Oy,Oz, Zx,Zy,Zz, Xx,Xy,Xz);
myGeomGUI->GetGeomGen()->GetIMeasureOperations( getStudyId() );
aMeasureOp->GetPosition( aSelectedObj, Ox, Oy, Oz, Zx, Zy, Zz, Xx, Xy, Xz );
// Calculate Y direction
if (aMeasureOp->IsDone()) {
gp_Pnt aPnt (Ox,Oy,Oz);
gp_Dir aDirN (Zx,Zy,Zz);
gp_Dir aDirX (Xx,Xy,Xz);
gp_Ax3 anAx3 (aPnt, aDirN, aDirX);
if ( aMeasureOp->IsDone() ) {
gp_Pnt aPnt ( Ox, Oy, Oz );
gp_Dir aDirN ( Zx, Zy, Zz );
gp_Dir aDirX ( Xx, Xy, Xz );
gp_Ax3 anAx3 ( aPnt, aDirN, aDirX );
gp_Dir aDirY = anAx3.YDirection();
aDirY.Coord(Yx,Yy,Yz);
}
// Set values
myData[ X ]->SetValue( Ox );
myData[ Y ]->SetValue( Oy );
myData[ Z ]->SetValue( Oz );
myData[ X ]->setValue( Ox );
myData[ Y ]->setValue( Oy );
myData[ Z ]->setValue( Oz );
myData[ DX1 ]->SetValue( Xx );
myData[ DY1 ]->SetValue( Xy );
myData[ DZ1 ]->SetValue( Xz );
myData[ DX1 ]->setValue( Xx );
myData[ DY1 ]->setValue( Xy );
myData[ DZ1 ]->setValue( Xz );
myData[ DX2 ]->SetValue( Yx );
myData[ DY2 ]->SetValue( Yy );
myData[ DZ2 ]->SetValue( Yz );
myData[ DX2 ]->setValue( Yx );
myData[ DY2 ]->setValue( Yy );
myData[ DZ2 ]->setValue( Yz );
myEditCurrentArgument->setText( aName );
}
@ -486,52 +471,52 @@ void BasicGUI_MarkerDlg::onSelectionDone()
aShape = aShapes.FindKey( anIndex );
}
if (myEditCurrentArgument == Group2->LineEdit1) {
if ( myEditCurrentArgument == Group2->LineEdit1 ) {
if ( !aShape.IsNull() && aShape.ShapeType() == TopAbs_VERTEX ) {
gp_Pnt aPnt = BRep_Tool::Pnt( TopoDS::Vertex( aShape ) );
myData[ X ]->SetValue( aPnt.X() );
myData[ Y ]->SetValue( aPnt.Y() );
myData[ Z ]->SetValue( aPnt.Z() );
myData[ X ]->setValue( aPnt.X() );
myData[ Y ]->setValue( aPnt.Y() );
myData[ Z ]->setValue( aPnt.Z() );
myEditCurrentArgument->setText( aName );
}
else {
myData[ X ]->SetValue( 0 );
myData[ Y ]->SetValue( 0 );
myData[ Z ]->SetValue( 0 );
myData[ X ]->setValue( 0 );
myData[ Y ]->setValue( 0 );
myData[ Z ]->setValue( 0 );
}
}
else if (myEditCurrentArgument == Group2->LineEdit2) {
if ( !aShape.IsNull() && aShape.ShapeType() == TopAbs_EDGE ) {
gp_Pnt aP1 = BRep_Tool::Pnt(TopExp::FirstVertex(TopoDS::Edge(aShape)));
gp_Pnt aP2 = BRep_Tool::Pnt(TopExp::LastVertex(TopoDS::Edge(aShape)));
gp_Dir aDir(gp_Vec(aP1, aP2));
gp_Pnt aP1 = BRep_Tool::Pnt( TopExp::FirstVertex( TopoDS::Edge( aShape ) ) );
gp_Pnt aP2 = BRep_Tool::Pnt( TopExp::LastVertex( TopoDS::Edge( aShape ) ) );
gp_Dir aDir( gp_Vec( aP1, aP2 ) );
myData[ DX1 ]->SetValue( aDir.X() );
myData[ DY1 ]->SetValue( aDir.Y() );
myData[ DZ1 ]->SetValue( aDir.Z() );
myData[ DX1 ]->setValue( aDir.X() );
myData[ DY1 ]->setValue( aDir.Y() );
myData[ DZ1 ]->setValue( aDir.Z() );
myEditCurrentArgument->setText( aName );
}
else {
myData[ DX1 ]->SetValue( 0 );
myData[ DY1 ]->SetValue( 0 );
myData[ DZ1 ]->SetValue( 0 );
myData[ DX1 ]->setValue( 0 );
myData[ DY1 ]->setValue( 0 );
myData[ DZ1 ]->setValue( 0 );
}
}
else if (myEditCurrentArgument == Group2->LineEdit3) {
else if ( myEditCurrentArgument == Group2->LineEdit3 ) {
if ( !aShape.IsNull() && aShape.ShapeType() == TopAbs_EDGE ) {
gp_Pnt aP1 = BRep_Tool::Pnt(TopExp::FirstVertex(TopoDS::Edge(aShape)));
gp_Pnt aP2 = BRep_Tool::Pnt(TopExp::LastVertex(TopoDS::Edge(aShape)));
gp_Dir aDir(gp_Vec(aP1, aP2));
gp_Pnt aP1 = BRep_Tool::Pnt( TopExp::FirstVertex( TopoDS::Edge( aShape ) ) );
gp_Pnt aP2 = BRep_Tool::Pnt( TopExp::LastVertex( TopoDS::Edge( aShape ) ) );
gp_Dir aDir(gp_Vec( aP1, aP2 ));
myData[ DX2 ]->SetValue( aDir.X() );
myData[ DY2 ]->SetValue( aDir.Y() );
myData[ DZ2 ]->SetValue( aDir.Z() );
myData[ DX2 ]->setValue( aDir.X() );
myData[ DY2 ]->setValue( aDir.Y() );
myData[ DZ2 ]->setValue( aDir.Z() );
myEditCurrentArgument->setText( aName );
}
else {
myData[ DX2 ]->SetValue( 0 );
myData[ DY2 ]->SetValue( 0 );
myData[ DZ2 ]->SetValue( 0 );
myData[ DX2 ]->setValue( 0 );
myData[ DY2 ]->setValue( 0 );
myData[ DZ2 ]->setValue( 0 );
}
}
}
@ -540,33 +525,33 @@ void BasicGUI_MarkerDlg::onSelectionDone()
}
else {
if ( getConstructorId() == 1 ) {
myData[ X ]->SetValue( 0 );
myData[ Y ]->SetValue( 0 );
myData[ Z ]->SetValue( 0 );
myData[ X ]->setValue( 0 );
myData[ Y ]->setValue( 0 );
myData[ Z ]->setValue( 0 );
myData[ DX1 ]->SetValue( 0 );
myData[ DY1 ]->SetValue( 0 );
myData[ DZ1 ]->SetValue( 0 );
myData[ DX1 ]->setValue( 0 );
myData[ DY1 ]->setValue( 0 );
myData[ DZ1 ]->setValue( 0 );
myData[ DX2 ]->SetValue( 0 );
myData[ DY2 ]->SetValue( 0 );
myData[ DZ2 ]->SetValue( 0 );
myData[ DX2 ]->setValue( 0 );
myData[ DY2 ]->setValue( 0 );
myData[ DZ2 ]->setValue( 0 );
}
else if ( getConstructorId() == 2 ) {
if (myEditCurrentArgument == Group2->LineEdit1) {
myData[ X ]->SetValue( 0 );
myData[ Y ]->SetValue( 0 );
myData[ Z ]->SetValue( 0 );
if ( myEditCurrentArgument == Group2->LineEdit1 ) {
myData[ X ]->setValue( 0 );
myData[ Y ]->setValue( 0 );
myData[ Z ]->setValue( 0 );
}
else if (myEditCurrentArgument == Group2->LineEdit2) {
myData[ DX1 ]->SetValue( 0 );
myData[ DY1 ]->SetValue( 0 );
myData[ DZ1 ]->SetValue( 0 );
else if ( myEditCurrentArgument == Group2->LineEdit2 ) {
myData[ DX1 ]->setValue( 0 );
myData[ DY1 ]->setValue( 0 );
myData[ DZ1 ]->setValue( 0 );
}
else if (myEditCurrentArgument == Group2->LineEdit3) {
myData[ DX2 ]->SetValue( 0 );
myData[ DY2 ]->SetValue( 0 );
myData[ DZ2 ]->SetValue( 0 );
else if ( myEditCurrentArgument == Group2->LineEdit3 ) {
myData[ DX2 ]->setValue( 0 );
myData[ DY2 ]->setValue( 0 );
myData[ DZ2 ]->setValue( 0 );
}
}
}
@ -582,19 +567,19 @@ void BasicGUI_MarkerDlg::SetEditCurrentArgument()
{
QPushButton* send = (QPushButton*)sender();
if(send == Group1->PushButton1) {
if ( send == Group1->PushButton1 ) {
myEditCurrentArgument = Group1->LineEdit1;
globalSelection( GEOM_ALLGEOM );
}
else if(send == Group2->PushButton1) {
else if ( send == Group2->PushButton1 ) {
myEditCurrentArgument = Group2->LineEdit1;
globalSelection( GEOM_POINT );
}
else if(send == Group2->PushButton2) {
else if ( send == Group2->PushButton2 ) {
myEditCurrentArgument = Group2->LineEdit2;
globalSelection( GEOM_LINE );
globalSelection( GEOM_LINE );
}
else if(send == Group2->PushButton3) {
else if ( send == Group2->PushButton3 ) {
myEditCurrentArgument = Group2->LineEdit3;
globalSelection( GEOM_LINE );
}
@ -622,7 +607,7 @@ void BasicGUI_MarkerDlg::LineEditReturnPressed()
void BasicGUI_MarkerDlg::onActivate()
{
GEOMBase_Skeleton::ActivateThisDialog();
connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(),
connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(),
SIGNAL( currentSelectionChanged() ), this, SLOT( onSelectionDone() ) );
ConstructorsClicked( getConstructorId() );
@ -641,9 +626,9 @@ void BasicGUI_MarkerDlg::onDeactivate()
// function : enterEvent()
// purpose :
//=================================================================================
void BasicGUI_MarkerDlg::enterEvent(QEvent* e)
void BasicGUI_MarkerDlg::enterEvent( QEvent* )
{
if ( !GroupConstructors->isEnabled() )
if ( !mainFrame()->GroupConstructors->isEnabled() )
onActivate();
}
@ -663,8 +648,8 @@ GEOM::GEOM_IOperations_ptr BasicGUI_MarkerDlg::createOperation()
bool BasicGUI_MarkerDlg::isValid( QString& msg )
{
const int id = getConstructorId();
gp_Vec v1( myData[ DX1 ]->GetValue(), myData[ DY1 ]->GetValue(), myData[ DZ1 ]->GetValue() ),
v2( myData[ DX2 ]->GetValue(), myData[ DY2 ]->GetValue(), myData[ DZ2 ]->GetValue() );
gp_Vec v1( myData[ DX1 ]->value(), myData[ DY1 ]->value(), myData[ DZ1 ]->value() ),
v2( myData[ DX2 ]->value(), myData[ DY2 ]->value(), myData[ DZ2 ]->value() );
bool isOk = false;
// we will got exception if the magnitude of any of the 2 vectors <= gp::Resolution()
@ -675,16 +660,15 @@ bool BasicGUI_MarkerDlg::isValid( QString& msg )
msg += tr( "VEC_PARALLEL" );
}
switch ( id )
{
case 0:
return isOk;
case 1:
return !Group1->LineEdit1->text().isEmpty() && isOk;
case 2:
return !Group2->LineEdit1->text().isEmpty() &&
!Group2->LineEdit2->text().isEmpty() &&
!Group2->LineEdit3->text().isEmpty() && isOk;
switch ( id ) {
case 0:
return isOk;
case 1:
return !Group1->LineEdit1->text().isEmpty() && isOk;
case 2:
return !Group2->LineEdit1->text().isEmpty() &&
!Group2->LineEdit2->text().isEmpty() &&
!Group2->LineEdit3->text().isEmpty() && isOk;
}
return false;
}
@ -696,9 +680,9 @@ bool BasicGUI_MarkerDlg::isValid( QString& msg )
bool BasicGUI_MarkerDlg::execute( ObjectList& objects )
{
GEOM::GEOM_Object_var anObj = GEOM::GEOM_IBasicOperations::_narrow(
getOperation() )->MakeMarker( myData[ X ]->GetValue(), myData[ Y ]->GetValue(), myData[ Z ]->GetValue(),
myData[ DX1 ]->GetValue(), myData[ DY1 ]->GetValue(), myData[ DZ1 ]->GetValue(),
myData[ DX2 ]->GetValue(), myData[ DY2 ]->GetValue(), myData[ DZ2 ]->GetValue() );
getOperation() )->MakeMarker( myData[ X ]->value(), myData[ Y ]->value(), myData[ Z ]->value(),
myData[ DX1 ]->value(), myData[ DY1 ]->value(), myData[ DZ1 ]->value(),
myData[ DX2 ]->value(), myData[ DY2 ]->value(), myData[ DZ2 ]->value() );
if ( !anObj->_is_nil() )
objects.push_back( anObj._retn() );
@ -733,12 +717,9 @@ void BasicGUI_MarkerDlg::displayPreview ( const bool activate,
const bool toRemoveFromEngine,
const double lineWidth )
{
if ( !myBlockPreview )
{
if ( !myBlockPreview ) {
GEOMBase_Skeleton::displayPreview( activate, update, toRemoveFromEngine, lineWidth );
if ( myConstructorId == 0 )
{
GEOMBase_Skeleton::activate( GEOM_MARKER );
}
}
}

View File

@ -1,68 +1,67 @@
// GEOM GEOMGUI : GUI for Geometry component
// GEOM GEOMGUI : GUI for Geometry component
//
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
//
// 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
//
// File : BasicGUI_MarkerDlg.h
// Author : Sergey LITONIN, Open CASCADE S.A.S. (sergey.litonin@opencascade.com)
//
//
// File : BasicGUI_MarkerDlg.h
// Author : Sergey LITONIN
// Module : GEOM
#ifndef DIALOGBOX_Marker_H
#define DIALOGBOX_Marker_H
#ifndef BASICGUI_MARKERDLG_H
#define BASICGUI_MARKERDLG_H
#include "GEOM_BasicGUI.hxx"
#include "GEOMBase_Skeleton.h"
#include "DlgRef_1Sel_QTD.h"
#include "DlgRef_3Sel_QTD.h"
#include <GEOMBase_Skeleton.h>
#include <QMap>
class DlgRef_SpinBox;
class DlgRef_1Sel;
class DlgRef_3Sel;
class QDoubleSpinBox;
class QFrame;
class GEOM_BASICGUI_EXPORT BasicGUI_MarkerDlg : public GEOMBase_Skeleton
class BASICGUI_EXPORT BasicGUI_MarkerDlg : public GEOMBase_Skeleton
{
Q_OBJECT
private:
enum { X, Y, Z, DX1, DY1, DZ1, DX2, DY2, DZ2 };
typedef QMap< int, DlgRef_SpinBox* > DataMap;
typedef QMap< int, QDoubleSpinBox* > DataMap;
public:
BasicGUI_MarkerDlg( GeometryGUI* theGeometryGUI, QWidget* );
BasicGUI_MarkerDlg( GeometryGUI*, QWidget* );
virtual ~BasicGUI_MarkerDlg();
void Init();
protected:
virtual GEOM::GEOM_IOperations_ptr createOperation();
virtual bool isValid( QString& );
virtual bool execute( ObjectList& objects );
virtual void closeEvent( QCloseEvent* e );
virtual void displayPreview ( const bool activate = false,
const bool update = true,
const bool toRemoveFromEngine = true,
const double lineWidth = -1 );
virtual bool execute( ObjectList& );
virtual void closeEvent( QCloseEvent* );
virtual void displayPreview ( const bool = false,
const bool = true,
const bool = true,
const double = -1 );
private:
void enterEvent( QEvent* e );
void enterEvent( QEvent* );
void onSelectionDone0();
private slots:
@ -83,9 +82,8 @@ private:
int myBlockPreview;
QFrame* aMainGrp;
Ui::DlgRef_1Sel_QTD* Group1;
Ui::DlgRef_3Sel_QTD* Group2;
DlgRef_1Sel* Group1;
DlgRef_3Sel* Group2;
};
#endif // DIALOGBOX_Marker_H
#endif // BASICGUI_MARKERDLG_H

View File

@ -1,50 +1,43 @@
// GEOM GEOMGUI : GUI for Geometry component
// GEOM GEOMGUI : GUI for Geometry component
//
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
//
// 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
//
// File : BasicGUI_PlaneDlg.cxx
// Author : Lucien PIGNOLONI, Open CASCADE S.A.S.
//
//
// File : BasicGUI_PlaneDlg.cxx
// Author : Lucien PIGNOLONI
// Module : GEOM
// $Header$
#include "BasicGUI_PlaneDlg.h"
#include "DlgRef_1Sel1Spin.h"
#include "DlgRef_2Sel1Spin.h"
#include "DlgRef_3Sel1Spin.h"
#include "DlgRef_SpinBox.h"
#include "GeometryGUI.h"
#include "GEOMBase.h"
#include <GEOM_DlgRef.h>
#include "SUIT_ResourceMgr.h"
#include "SUIT_Session.h"
#include "SalomeApp_Application.h"
#include "LightApp_SelectionMgr.h"
#include <GeometryGUI.h>
#include <GEOMBase.h>
#include <SUIT_ResourceMgr.h>
#include <SUIT_Session.h>
#include <SalomeApp_Application.h>
#include <LightApp_SelectionMgr.h>
#include <TColStd_MapOfInteger.hxx>
#include "GEOMImpl_Types.hxx"
using namespace std;
#include <GEOMImpl_Types.hxx>
//=================================================================================
// class : BasicGUI_PlaneDlg()
@ -53,61 +46,63 @@ using namespace std;
// The dialog will by default be modeless, unless you set 'modal' to
// TRUE to construct a modal dialog.
//=================================================================================
BasicGUI_PlaneDlg::BasicGUI_PlaneDlg(GeometryGUI* theGeometryGUI, QWidget* parent,
const char* name, bool modal, Qt::WindowFlags fl)
:GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, Qt::WindowTitleHint | Qt::WindowSystemMenuHint)
BasicGUI_PlaneDlg::BasicGUI_PlaneDlg( GeometryGUI* theGeometryGUI, QWidget* parent,
const char* name, bool modal, Qt::WindowFlags fl )
: GEOMBase_Skeleton( theGeometryGUI, parent, name, modal, fl )
{
QPixmap image0(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_PLANE_PV")));
QPixmap image1(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_PLANE_3PNTS")));
QPixmap image2(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_PLANE_FACE")));
QPixmap image3(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_SELECT")));
QPixmap image0( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_PLANE_PV" ) ) );
QPixmap image1( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_PLANE_3PNTS" ) ) );
QPixmap image2( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_PLANE_FACE" ) ) );
QPixmap image3( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_SELECT" ) ) );
setWindowTitle(tr("GEOM_PLANE_TITLE"));
setWindowTitle( tr( "GEOM_PLANE_TITLE" ) );
/***************************************************************/
GroupConstructors->setTitle(tr("GEOM_PLANE"));
RadioButton1->setIcon(image0);
RadioButton2->setIcon(image1);
RadioButton3->setIcon(image2);
mainFrame()->GroupConstructors->setTitle( tr( "GEOM_PLANE" ) );
mainFrame()->RadioButton1->setIcon( image0 );
mainFrame()->RadioButton2->setIcon( image1 );
mainFrame()->RadioButton3->setIcon( image2 );
GroupPntDir = new DlgRef_2Sel1Spin(this, "GroupPointDirection");
GroupPntDir->GroupBox1->setTitle(tr("GEOM_PLANE_PV"));
GroupPntDir->TextLabel1->setText(tr("GEOM_POINT"));
GroupPntDir->TextLabel2->setText(tr("GEOM_VECTOR"));
GroupPntDir->TextLabel3->setText(tr("GEOM_PLANE_SIZE"));
GroupPntDir->PushButton1->setIcon(image3);
GroupPntDir->PushButton2->setIcon(image3);
GroupPntDir = new DlgRef_2Sel1Spin( centralWidget() );
GroupPntDir->GroupBox1->setTitle( tr( "GEOM_PLANE_PV" ) );
GroupPntDir->TextLabel1->setText( tr( "GEOM_POINT" ) );
GroupPntDir->TextLabel2->setText( tr( "GEOM_VECTOR" ) );
GroupPntDir->TextLabel3->setText( tr( "GEOM_PLANE_SIZE" ) );
GroupPntDir->PushButton1->setIcon( image3 );
GroupPntDir->PushButton2->setIcon( image3 );
GroupPntDir->LineEdit1->setReadOnly( true );
GroupPntDir->LineEdit2->setReadOnly( true );
Group3Pnts = new DlgRef_3Sel1Spin(this, "Group3Pnts");
Group3Pnts->GroupBox1->setTitle(tr("GEOM_3_POINTS"));
Group3Pnts->TextLabel1->setText(tr("GEOM_POINT1"));
Group3Pnts->TextLabel2->setText(tr("GEOM_POINT2"));
Group3Pnts->TextLabel3->setText(tr("GEOM_POINT3"));
Group3Pnts->TextLabel4->setText(tr("GEOM_PLANE_SIZE"));
Group3Pnts->PushButton1->setIcon(image3);
Group3Pnts->PushButton2->setIcon(image3);
Group3Pnts->PushButton3->setIcon(image3);
Group3Pnts = new DlgRef_3Sel1Spin( centralWidget() );
Group3Pnts->GroupBox1->setTitle( tr( "GEOM_3_POINTS" ) );
Group3Pnts->TextLabel1->setText( tr( "GEOM_POINT1" ) );
Group3Pnts->TextLabel2->setText( tr( "GEOM_POINT2" ) );
Group3Pnts->TextLabel3->setText( tr( "GEOM_POINT3" ) );
Group3Pnts->TextLabel4->setText( tr( "GEOM_PLANE_SIZE" ) );
Group3Pnts->PushButton1->setIcon( image3 );
Group3Pnts->PushButton2->setIcon( image3 );
Group3Pnts->PushButton3->setIcon( image3 );
Group3Pnts->LineEdit1->setReadOnly( true );
Group3Pnts->LineEdit2->setReadOnly( true );
Group3Pnts->LineEdit3->setReadOnly( true );
GroupFace = new DlgRef_1Sel1Spin(this, "GroupFace");
GroupFace->GroupBox1->setTitle(tr("GEOM_FACE_OR_LCS"));
GroupFace->TextLabel1->setText(tr("GEOM_SELECTION"));
GroupFace->TextLabel2->setText(tr("GEOM_PLANE_SIZE"));
GroupFace->PushButton1->setIcon(image3);
GroupFace = new DlgRef_1Sel1Spin( centralWidget() );
GroupFace->GroupBox1->setTitle( tr( "GEOM_FACE_OR_LCS" ) );
GroupFace->TextLabel1->setText( tr( "GEOM_SELECTION" ) );
GroupFace->TextLabel2->setText( tr( "GEOM_PLANE_SIZE" ) );
GroupFace->PushButton1->setIcon( image3 );
GroupFace->LineEdit1->setReadOnly( true );
gridLayout1->addWidget(GroupPntDir, 2, 0);
gridLayout1->addWidget(Group3Pnts, 2, 0);
gridLayout1->addWidget(GroupFace, 2, 0);
QVBoxLayout* layout = new QVBoxLayout( centralWidget() );
layout->setMargin( 0 ); layout->setSpacing( 6 );
layout->addWidget( GroupPntDir );
layout->addWidget( Group3Pnts );
layout->addWidget( GroupFace );
/***************************************************************/
setHelpFileName("plane.htm");
setHelpFileName( "plane.htm" );
Init();
}
@ -137,55 +132,56 @@ void BasicGUI_PlaneDlg::Init()
/* Get setting of step value from file configuration */
SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr();
double aStep = resMgr->doubleValue( "Geometry", "SettingsGeomStep", 100);
double aStep = resMgr->doubleValue( "Geometry", "SettingsGeomStep", 100 );
double aTrimSize = 2000.0;
/* min, max, step and decimals for spin boxes */
GroupPntDir->SpinBox_DX->RangeStepAndValidator( 0.001, COORD_MAX, aStep, 3 );
GroupPntDir->SpinBox_DX->SetValue( aTrimSize );
Group3Pnts->SpinBox_DX->RangeStepAndValidator(0.001, COORD_MAX, aStep, 3);
Group3Pnts->SpinBox_DX->SetValue( aTrimSize );
GroupFace->SpinBox_DX->RangeStepAndValidator(0.001, COORD_MAX, aStep, 3);
GroupFace->SpinBox_DX->SetValue( aTrimSize );
initSpinBox( GroupPntDir->SpinBox_DX, 0.001, COORD_MAX, aStep, 3 );
GroupPntDir->SpinBox_DX->setValue( aTrimSize );
initSpinBox( Group3Pnts->SpinBox_DX, 0.001, COORD_MAX, aStep, 3 );
Group3Pnts->SpinBox_DX->setValue( aTrimSize );
initSpinBox( GroupFace->SpinBox_DX, 0.001, COORD_MAX, aStep, 3 );
GroupFace->SpinBox_DX->setValue( aTrimSize );
/* signals and slots connections */
connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
connect(myGeomGUI, SIGNAL(SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
connect(myGeomGUI, SIGNAL(SignalCloseAllDialogs()), this, SLOT(ClickOnCancel()));
connect( myGeomGUI, SIGNAL( SignalDeactivateActiveDialog() ), this, SLOT( DeactivateActiveDialog() ) );
connect( myGeomGUI, SIGNAL( SignalCloseAllDialogs() ), this, SLOT( ClickOnCancel() ) );
connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
connect(GroupConstructors, SIGNAL(clicked(int)), this, SLOT(ConstructorsClicked(int)));
connect( buttonCancel(), SIGNAL( clicked() ), this, SLOT( ClickOnCancel() ) );
connect( buttonOk(), SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) );
connect( buttonApply(), SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) );
connect(GroupPntDir->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
connect(GroupPntDir->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
connect(Group3Pnts->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
connect(Group3Pnts->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
connect(Group3Pnts->PushButton3, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
connect(GroupFace->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
connect( this, SIGNAL( constructorsClicked( int ) ), this, SLOT( ConstructorsClicked( int ) ) );
connect(GroupPntDir->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed()));
connect(GroupPntDir->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed()));
connect(Group3Pnts->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed()));
connect(Group3Pnts->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed()));
connect(Group3Pnts->LineEdit3, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed()));
connect(GroupFace->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed()));
connect( GroupPntDir->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) );
connect( GroupPntDir->PushButton2, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) );
connect( Group3Pnts->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) );
connect( Group3Pnts->PushButton2, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) );
connect( Group3Pnts->PushButton3, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) );
connect( GroupFace->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) );
connect(GroupPntDir->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double)));
connect(Group3Pnts->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double)));
connect(GroupFace->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double)));
connect( GroupPntDir->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) );
connect( GroupPntDir->LineEdit2, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) );
connect( Group3Pnts->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) );
connect( Group3Pnts->LineEdit2, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) );
connect( Group3Pnts->LineEdit3, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) );
connect( GroupFace->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) );
connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupPntDir->SpinBox_DX, SLOT(SetStep(double)));
connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), Group3Pnts->SpinBox_DX, SLOT(SetStep(double)));
connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupFace->SpinBox_DX, SLOT(SetStep(double)));
connect( GroupPntDir->SpinBox_DX, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) );
connect( Group3Pnts->SpinBox_DX, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) );
connect( GroupFace->SpinBox_DX, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) );
connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
// VSR: TODO ->>
connect( myGeomGUI, SIGNAL( SignalDefaultStepValueChanged( double ) ), GroupPntDir->SpinBox_DX, SLOT( SetStep( double ) ) );
connect( myGeomGUI, SIGNAL( SignalDefaultStepValueChanged( double ) ), Group3Pnts->SpinBox_DX, SLOT( SetStep( double ) ) );
connect( myGeomGUI, SIGNAL( SignalDefaultStepValueChanged( double ) ), GroupFace->SpinBox_DX, SLOT( SetStep( double ) ) );
// <<-
initName( tr( "GEOM_PLANE" ).toLatin1().constData() );
connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
initName( tr( "GEOM_PLANE" ) );
Group3Pnts->hide();
GroupFace->hide();
ConstructorsClicked( 0 );
}
@ -194,67 +190,67 @@ void BasicGUI_PlaneDlg::Init()
// function : ConstructorsClicked()
// purpose : Radio button management
//=================================================================================
void BasicGUI_PlaneDlg::ConstructorsClicked(int constructorId)
void BasicGUI_PlaneDlg::ConstructorsClicked( int constructorId )
{
disconnect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), 0, this, 0);
disconnect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), 0, this, 0 );
myPoint = myDir = myPoint1 = myPoint2 = myPoint3 = myFace = GEOM::GEOM_Object::_nil();
switch ( constructorId )
{
case 0: /* plane from a point and a direction (vector, edge...) */
{
Group3Pnts->hide();
GroupFace->hide();
resize(0, 0);
GroupPntDir->show();
switch ( constructorId ) {
case 0: /* plane from a point and a direction (vector, edge...) */
{
Group3Pnts->hide();
GroupFace->hide();
GroupPntDir->show();
myEditCurrentArgument = GroupPntDir->LineEdit1;
GroupPntDir->LineEdit1->setText(tr(""));
GroupPntDir->LineEdit2->setText(tr(""));
myEditCurrentArgument = GroupPntDir->LineEdit1;
GroupPntDir->LineEdit1->setText( "" );
GroupPntDir->LineEdit2->setText( "" );
/* for the first argument */
globalSelection( GEOM_POINT );
break;
}
case 1: /* plane from 3 points */
{
GroupPntDir->hide();
GroupFace->hide();
resize(0, 0);
Group3Pnts->show();
myEditCurrentArgument = Group3Pnts->LineEdit1;
Group3Pnts->LineEdit1->setText("");
Group3Pnts->LineEdit2->setText("");
Group3Pnts->LineEdit3->setText("");
/* for the first argument */
globalSelection( GEOM_POINT );
break;
}
case 2: /* plane from a planar face selection */
{
GroupPntDir->hide();
Group3Pnts->hide();
resize(0, 0);
GroupFace->show();
myEditCurrentArgument = GroupFace->LineEdit1;
GroupFace->LineEdit1->setText(tr(""));
/* for the first argument */
//globalSelection( GEOM_PLANE );
TColStd_MapOfInteger aMap;
aMap.Add( GEOM_PLANE );
aMap.Add( GEOM_MARKER );
globalSelection( aMap );
break;
}
/* for the first argument */
globalSelection( GEOM_POINT );
break;
}
case 1: /* plane from 3 points */
{
GroupPntDir->hide();
GroupFace->hide();
Group3Pnts->show();
myEditCurrentArgument = Group3Pnts->LineEdit1;
Group3Pnts->LineEdit1->setText( "" );
Group3Pnts->LineEdit2->setText( "" );
Group3Pnts->LineEdit3->setText( "" );
/* for the first argument */
globalSelection( GEOM_POINT );
break;
}
case 2: /* plane from a planar face selection */
{
GroupPntDir->hide();
Group3Pnts->hide();
GroupFace->show();
myEditCurrentArgument = GroupFace->LineEdit1;
GroupFace->LineEdit1->setText( "" );
/* for the first argument */
//globalSelection( GEOM_PLANE );
TColStd_MapOfInteger aMap;
aMap.Add( GEOM_PLANE );
aMap.Add( GEOM_MARKER );
globalSelection( aMap );
break;
}
}
qApp->processEvents();
updateGeometry();
resize( minimumSize() );
myEditCurrentArgument->setFocus();
connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(),
SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(),
SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
}
@ -300,8 +296,7 @@ void BasicGUI_PlaneDlg::SelectionIntoArgument()
{
myEditCurrentArgument->setText("");
if ( IObjectCount() != 1 )
{
if ( IObjectCount() != 1 ) {
if ( myEditCurrentArgument == GroupPntDir->LineEdit1 ) myPoint = GEOM::GEOM_Object::_nil();
else if ( myEditCurrentArgument == GroupPntDir->LineEdit2 ) myDir = GEOM::GEOM_Object::_nil();
else if ( myEditCurrentArgument == Group3Pnts->LineEdit1 ) myPoint1 = GEOM::GEOM_Object::_nil();
@ -314,8 +309,7 @@ void BasicGUI_PlaneDlg::SelectionIntoArgument()
// nbSel == 1
Standard_Boolean aRes = Standard_False;
GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject( firstIObject(), aRes );
if ( !CORBA::is_nil( aSelectedObject ) && aRes )
{
if ( !CORBA::is_nil( aSelectedObject ) && aRes ) {
myEditCurrentArgument->setText( GEOMBase::GetName( aSelectedObject ) );
if ( myEditCurrentArgument == GroupPntDir->LineEdit1 ) myPoint = aSelectedObject;
else if ( myEditCurrentArgument == GroupPntDir->LineEdit2 ) myDir = aSelectedObject;
@ -374,8 +368,7 @@ void BasicGUI_PlaneDlg::LineEditReturnPressed()
send == Group3Pnts->LineEdit1 ||
send == Group3Pnts->LineEdit2 ||
send == Group3Pnts->LineEdit3 ||
send == GroupFace->LineEdit1 )
{
send == GroupFace->LineEdit1 ) {
myEditCurrentArgument = send;
GEOMBase_Skeleton::LineEditReturnPressed();
}
@ -389,8 +382,8 @@ void BasicGUI_PlaneDlg::LineEditReturnPressed()
void BasicGUI_PlaneDlg::ActivateThisDialog()
{
GEOMBase_Skeleton::ActivateThisDialog();
connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(),
SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(),
SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
// myGeomGUI->SetState( 0 );
@ -411,9 +404,9 @@ void BasicGUI_PlaneDlg::DeactivateActiveDialog()
// function : enterEvent()
// purpose :
//=================================================================================
void BasicGUI_PlaneDlg::enterEvent(QEvent* e)
void BasicGUI_PlaneDlg::enterEvent( QEvent* )
{
if ( !GroupConstructors->isEnabled() )
if ( !mainFrame()->GroupConstructors->isEnabled() )
ActivateThisDialog();
}
@ -422,7 +415,7 @@ void BasicGUI_PlaneDlg::enterEvent(QEvent* e)
// function : ValueChangedInSpinBox()
// purpose :
//=================================================================================
void BasicGUI_PlaneDlg::ValueChangedInSpinBox(double newValue)
void BasicGUI_PlaneDlg::ValueChangedInSpinBox( double newValue )
{
displayPreview();
}
@ -433,11 +426,10 @@ void BasicGUI_PlaneDlg::ValueChangedInSpinBox(double newValue)
//=================================================================================
double BasicGUI_PlaneDlg::getSize() const
{
switch ( getConstructorId() )
{
case 0 : return GroupPntDir->SpinBox_DX->GetValue();
case 1 : return Group3Pnts->SpinBox_DX->GetValue();
case 2 : return GroupFace->SpinBox_DX->GetValue();
switch ( getConstructorId() ) {
case 0 : return GroupPntDir->SpinBox_DX->value();
case 1 : return Group3Pnts->SpinBox_DX->value();
case 2 : return GroupFace->SpinBox_DX->value();
}
return 0.;
}
@ -466,20 +458,19 @@ static bool isEqual( const GEOM::GEOM_Object_var& thePnt1, const GEOM::GEOM_Obje
//=================================================================================
bool BasicGUI_PlaneDlg::isValid( QString& msg )
{
const int id = getConstructorId();
if ( getSize() <= 0 )
{
msg = QString( "Please, enter size greater than 0." );
return false;
}
if ( id == 0 )
return !CORBA::is_nil( myPoint ) && !CORBA::is_nil( myDir );
else if ( id == 1 )
return !CORBA::is_nil( myPoint1 ) && !CORBA::is_nil( myPoint2 ) && !CORBA::is_nil( myPoint3 ) &&
!isEqual( myPoint1, myPoint2 ) && !isEqual( myPoint1, myPoint3 ) && !isEqual( myPoint2, myPoint3 );
else if ( id == 2 )
return !CORBA::is_nil( myFace );
return false;
const int id = getConstructorId();
if ( getSize() <= 0 ) {
msg = QString( "Please, enter size greater than 0." );
return false;
}
if ( id == 0 )
return !CORBA::is_nil( myPoint ) && !CORBA::is_nil( myDir );
else if ( id == 1 )
return !CORBA::is_nil( myPoint1 ) && !CORBA::is_nil( myPoint2 ) && !CORBA::is_nil( myPoint3 ) &&
!isEqual( myPoint1, myPoint2 ) && !isEqual( myPoint1, myPoint3 ) && !isEqual( myPoint2, myPoint3 );
else if ( id == 2 )
return !CORBA::is_nil( myFace );
return false;
}
//=================================================================================
@ -492,8 +483,7 @@ bool BasicGUI_PlaneDlg::execute( ObjectList& objects )
GEOM::GEOM_Object_var anObj;
switch ( getConstructorId() )
{
switch ( getConstructorId() ) {
case 0 :
anObj = GEOM::GEOM_IBasicOperations::_narrow( getOperation() )->MakePlanePntVec( myPoint, myDir, getSize() );
res = true;

View File

@ -1,36 +1,34 @@
// GEOM GEOMGUI : GUI for Geometry component
// GEOM GEOMGUI : GUI for Geometry component
//
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
//
// 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
//
// File : BasicGUI_PlaneDlg.h
// Author : Lucien PIGNOLONI, Open CASCADE S.A.S.
//
//
// File : BasicGUI_PlaneDlg.h
// Author : Lucien PIGNOLONI
// Module : GEOM
#ifndef DIALOGBOX_PLANE_H
#define DIALOGBOX_PLANE_H
#ifndef BASICGUI_PLANEDLG_H
#define BASICGUI_PLANEDLG_H
#include "GEOM_BasicGUI.hxx"
#include "GEOMBase_Skeleton.h"
#include <GEOMBase_Skeleton.h>
class DlgRef_1Sel1Spin;
class DlgRef_2Sel1Spin;
@ -40,48 +38,48 @@ class DlgRef_3Sel1Spin;
// class : BasicGUI_PlaneDlg
// purpose :
//=================================================================================
class GEOM_BASICGUI_EXPORT BasicGUI_PlaneDlg : public GEOMBase_Skeleton
class BASICGUI_EXPORT BasicGUI_PlaneDlg : public GEOMBase_Skeleton
{
Q_OBJECT
Q_OBJECT
public:
BasicGUI_PlaneDlg( GeometryGUI* theGeometryGUI, QWidget* parent = 0,
const char* name = 0, bool modal = FALSE, Qt::WindowFlags fl = 0);
~BasicGUI_PlaneDlg();
BasicGUI_PlaneDlg( GeometryGUI*, QWidget* = 0,
const char* = 0, bool = false, Qt::WindowFlags = 0 );
~BasicGUI_PlaneDlg();
protected:
// redefined from GEOMBase_Helper
virtual GEOM::GEOM_IOperations_ptr createOperation();
virtual bool isValid( QString& );
virtual bool execute( ObjectList& objects );
// redefined from GEOMBase_Helper
virtual GEOM::GEOM_IOperations_ptr createOperation();
virtual bool isValid( QString& );
virtual bool execute( ObjectList& );
virtual void closeEvent( QCloseEvent* e );
virtual void closeEvent( QCloseEvent* );
private :
void Init();
void enterEvent(QEvent* e);
double getSize() const;
private:
void Init();
void enterEvent( QEvent* );
double getSize() const;
GEOM::GEOM_Object_var myPoint, myDir, myPoint1, myPoint2, myPoint3, myFace;
private:
GEOM::GEOM_Object_var myPoint, myDir, myPoint1, myPoint2, myPoint3, myFace;
DlgRef_2Sel1Spin* GroupPntDir;
DlgRef_3Sel1Spin* Group3Pnts;
DlgRef_1Sel1Spin* GroupFace;
DlgRef_2Sel1Spin* GroupPntDir;
DlgRef_3Sel1Spin* Group3Pnts;
DlgRef_1Sel1Spin* GroupFace;
private slots:
void ClickOnOk();
void ClickOnCancel();
bool ClickOnApply();
void ClickOnOk();
void ClickOnCancel();
bool ClickOnApply();
void ActivateThisDialog();
void DeactivateActiveDialog();
void SelectionIntoArgument();
void LineEditReturnPressed();
void SetEditCurrentArgument();
void ConstructorsClicked(int constructorId);
void ValueChangedInSpinBox(double newValue);
void ActivateThisDialog();
void DeactivateActiveDialog();
void SelectionIntoArgument();
void LineEditReturnPressed();
void SetEditCurrentArgument();
void ConstructorsClicked( int );
void ValueChangedInSpinBox( double );
};
#endif // DIALOGBOX_PLANE_H
#endif // BASICGUI_PLANEDLG_H

View File

@ -1,47 +1,41 @@
// GEOM GEOMGUI : GUI for Geometry component
// GEOM GEOMGUI : GUI for Geometry component
//
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
//
// 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
//
// File : BasicGUI_PointDlg.cxx
// Author : Lucien PIGNOLONI, Open CASCADE S.A.S.
//
//
// File : BasicGUI_PointDlg.cxx
// Author : Lucien PIGNOLONI
// Module : GEOM
// $Header$
#include "BasicGUI_PointDlg.h"
#include "SUIT_ResourceMgr.h"
#include "SUIT_Session.h"
#include "SalomeApp_Application.h"
#include "LightApp_SelectionMgr.h"
#include <SUIT_ResourceMgr.h>
#include <SUIT_Session.h>
#include <SalomeApp_Application.h>
#include <LightApp_SelectionMgr.h>
#include "GeometryGUI.h"
#include "GEOMBase.h"
#include <GeometryGUI.h>
#include <GEOMBase.h>
#include "DlgRef_SpinBox.h"
#include "DlgRef_1Sel1Spin.h"
#include "DlgRef_3Spin.h"
#include "DlgRef_1Sel3Spin.h"
#include <GEOM_DlgRef.h>
#include "GEOMImpl_Types.hxx"
#include <GEOMImpl_Types.hxx>
#include <QApplication>
#include <QLabel>
@ -55,7 +49,6 @@
#include <TColStd_IndexedMapOfInteger.hxx>
#include <TopTools_IndexedMapOfShape.hxx>
using namespace std;
//=================================================================================
// class : BasicGUI_PointDlg()
// purpose : Constructs a BasicGUI_PointDlg which is a child of 'parent', with the
@ -63,55 +56,44 @@ using namespace std;
// The dialog will by default be modeless, unless you set 'modal' to
// TRUE to construct a modal dialog.
//=================================================================================
BasicGUI_PointDlg::BasicGUI_PointDlg(GeometryGUI* theGeometryGUI, QWidget* parent,
const char* name, bool modal, Qt::WindowFlags fl)
:GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, fl )
BasicGUI_PointDlg::BasicGUI_PointDlg( GeometryGUI* theGeometryGUI, QWidget* parent,
const char* name, bool modal, Qt::WindowFlags fl )
: GEOMBase_Skeleton( theGeometryGUI, parent, name, modal, fl )
{
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")));
QPixmap image2(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_SELECT")));
QPixmap image3(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_POINT_REF")));
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" ) ) );
QPixmap image2( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_SELECT" ) ) );
QPixmap image3( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_POINT_REF" ) ) );
setWindowTitle(tr("GEOM_POINT_TITLE"));
QFrame* aFrame = new QFrame( this );
aFrame->setContentsMargins( 0, 0, 0, 0 );
aFrame->setFrameStyle( QFrame::NoFrame );
QHBoxLayout* aFrameLayout = new QHBoxLayout( aFrame );
setWindowTitle( tr( "GEOM_POINT_TITLE" ) );
/***************************************************************/
GroupConstructors->setTitle(tr("GEOM_POINTS"));
RadioButton1->setIcon(image0);
RadioButton2->setIcon(image3);
RadioButton3->setIcon(image1);
mainFrame()->GroupConstructors->setTitle( tr( "GEOM_POINTS" ) );
mainFrame()->RadioButton1->setIcon( image0 );
mainFrame()->RadioButton2->setIcon( image3 );
mainFrame()->RadioButton3->setIcon( image1 );
GroupXYZ = new DlgRef_3Spin( aFrame, "GroupXYZ" );
GroupXYZ->GroupBox1->setTitle(tr("GEOM_COORDINATES"));
GroupXYZ->TextLabel1->setText(tr("GEOM_X"));
GroupXYZ->TextLabel2->setText(tr("GEOM_Y"));
GroupXYZ->TextLabel3->setText(tr("GEOM_Z"));
aFrameLayout->addWidget(GroupXYZ);
GroupXYZ = new DlgRef_3Spin( centralWidget() );
GroupXYZ->GroupBox1->setTitle( tr( "GEOM_COORDINATES" ) );
GroupXYZ->TextLabel1->setText( tr( "GEOM_X" ) );
GroupXYZ->TextLabel2->setText( tr( "GEOM_Y" ) );
GroupXYZ->TextLabel3->setText( tr( "GEOM_Z" ) );
GroupOnCurve = new DlgRef_1Sel1Spin( aFrame, "GroupOnCurve" );
GroupOnCurve->GroupBox1->setTitle(tr("GEOM_PARAM_POINT"));
GroupOnCurve->TextLabel1->setText(tr("GEOM_EDGE"));
GroupOnCurve->TextLabel2->setText(tr("GEOM_PARAMETER"));
GroupOnCurve->PushButton1->setIcon(image2);
aFrameLayout->addWidget(GroupOnCurve);
GroupOnCurve = new DlgRef_1Sel1Spin( centralWidget() );
GroupOnCurve->GroupBox1->setTitle( tr( "GEOM_PARAM_POINT" ) );
GroupOnCurve->TextLabel1->setText( tr( "GEOM_EDGE" ) );
GroupOnCurve->TextLabel2->setText( tr( "GEOM_PARAMETER" ) );
GroupOnCurve->PushButton1->setIcon( image2 );
GroupRefPoint = new DlgRef_1Sel3Spin( aFrame, "GoupRefPoint" );
GroupRefPoint->GroupBox1->setTitle(tr("GEOM_REF_POINT"));
GroupRefPoint->TextLabel1->setText(tr("GEOM_POINT"));
GroupRefPoint->PushButton1->setIcon(image2);
GroupRefPoint->TextLabel2->setText(tr("GEOM_DX"));
GroupRefPoint->TextLabel3->setText(tr("GEOM_DY"));
GroupRefPoint->TextLabel4->setText(tr("GEOM_DZ"));
aFrameLayout->addWidget(GroupRefPoint);
GroupRefPoint = new DlgRef_1Sel3Spin( centralWidget() );
GroupRefPoint->GroupBox1->setTitle( tr( "GEOM_REF_POINT" ) );
GroupRefPoint->TextLabel1->setText( tr( "GEOM_POINT" ) );
GroupRefPoint->PushButton1->setIcon( image2 );
GroupRefPoint->TextLabel2->setText( tr( "GEOM_DX" ) );
GroupRefPoint->TextLabel3->setText( tr( "GEOM_DY" ) );
GroupRefPoint->TextLabel4->setText( tr( "GEOM_DZ" ) );
gridLayout1->addWidget( aFrame, 2, 0 );
/***************************************************************/
myCoordGrp = new QGroupBox( tr( "GEOM_COORDINATES" ), aFrame );
myCoordGrp = new QGroupBox( tr( "GEOM_COORDINATES" ), centralWidget() );
QGridLayout* myCoordGrpLayout = new QGridLayout( myCoordGrp );
myCoordGrpLayout->addWidget( new QLabel( tr( "GEOM_X" ), myCoordGrp ), 0, 0 );
myX = new QLineEdit( myCoordGrp );
@ -123,6 +105,13 @@ BasicGUI_PointDlg::BasicGUI_PointDlg(GeometryGUI* theGeometryGUI, QWidget* paren
myZ = new QLineEdit( myCoordGrp );
myCoordGrpLayout->addWidget( myZ, 2, 1 );
QVBoxLayout* layout = new QVBoxLayout( centralWidget() );
layout->setMargin( 0 ); layout->setSpacing( 6 );
layout->addWidget( GroupXYZ );
layout->addWidget( GroupOnCurve );
layout->addWidget( GroupRefPoint );
layout->addWidget( myCoordGrp );
myX->setReadOnly( true );
myY->setReadOnly( true );
myZ->setReadOnly( true );
@ -137,7 +126,7 @@ BasicGUI_PointDlg::BasicGUI_PointDlg(GeometryGUI* theGeometryGUI, QWidget* paren
myY->setPalette( aPal );
myZ->setPalette( aPal );
setHelpFileName("point.htm");
setHelpFileName( "point.htm" );
Init();
}
@ -168,59 +157,63 @@ void BasicGUI_PointDlg::Init()
/* Get setting of step value from file configuration */
SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr();
double step = resMgr->doubleValue( "Geometry", "SettingsGeomStep", 100);
double step = resMgr->doubleValue( "Geometry", "SettingsGeomStep", 100 );
/* min, max, step and decimals for spin boxes */
GroupXYZ->SpinBox_DX->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, 3);
GroupXYZ->SpinBox_DY->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, 3);
GroupXYZ->SpinBox_DZ->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, 3);
GroupXYZ->SpinBox_DX->SetValue(0.0);
GroupXYZ->SpinBox_DY->SetValue(0.0);
GroupXYZ->SpinBox_DZ->SetValue(0.0);
initSpinBox( GroupXYZ->SpinBox_DX, COORD_MIN, COORD_MAX, step, 3 );
initSpinBox( GroupXYZ->SpinBox_DY, COORD_MIN, COORD_MAX, step, 3 );
initSpinBox( GroupXYZ->SpinBox_DZ, COORD_MIN, COORD_MAX, step, 3 );
GroupXYZ->SpinBox_DX->setValue( 0.0 );
GroupXYZ->SpinBox_DY->setValue( 0.0 );
GroupXYZ->SpinBox_DZ->setValue( 0.0 );
GroupRefPoint->SpinBox_DX->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, 3);
GroupRefPoint->SpinBox_DY->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, 3);
GroupRefPoint->SpinBox_DZ->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, 3);
GroupRefPoint->SpinBox_DX->SetValue(0.0);
GroupRefPoint->SpinBox_DY->SetValue(0.0);
GroupRefPoint->SpinBox_DZ->SetValue(0.0);
initSpinBox( GroupRefPoint->SpinBox_DX, COORD_MIN, COORD_MAX, step, 3 );
initSpinBox( GroupRefPoint->SpinBox_DY, COORD_MIN, COORD_MAX, step, 3 );
initSpinBox( GroupRefPoint->SpinBox_DZ, COORD_MIN, COORD_MAX, step, 3 );
GroupRefPoint->SpinBox_DX->setValue( 0.0 );
GroupRefPoint->SpinBox_DY->setValue( 0.0 );
GroupRefPoint->SpinBox_DZ->setValue( 0.0 );
step = 0.1;
GroupOnCurve->SpinBox_DX->RangeStepAndValidator(0., 1., step, 3);
GroupOnCurve->SpinBox_DX->SetValue( 0.5 );
initSpinBox( GroupOnCurve->SpinBox_DX, 0., 1., step, 3 );
GroupOnCurve->SpinBox_DX->setValue( 0.5 );
/* signals and slots connections */
connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
connect(myGeomGUI, SIGNAL(SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
connect(myGeomGUI, SIGNAL(SignalCloseAllDialogs()), this, SLOT(ClickOnCancel()));
connect( myGeomGUI, SIGNAL( SignalDeactivateActiveDialog() ), this, SLOT( DeactivateActiveDialog() ) );
connect( myGeomGUI, SIGNAL( SignalCloseAllDialogs() ), this, SLOT( ClickOnCancel() ) );
connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
connect(GroupConstructors, SIGNAL(clicked(int)), this, SLOT(ConstructorsClicked(int)));
connect( buttonCancel(), SIGNAL( clicked() ), this, SLOT( ClickOnCancel() ) );
connect( buttonOk(), SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) );
connect( buttonApply(), SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) );
connect(GroupOnCurve->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
connect(GroupOnCurve->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed()));
connect( this, SIGNAL( constructorsClicked( int ) ), this, SLOT( ConstructorsClicked( int ) ) );
connect(GroupOnCurve->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double)));
connect(GroupXYZ->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double)));
connect(GroupXYZ->SpinBox_DY, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double)));
connect(GroupXYZ->SpinBox_DZ, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double)));
connect(GroupRefPoint->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double)));
connect(GroupRefPoint->SpinBox_DY, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double)));
connect(GroupRefPoint->SpinBox_DZ, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double)));
connect( GroupOnCurve->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) );
connect( GroupOnCurve->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) );
connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupOnCurve->SpinBox_DX, SLOT(SetStep(double)));
connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupXYZ->SpinBox_DX, SLOT(SetStep(double)));
connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupXYZ->SpinBox_DY, SLOT(SetStep(double)));
connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupXYZ->SpinBox_DZ, SLOT(SetStep(double)));
connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupRefPoint->SpinBox_DX, SLOT(SetStep(double)));
connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupRefPoint->SpinBox_DY, SLOT(SetStep(double)));
connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupRefPoint->SpinBox_DZ, SLOT(SetStep(double)));
connect( GroupOnCurve->SpinBox_DX, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) );
connect( GroupXYZ->SpinBox_DX, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) );
connect( GroupXYZ->SpinBox_DY, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) );
connect( GroupXYZ->SpinBox_DZ, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) );
connect( GroupRefPoint->SpinBox_DX, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) );
connect( GroupRefPoint->SpinBox_DY, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) );
connect( GroupRefPoint->SpinBox_DZ, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) );
connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(),
SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
// VSR: TODO ->>
connect( myGeomGUI, SIGNAL( SignalDefaultStepValueChanged( double ) ), GroupOnCurve->SpinBox_DX, SLOT( SetStep( double ) ) );
connect( myGeomGUI, SIGNAL( SignalDefaultStepValueChanged( double ) ), GroupXYZ->SpinBox_DX, SLOT( SetStep( double ) ) );
connect( myGeomGUI, SIGNAL( SignalDefaultStepValueChanged( double ) ), GroupXYZ->SpinBox_DY, SLOT( SetStep( double ) ) );
connect( myGeomGUI, SIGNAL( SignalDefaultStepValueChanged( double ) ), GroupXYZ->SpinBox_DZ, SLOT( SetStep( double ) ) );
connect( myGeomGUI, SIGNAL( SignalDefaultStepValueChanged( double ) ), GroupRefPoint->SpinBox_DX, SLOT( SetStep( double ) ) );
connect( myGeomGUI, SIGNAL( SignalDefaultStepValueChanged( double ) ), GroupRefPoint->SpinBox_DY, SLOT( SetStep( double ) ) );
connect( myGeomGUI, SIGNAL( SignalDefaultStepValueChanged( double ) ), GroupRefPoint->SpinBox_DZ, SLOT( SetStep( double ) ) );
// <<-
initName( tr("GEOM_VERTEX").toLatin1().constData() );
connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(),
SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
initName( tr( "GEOM_VERTEX" ) );
ConstructorsClicked( 0 );
}
@ -232,8 +225,7 @@ void BasicGUI_PointDlg::Init()
//=================================================================================
void BasicGUI_PointDlg::ConstructorsClicked(int constructorId)
{
switch ( constructorId )
{
switch ( constructorId ) {
case 0:
{
localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX );
@ -241,15 +233,15 @@ void BasicGUI_PointDlg::ConstructorsClicked(int constructorId)
GroupRefPoint->hide();
GroupOnCurve->hide();
GroupXYZ->show();
myCoordGrp->hide();
GroupXYZ->show();
break;
}
case 1:
{
myEditCurrentArgument = GroupRefPoint->LineEdit1;
myEditCurrentArgument->setText("");
myEditCurrentArgument->setText( "" );
myRefPoint = GEOM::GEOM_Object::_nil();
globalSelection( GEOM_POINT );
@ -265,7 +257,7 @@ void BasicGUI_PointDlg::ConstructorsClicked(int constructorId)
case 2:
{
myEditCurrentArgument = GroupOnCurve->LineEdit1;
myEditCurrentArgument->setText("");
myEditCurrentArgument->setText( "" );
myEdge = GEOM::GEOM_Object::_nil();
globalSelection( GEOM_EDGE );
@ -336,39 +328,32 @@ void BasicGUI_PointDlg::SelectionIntoArgument()
{
const int id = getConstructorId();
if ( ( id == 1 || id == 2 ) && myEditCurrentArgument != 0 )
{
myEditCurrentArgument->setText("");
if ( ( id == 1 || id == 2 ) && myEditCurrentArgument != 0 ) {
myEditCurrentArgument->setText( "" );
myX->setText( "" );
myY->setText( "" );
myZ->setText( "" );
myRefPoint = myEdge = GEOM::GEOM_Object::_nil();
}
if ( IObjectCount() == 1 )
{
if ( IObjectCount() == 1 ) {
Standard_Boolean aRes = Standard_False;
Handle(SALOME_InteractiveObject) anIO = firstIObject();
GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject( anIO, aRes );
if ( !CORBA::is_nil( aSelectedObject ) && aRes )
{
if ( id == 0 )
{
if ( !CORBA::is_nil( aSelectedObject ) && aRes ) {
if ( id == 0 ) {
// get CORBA reference to data object
TopoDS_Shape aShape = myGeomGUI->GetShapeReader().GetShape
( myGeomGUI->GetGeomGen(), aSelectedObject );
TopoDS_Shape aShape = myGeomGUI->GetShapeReader().GetShape( myGeomGUI->GetGeomGen(), aSelectedObject );
if ( aShape.IsNull() )
return;
if ( aShape.ShapeType() != TopAbs_VERTEX )
{
if ( aShape.ShapeType() != TopAbs_VERTEX ) {
TColStd_IndexedMapOfInteger aMap;
LightApp_Application* anApp =
(LightApp_Application*)(SUIT_Session::session()->activeApplication());
anApp->selectionMgr()->GetIndexes( anIO, aMap );
if ( aMap.Extent() == 1 )
{
if ( aMap.Extent() == 1 ) {
int anIndex = aMap( 1 );
TopTools_IndexedMapOfShape aShapes;
TopExp::MapShapes( aShape, aShapes );
@ -382,17 +367,15 @@ void BasicGUI_PointDlg::SelectionIntoArgument()
}
gp_Pnt aPnt = BRep_Tool::Pnt( TopoDS::Vertex( aShape ) );
GroupXYZ->SpinBox_DX->SetValue( aPnt.X() );
GroupXYZ->SpinBox_DY->SetValue( aPnt.Y() );
GroupXYZ->SpinBox_DZ->SetValue( aPnt.Z() );
GroupXYZ->SpinBox_DX->setValue( aPnt.X() );
GroupXYZ->SpinBox_DY->setValue( aPnt.Y() );
GroupXYZ->SpinBox_DZ->setValue( aPnt.Z() );
}
else if ( id == 1 )
{
else if ( id == 1 ) {
myRefPoint = aSelectedObject;
GroupRefPoint->LineEdit1->setText( GEOMBase::GetName( aSelectedObject ) );
}
else if ( id == 2 )
{
else if ( id == 2 ) {
myEdge = aSelectedObject;
GroupOnCurve->LineEdit1->setText( GEOMBase::GetName( aSelectedObject ) );
}
@ -426,15 +409,13 @@ void BasicGUI_PointDlg::SetEditCurrentArgument()
{
QPushButton* send = (QPushButton*)sender();
if ( send == GroupRefPoint->PushButton1 )
{
if ( send == GroupRefPoint->PushButton1 ) {
GroupRefPoint->LineEdit1->setFocus();
myEditCurrentArgument = GroupRefPoint->LineEdit1;
globalSelection( GEOM_POINT );
}
else if ( send == GroupOnCurve->PushButton1 )
{
else if ( send == GroupOnCurve->PushButton1 ) {
GroupOnCurve->LineEdit1->setFocus();
myEditCurrentArgument = GroupOnCurve->LineEdit1;
@ -447,9 +428,9 @@ void BasicGUI_PointDlg::SetEditCurrentArgument()
// function : enterEvent()
// purpose : to reactivate this dialog box when mouse enter onto the window
//=================================================================================
void BasicGUI_PointDlg::enterEvent(QEvent* e)
void BasicGUI_PointDlg::enterEvent( QEvent* )
{
if ( !GroupConstructors->isEnabled() )
if ( !mainFrame()->GroupConstructors->isEnabled() )
ActivateThisDialog();
}
@ -492,7 +473,7 @@ void BasicGUI_PointDlg::ValueChangedInSpinBox(double newValue)
//=================================================================================
double BasicGUI_PointDlg::getParameter() const
{
return GroupOnCurve->SpinBox_DX->GetValue();
return GroupOnCurve->SpinBox_DX->value();
}
//=================================================================================
@ -501,11 +482,10 @@ double BasicGUI_PointDlg::getParameter() const
//=================================================================================
void BasicGUI_PointDlg::OnPointSelected( const gp_Pnt& thePnt )
{
if ( getConstructorId() == 0 )
{
GroupXYZ->SpinBox_DX->SetValue( thePnt.X() );
GroupXYZ->SpinBox_DY->SetValue( thePnt.Y() );
GroupXYZ->SpinBox_DZ->SetValue( thePnt.Z() );
if ( getConstructorId() == 0 ) {
GroupXYZ->SpinBox_DX->setValue( thePnt.X() );
GroupXYZ->SpinBox_DY->setValue( thePnt.Y() );
GroupXYZ->SpinBox_DZ->setValue( thePnt.Z() );
displayPreview();
}
@ -546,29 +526,28 @@ bool BasicGUI_PointDlg::execute( ObjectList& objects )
GEOM::GEOM_Object_var anObj;
switch ( getConstructorId() )
{
switch ( getConstructorId() ) {
case 0 :
{
double x = GroupXYZ->SpinBox_DX->GetValue();
double y = GroupXYZ->SpinBox_DY->GetValue();
double z = GroupXYZ->SpinBox_DZ->GetValue();
{
double x = GroupXYZ->SpinBox_DX->value();
double y = GroupXYZ->SpinBox_DY->value();
double z = GroupXYZ->SpinBox_DZ->value();
anObj = GEOM::GEOM_IBasicOperations::_narrow( getOperation() )->MakePointXYZ( x,y,z );
res = true;
break;
}
anObj = GEOM::GEOM_IBasicOperations::_narrow( getOperation() )->MakePointXYZ( x, y, z );
res = true;
break;
}
case 1 :
{
double dx = GroupRefPoint->SpinBox_DX->GetValue();
double dy = GroupRefPoint->SpinBox_DY->GetValue();
double dz = GroupRefPoint->SpinBox_DZ->GetValue();
{
double dx = GroupRefPoint->SpinBox_DX->value();
double dy = GroupRefPoint->SpinBox_DY->value();
double dz = GroupRefPoint->SpinBox_DZ->value();
anObj = GEOM::GEOM_IBasicOperations::_narrow( getOperation() )->
MakePointWithReference( myRefPoint, dx, dy, dz );
res = true;
break;
}
anObj = GEOM::GEOM_IBasicOperations::_narrow( getOperation() )->
MakePointWithReference( myRefPoint, dx, dy, dz );
res = true;
break;
}
case 2 :
anObj = GEOM::GEOM_IBasicOperations::_narrow( getOperation() )->
MakePointOnCurve( myEdge, getParameter() );
@ -576,27 +555,22 @@ bool BasicGUI_PointDlg::execute( ObjectList& objects )
break;
}
if ( getConstructorId() == 1 || getConstructorId() == 2 )
{
if ( getConstructorId() == 1 || getConstructorId() == 2 ) {
TopoDS_Shape aShape;
if ( GEOMBase::GetShape( anObj, aShape ) && !aShape.IsNull() && aShape.ShapeType() == TopAbs_VERTEX )
{
if ( GEOMBase::GetShape( anObj, aShape ) && !aShape.IsNull() && aShape.ShapeType() == TopAbs_VERTEX ) {
gp_Pnt aPnt = BRep_Tool::Pnt( TopoDS::Vertex( aShape ) );
myX->setText( QString( "%1" ).arg( aPnt.X() ) );
myY->setText( QString( "%1" ).arg( aPnt.Y() ) );
myZ->setText( QString( "%1" ).arg( aPnt.Z() ) );
}
else
{
else {
myX->setText( "" );
myY->setText( "" );
myZ->setText( "" );
}
}
if ( !anObj->_is_nil() )
{
//printf( "--> a valid point is created\n" );
if ( !anObj->_is_nil() ) {
objects.push_back( anObj._retn() );
}

View File

@ -1,36 +1,34 @@
// GEOM GEOMGUI : GUI for Geometry component
// GEOM GEOMGUI : GUI for Geometry component
//
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
//
// 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
//
// File : BasicGUI_PointDlg.h
// Author : Lucien PIGNOLONI, Open CASCADE S.A.S.
//
//
// File : BasicGUI_PointDlg.h
// Author : Lucien PIGNOLONI
// Module : GEOM
#ifndef DIALOGBOX_POINT_H
#define DIALOGBOX_POINT_H
#ifndef BASICGUI_POINTDLG_H
#define BASICGUI_POINTDLG_H
#include "GEOM_BasicGUI.hxx"
#include "GEOMBase_Skeleton.h"
#include <GEOMBase_Skeleton.h>
class DlgRef_1Sel1Spin;
class DlgRef_3Spin;
@ -45,55 +43,56 @@ class gp_Pnt;
// class : BasicGUI_PointDlg
// purpose :
//=================================================================================
class GEOM_BASICGUI_EXPORT BasicGUI_PointDlg : public GEOMBase_Skeleton
class BASICGUI_EXPORT BasicGUI_PointDlg : public GEOMBase_Skeleton
{
Q_OBJECT
Q_OBJECT
public:
BasicGUI_PointDlg(GeometryGUI* theGeometryGUI, QWidget* parent = 0,
const char* name = 0, bool modal = FALSE, Qt::WindowFlags fl = 0);
BasicGUI_PointDlg( GeometryGUI*, QWidget* = 0,
const char* = 0, bool = false, Qt::WindowFlags = 0 );
~BasicGUI_PointDlg();
~BasicGUI_PointDlg();
bool acceptMouseEvent() const { return ( getConstructorId() == 0 ); };
void OnPointSelected( const gp_Pnt& ); // called by BasicGUI::OnMousePress()
bool acceptMouseEvent() const { return ( getConstructorId() == 0 ); }
void OnPointSelected( const gp_Pnt& ); // called by BasicGUI::OnMousePress()
protected:
// redefined from GEOMBase_Helper
virtual GEOM::GEOM_IOperations_ptr createOperation();
virtual bool isValid( QString& );
virtual bool execute( ObjectList& objects );
// redefined from GEOMBase_Helper
virtual GEOM::GEOM_IOperations_ptr createOperation();
virtual bool isValid( QString& );
virtual bool execute( ObjectList& );
virtual void closeEvent( QCloseEvent* e );
virtual void closeEvent( QCloseEvent* );
private :
void Init();
void enterEvent(QEvent* e);
double getParameter() const;
private:
void Init();
void enterEvent( QEvent* );
double getParameter() const;
GEOM::GEOM_Object_var myEdge;
GEOM::GEOM_Object_var myRefPoint;
private:
GEOM::GEOM_Object_var myEdge;
GEOM::GEOM_Object_var myRefPoint;
DlgRef_3Spin* GroupXYZ;
DlgRef_1Sel3Spin* GroupRefPoint;
DlgRef_1Sel1Spin* GroupOnCurve;
DlgRef_3Spin* GroupXYZ;
DlgRef_1Sel3Spin* GroupRefPoint;
DlgRef_1Sel1Spin* GroupOnCurve;
QGroupBox* myCoordGrp;
QLineEdit* myX;
QLineEdit* myY;
QLineEdit* myZ;
QGroupBox* myCoordGrp;
QLineEdit* myX;
QLineEdit* myY;
QLineEdit* myZ;
private slots:
void ClickOnOk();
void ClickOnCancel();
bool ClickOnApply();
void ActivateThisDialog();
void DeactivateActiveDialog();
void LineEditReturnPressed();
void SelectionIntoArgument();
void SetEditCurrentArgument();
void ConstructorsClicked(int constructorId);
void ValueChangedInSpinBox(double newValue);
void ClickOnOk();
void ClickOnCancel();
bool ClickOnApply();
void ActivateThisDialog();
void DeactivateActiveDialog();
void LineEditReturnPressed();
void SelectionIntoArgument();
void SetEditCurrentArgument();
void ConstructorsClicked( int );
void ValueChangedInSpinBox( double );
};
#endif // DIALOGBOX_POINT_H
#endif // BASICGUI_POINTDLG_H

View File

@ -1,46 +1,40 @@
// GEOM GEOMGUI : GUI for Geometry component
// GEOM GEOMGUI : GUI for Geometry component
//
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
//
// 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
//
// File : BasicGUI_VectorDlg.cxx
// Author : Lucien PIGNOLONI, Open CASCADE S.A.S.
//
//
// File : BasicGUI_VectorDlg.cxx
// Author : Lucien PIGNOLONI
// Module : GEOM
// $Header$
#include "BasicGUI_VectorDlg.h"
#include "DlgRef_3Spin1Check.h"
#include "DlgRef_SpinBox.h"
#include "GeometryGUI.h"
#include "GEOMBase.h"
#include <GEOM_DlgRef.h>
#include <GeometryGUI.h>
#include <GEOMBase.h>
#include "SUIT_ResourceMgr.h"
#include "SUIT_Session.h"
#include "SalomeApp_Application.h"
#include "LightApp_SelectionMgr.h"
#include <SUIT_ResourceMgr.h>
#include <SUIT_Session.h>
#include <SalomeApp_Application.h>
#include <LightApp_SelectionMgr.h>
#include "GEOMImpl_Types.hxx"
using namespace std;
#include <GEOMImpl_Types.hxx>
//=================================================================================
// class : BasicGUI_VectorDlg()
@ -49,49 +43,48 @@ using namespace std;
// The dialog will by default be modeless, unless you set 'modal' to
// TRUE to construct a modal dialog.
//=================================================================================
BasicGUI_VectorDlg::BasicGUI_VectorDlg(GeometryGUI* theGeometryGUI, QWidget* parent,
const char* name, bool modal, Qt::WindowFlags fl)
:GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, fl)
BasicGUI_VectorDlg::BasicGUI_VectorDlg( GeometryGUI* theGeometryGUI, QWidget* parent,
const char* name, bool modal, Qt::WindowFlags fl )
: GEOMBase_Skeleton( theGeometryGUI, parent, name, modal, fl )
{
QPixmap image0(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_VECTOR_2P")));
QPixmap image1(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_VECTOR_DXYZ")));
QPixmap image2(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_SELECT")));
QPixmap image0( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_VECTOR_2P" ) ) );
QPixmap image1( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_VECTOR_DXYZ" ) ) );
QPixmap image2( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_SELECT" ) ) );
setWindowTitle(tr("GEOM_VECTOR_TITLE"));
setWindowTitle( tr( "GEOM_VECTOR_TITLE" ) );
/***************************************************************/
GroupConstructors->setTitle(tr("GEOM_VECTOR"));
RadioButton1->setIcon(image0);
RadioButton2->setIcon(image1);
RadioButton3->setAttribute( Qt::WA_DeleteOnClose );
RadioButton3->close();
mainFrame()->GroupConstructors->setTitle(tr("GEOM_VECTOR"));
mainFrame()->RadioButton1->setIcon(image0);
mainFrame()->RadioButton2->setIcon(image1);
mainFrame()->RadioButton3->setAttribute( Qt::WA_DeleteOnClose );
mainFrame()->RadioButton3->close();
GroupPoints = new Ui::DlgRef_2Sel_QTD();
QWidget* aGroupPointsWidget = new QWidget(this);
GroupPoints->setupUi(aGroupPointsWidget);
aGroupPointsWidget->setObjectName("GroupPoints");
GroupPoints = new DlgRef_2Sel( centralWidget() );
GroupPoints->GroupBox1->setTitle(tr("GEOM_POINTS"));
GroupPoints->TextLabel1->setText(tr("GEOM_POINT_I").arg("1"));
GroupPoints->TextLabel2->setText(tr("GEOM_POINT_I").arg("2"));
GroupPoints->PushButton1->setIcon(image2);
GroupPoints->PushButton2->setIcon(image2);
GroupPoints->GroupBox1->setTitle( tr( "GEOM_POINTS" ) );
GroupPoints->TextLabel1->setText( tr( "GEOM_POINT_I" ).arg( 1 ) );
GroupPoints->TextLabel2->setText( tr( "GEOM_POINT_I" ).arg( 2 ) );
GroupPoints->PushButton1->setIcon( image2 );
GroupPoints->PushButton2->setIcon( image2 );
GroupPoints->LineEdit1->setReadOnly( true );
GroupPoints->LineEdit2->setReadOnly( true );
GroupDimensions = new DlgRef_3Spin1Check(this, "GroupDimensions");
GroupDimensions->GroupBox1->setTitle(tr("GEOM_COORDINATES"));
GroupDimensions->TextLabel1->setText(tr("GEOM_DX"));
GroupDimensions->TextLabel2->setText(tr("GEOM_DY"));
GroupDimensions->TextLabel3->setText(tr("GEOM_DZ"));
GroupDimensions->CheckBox1->setText(tr("GEOM_REVERSE_VECTOR"));
GroupDimensions = new DlgRef_3Spin1Check( centralWidget() );
GroupDimensions->GroupBox1->setTitle( tr( "GEOM_COORDINATES" ) );
GroupDimensions->TextLabel1->setText( tr( "GEOM_DX" ) );
GroupDimensions->TextLabel2->setText( tr( "GEOM_DY" ) );
GroupDimensions->TextLabel3->setText( tr( "GEOM_DZ" ) );
GroupDimensions->CheckButton1->setText( tr( "GEOM_REVERSE_VECTOR" ) );
gridLayout1->addWidget(aGroupPointsWidget, 2, 0);
gridLayout1->addWidget(GroupDimensions, 2, 0);
QVBoxLayout* layout = new QVBoxLayout( centralWidget() );
layout->setMargin( 0 ); layout->setSpacing( 6 );
layout->addWidget( GroupPoints );
layout->addWidget( GroupDimensions );
/***************************************************************/
setHelpFileName("vector.htm");
setHelpFileName( "vector.htm" );
/* Initialisations */
Init();
@ -121,51 +114,53 @@ void BasicGUI_VectorDlg::Init()
/* Get setting of step value from file configuration */
SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr();
double step = resMgr->doubleValue( "Geometry", "SettingsGeomStep", 100);
double step = resMgr->doubleValue( "Geometry", "SettingsGeomStep", 100 );
/* min, max, step and decimals for spin boxes */
GroupDimensions->SpinBox_DX->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, 3);
GroupDimensions->SpinBox_DY->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, 3);
GroupDimensions->SpinBox_DZ->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, 3);
initSpinBox( GroupDimensions->SpinBox_DX, COORD_MIN, COORD_MAX, step, 3 );
initSpinBox( GroupDimensions->SpinBox_DY, COORD_MIN, COORD_MAX, step, 3 );
initSpinBox( GroupDimensions->SpinBox_DZ, COORD_MIN, COORD_MAX, step, 3 );
double dx( 0. ), dy( 0. ), dz( 200. );
GroupDimensions->SpinBox_DX->SetValue( dx );
GroupDimensions->SpinBox_DY->SetValue( dy );
GroupDimensions->SpinBox_DZ->SetValue( dz );
GroupDimensions->SpinBox_DX->setValue( dx );
GroupDimensions->SpinBox_DY->setValue( dy );
GroupDimensions->SpinBox_DZ->setValue( dz );
GroupDimensions->CheckBox1->setChecked(FALSE);
GroupDimensions->CheckButton1->setChecked( false );
/* signals and slots connections */
connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
connect(myGeomGUI, SIGNAL(SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
connect(myGeomGUI, SIGNAL(SignalCloseAllDialogs()), this, SLOT(ClickOnCancel()));
connect( myGeomGUI, SIGNAL( SignalDeactivateActiveDialog() ), this, SLOT( DeactivateActiveDialog() ) );
connect( myGeomGUI, SIGNAL( SignalCloseAllDialogs() ), this, SLOT( ClickOnCancel() ) );
connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
connect(GroupConstructors, SIGNAL(clicked(int)), this, SLOT(ConstructorsClicked(int)));
connect( buttonCancel(), SIGNAL( clicked() ), this, SLOT( ClickOnCancel() ) );
connect( buttonOk(), SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) );
connect( buttonApply(), SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) );
connect(GroupPoints->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
connect(GroupPoints->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
connect( this, SIGNAL( constructorsClicked( int ) ), this, SLOT( ConstructorsClicked( int ) ) );
connect(GroupPoints->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed()));
connect(GroupPoints->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed()));
connect( GroupPoints->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) );
connect( GroupPoints->PushButton2, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) );
connect(GroupDimensions->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double)));
connect(GroupDimensions->SpinBox_DY, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double)));
connect(GroupDimensions->SpinBox_DZ, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double)));
connect( GroupPoints->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) );
connect( GroupPoints->LineEdit2, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) );
connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupDimensions->SpinBox_DX, SLOT(SetStep(double)));
connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupDimensions->SpinBox_DY, SLOT(SetStep(double)));
connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupDimensions->SpinBox_DZ, SLOT(SetStep(double)));
connect( GroupDimensions->SpinBox_DX, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) );
connect( GroupDimensions->SpinBox_DY, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) );
connect( GroupDimensions->SpinBox_DZ, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) );
connect(GroupDimensions->CheckBox1, SIGNAL(stateChanged(int)), this, SLOT(ReverseVector(int)));
// VSR: TODO ->>
connect( myGeomGUI, SIGNAL( SignalDefaultStepValueChanged( double ) ), GroupDimensions->SpinBox_DX, SLOT( SetStep( double ) ) );
connect( myGeomGUI, SIGNAL( SignalDefaultStepValueChanged( double ) ), GroupDimensions->SpinBox_DY, SLOT( SetStep( double ) ) );
connect( myGeomGUI, SIGNAL( SignalDefaultStepValueChanged( double ) ), GroupDimensions->SpinBox_DZ, SLOT( SetStep( double ) ) );
// <<-
connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(),
SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
connect( GroupDimensions->CheckButton1, SIGNAL( stateChanged( int ) ), this, SLOT( ReverseVector( int ) ) );
initName( tr("GEOM_VECTOR").toLatin1().constData() );
connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(),
SIGNAL( currentSelectionChanged() ), this, SLOT(SelectionIntoArgument() ) );
initName( tr("GEOM_VECTOR") );
GroupDimensions->hide();
ConstructorsClicked( 0 );
}
@ -176,42 +171,43 @@ void BasicGUI_VectorDlg::Init()
//=================================================================================
void BasicGUI_VectorDlg::ConstructorsClicked( int constructorId )
{
disconnect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), 0, this, 0);
disconnect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), 0, this, 0 );
myPoint1 = GEOM::GEOM_Object::_nil();
myPoint2 = GEOM::GEOM_Object::_nil();
switch (constructorId)
switch ( constructorId ) {
case 0:
{
case 0:
{
GroupDimensions->hide();
resize(0, 0);
::qobject_cast<QWidget*>( GroupPoints->gridLayout->parent() )->show();
GroupDimensions->hide();
GroupPoints->show();
myEditCurrentArgument = GroupPoints->LineEdit1;
GroupPoints->LineEdit1->setText("");
GroupPoints->LineEdit2->setText("");
myEditCurrentArgument = GroupPoints->LineEdit1;
GroupPoints->LineEdit1->setText( "" );
GroupPoints->LineEdit2->setText( "" );
globalSelection( GEOM_POINT );
connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(),
SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
break;
}
case 1:
{
::qobject_cast<QWidget*>( GroupPoints->gridLayout->parent() )->hide();
resize( 0, 0 );
GroupDimensions->show();
double dx( 0. ), dy( 0. ), dz( 0. );
GroupDimensions->SpinBox_DX->SetValue( dx );
GroupDimensions->SpinBox_DY->SetValue( dy );
GroupDimensions->SpinBox_DZ->SetValue( dz );
GroupDimensions->CheckBox1->setChecked( FALSE );
break;
}
globalSelection( GEOM_POINT );
connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(),
SIGNAL( currentSelectionChanged() ), this, SLOT(SelectionIntoArgument() ) );
break;
}
case 1:
{
GroupPoints->hide();
GroupDimensions->show();
double dx( 0. ), dy( 0. ), dz( 0. );
GroupDimensions->SpinBox_DX->setValue( dx );
GroupDimensions->SpinBox_DY->setValue( dy );
GroupDimensions->SpinBox_DZ->setValue( dz );
GroupDimensions->CheckButton1->setChecked( false );
break;
}
}
qApp->processEvents();
updateGeometry();
resize( minimumSize() );
displayPreview();
}
@ -242,7 +238,7 @@ void BasicGUI_VectorDlg::ClickOnCancel()
//=================================================================================
bool BasicGUI_VectorDlg::ClickOnApply()
{
buttonApply->setFocus();
buttonApply()->setFocus();
if ( !onAccept() )
return false;
@ -260,10 +256,9 @@ bool BasicGUI_VectorDlg::ClickOnApply()
//=================================================================================
void BasicGUI_VectorDlg::SelectionIntoArgument()
{
myEditCurrentArgument->setText("");
myEditCurrentArgument->setText( "" );
if ( IObjectCount() != 1 )
{
if ( IObjectCount() != 1 ) {
if ( myEditCurrentArgument == GroupPoints->LineEdit1 )
myPoint1 = GEOM::GEOM_Object::_nil();
else if ( myEditCurrentArgument == GroupPoints->LineEdit2 )
@ -274,8 +269,7 @@ void BasicGUI_VectorDlg::SelectionIntoArgument()
// nbSel == 1
Standard_Boolean aRes = Standard_False;
GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject( firstIObject(), aRes );
if ( !CORBA::is_nil( aSelectedObject ) && aRes )
{
if ( !CORBA::is_nil( aSelectedObject ) && aRes ) {
myEditCurrentArgument->setText( GEOMBase::GetName( aSelectedObject ) );
if ( myEditCurrentArgument == GroupPoints->LineEdit1 ) myPoint1 = aSelectedObject;
else if ( myEditCurrentArgument == GroupPoints->LineEdit2 ) myPoint2 = aSelectedObject;
@ -320,8 +314,8 @@ void BasicGUI_VectorDlg::LineEditReturnPressed()
void BasicGUI_VectorDlg::ActivateThisDialog()
{
GEOMBase_Skeleton::ActivateThisDialog();
connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(),
SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(),
SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
ConstructorsClicked( getConstructorId() );
}
@ -340,9 +334,9 @@ void BasicGUI_VectorDlg::DeactivateActiveDialog()
// function : enterEvent()
// purpose :
//=================================================================================
void BasicGUI_VectorDlg::enterEvent(QEvent* e)
void BasicGUI_VectorDlg::enterEvent( QEvent* )
{
if ( !GroupConstructors->isEnabled() )
if ( !mainFrame()->GroupConstructors->isEnabled() )
ActivateThisDialog();
}
@ -359,15 +353,15 @@ void BasicGUI_VectorDlg::ValueChangedInSpinBox( double newValue )
// function : ReverseVector()
// purpose : 'state' not used here
//=================================================================================
void BasicGUI_VectorDlg::ReverseVector(int state)
void BasicGUI_VectorDlg::ReverseVector( int state )
{
double dx = -GroupDimensions->SpinBox_DX->GetValue();
double dy = -GroupDimensions->SpinBox_DY->GetValue();
double dz = -GroupDimensions->SpinBox_DZ->GetValue();
double dx = -GroupDimensions->SpinBox_DX->value();
double dy = -GroupDimensions->SpinBox_DY->value();
double dz = -GroupDimensions->SpinBox_DZ->value();
GroupDimensions->SpinBox_DX->SetValue( dx );
GroupDimensions->SpinBox_DY->SetValue( dy );
GroupDimensions->SpinBox_DZ->SetValue( dz );
GroupDimensions->SpinBox_DX->setValue( dx );
GroupDimensions->SpinBox_DY->setValue( dy );
GroupDimensions->SpinBox_DZ->setValue( dz );
displayPreview();
}
@ -387,7 +381,7 @@ GEOM::GEOM_IOperations_ptr BasicGUI_VectorDlg::createOperation()
//=================================================================================
bool BasicGUI_VectorDlg::isValid( QString& msg )
{
return getConstructorId() == 0 ? !myPoint1->_is_nil() && !myPoint2->_is_nil(): true;
return getConstructorId() == 0 ? !myPoint1->_is_nil() && !myPoint2->_is_nil() : true;
}
//=================================================================================
@ -402,16 +396,17 @@ bool BasicGUI_VectorDlg::execute( ObjectList& objects )
switch ( getConstructorId() ) {
case 0 :
anObj = GEOM::GEOM_IBasicOperations::_narrow( getOperation() )->MakeVectorTwoPnt( myPoint1, myPoint2 );
res = true;
break;
{
anObj = GEOM::GEOM_IBasicOperations::_narrow( getOperation() )->MakeVectorTwoPnt( myPoint1, myPoint2 );
res = true;
break;
}
case 1 :
{
double dx = GroupDimensions->SpinBox_DX->GetValue();
double dy = GroupDimensions->SpinBox_DY->GetValue();
double dz = GroupDimensions->SpinBox_DZ->GetValue();
anObj = GEOM::GEOM_IBasicOperations::_narrow( getOperation() )->MakeVectorDXDYDZ( dx,dy,dz );
double dx = GroupDimensions->SpinBox_DX->value();
double dy = GroupDimensions->SpinBox_DY->value();
double dz = GroupDimensions->SpinBox_DZ->value();
anObj = GEOM::GEOM_IBasicOperations::_narrow( getOperation() )->MakeVectorDXDYDZ( dx, dy, dz );
res = true;
break;
}

View File

@ -1,84 +1,81 @@
// GEOM GEOMGUI : GUI for Geometry component
// GEOM GEOMGUI : GUI for Geometry component
//
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
//
// 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
//
// File : BasicGUI_VectorDlg.h
// Author : Lucien PIGNOLONI, Open CASCADE S.A.S.
//
//
// File : BasicGUI_VectorDlg.h
// Author : Lucien PIGNOLONI
// Module : GEOM
#ifndef DIALOGBOX_VECTOR_H
#define DIALOGBOX_VECTOR_H
#ifndef BASICGUI_VECTORDLG_H
#define BASICGUI_VECTORDLG_H
#include "GEOM_BasicGUI.hxx"
#include "GEOMBase_Skeleton.h"
#include "DlgRef_2Sel_QTD.h"
#include <GEOMBase_Skeleton.h>
class DlgRef_2Sel;
class DlgRef_3Spin1Check;
//=================================================================================
// class : BasicGUI_VectorDlg
// purpose :
//=================================================================================
class GEOM_BASICGUI_EXPORT BasicGUI_VectorDlg : public GEOMBase_Skeleton
class BASICGUI_EXPORT BasicGUI_VectorDlg : public GEOMBase_Skeleton
{
Q_OBJECT
Q_OBJECT
public:
BasicGUI_VectorDlg(GeometryGUI* theGeometryGUI, QWidget* parent = 0,
const char* name = 0, bool modal = FALSE, Qt::WindowFlags fl = 0);
~BasicGUI_VectorDlg();
BasicGUI_VectorDlg( GeometryGUI*, QWidget* = 0,
const char* = 0, bool = false, Qt::WindowFlags = 0 );
~BasicGUI_VectorDlg();
protected:
// redefined from GEOMBase_Helper
virtual GEOM::GEOM_IOperations_ptr createOperation();
virtual bool isValid( QString& );
virtual bool execute( ObjectList& objects );
// redefined from GEOMBase_Helper
virtual GEOM::GEOM_IOperations_ptr createOperation();
virtual bool isValid( QString& );
virtual bool execute( ObjectList& );
private :
void Init();
void enterEvent(QEvent* e);
private:
void Init();
void enterEvent( QEvent* );
GEOM::GEOM_Object_var myPoint1;
GEOM::GEOM_Object_var myPoint2;
GEOM::GEOM_Object_var myPoint1;
GEOM::GEOM_Object_var myPoint2;
Ui::DlgRef_2Sel_QTD* GroupPoints;
DlgRef_3Spin1Check* GroupDimensions;
DlgRef_2Sel* GroupPoints;
DlgRef_3Spin1Check* GroupDimensions;
private slots:
void ClickOnOk();
void ClickOnCancel();
bool ClickOnApply();
void ClickOnOk();
void ClickOnCancel();
bool ClickOnApply();
void ActivateThisDialog();
void DeactivateActiveDialog();
void LineEditReturnPressed();
void SelectionIntoArgument();
void SetEditCurrentArgument();
void ConstructorsClicked(int constructorId);
void ValueChangedInSpinBox(double newValue);
void ReverseVector(int state);
void ActivateThisDialog();
void DeactivateActiveDialog();
void LineEditReturnPressed();
void SelectionIntoArgument();
void SetEditCurrentArgument();
void ConstructorsClicked( int );
void ValueChangedInSpinBox( double );
void ReverseVector( int );
};
#endif // DIALOGBOX_VECTOR_H
#endif // BASICGUI_VECTORDLG_H

View File

@ -1,39 +1,38 @@
// GEOM GEOMGUI : GUI for Geometry component
// GEOM GEOMGUI : GUI for Geometry component
//
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
//
// 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
//
// File : BasicGUI_WorkingPlaneDlg.cxx
// Author : Lucien PIGNOLONI, Open CASCADE S.A.S.
//
//
// File : BasicGUI_WorkingPlaneDlg.cxx
// Author : Lucien PIGNOLONI
// Module : GEOM
#include "BasicGUI_WorkingPlaneDlg.h"
#include "GeometryGUI.h"
#include "GEOMBase.h"
#include <GEOM_DlgRef.h>
#include <GeometryGUI.h>
#include <GEOMBase.h>
#include "SUIT_ResourceMgr.h"
#include "SUIT_Session.h"
#include "SalomeApp_Application.h"
#include "LightApp_SelectionMgr.h"
#include <SUIT_ResourceMgr.h>
#include <SUIT_Session.h>
#include <SalomeApp_Application.h>
#include <LightApp_SelectionMgr.h>
// OCCT Includes
#include <BRep_Tool.hxx>
@ -47,9 +46,7 @@
// QT Includes
#include <QCheckBox>
#include "GEOMImpl_Types.hxx"
using namespace std;
#include <GEOMImpl_Types.hxx>
//=================================================================================
// class : BasicGUI_WorkingPlaneDlg()
@ -58,74 +55,65 @@ using namespace std;
// The dialog will by default be modeless, unless you set 'modal' to
// TRUE to construct a modal dialog.
//=================================================================================
BasicGUI_WorkingPlaneDlg::BasicGUI_WorkingPlaneDlg(GeometryGUI* theGeometryGUI, QWidget* parent,
const char* name, bool modal, Qt::WindowFlags fl)
:GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, Qt::WindowTitleHint | Qt::WindowSystemMenuHint)
BasicGUI_WorkingPlaneDlg::BasicGUI_WorkingPlaneDlg( GeometryGUI* theGeometryGUI, QWidget* parent,
const char* name, bool modal, Qt::WindowFlags fl )
: GEOMBase_Skeleton( theGeometryGUI, parent, name, modal, fl )
{
QPixmap image0(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_SELECT")));
QPixmap image1(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_WPLANE_FACE")));
QPixmap image2(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_WPLANE_VECTOR")));
QPixmap image3(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_WPLANE_ORIGIN")));
QPixmap image0( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_SELECT" ) ) );
QPixmap image1( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_WPLANE_FACE" ) ) );
QPixmap image2( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_WPLANE_VECTOR" ) ) );
QPixmap image3( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_WPLANE_ORIGIN" ) ) );
setWindowTitle(tr("GEOM_WPLANE_TITLE"));
setWindowTitle( tr( "GEOM_WPLANE_TITLE" ) );
/***************************************************************/
GroupConstructors->setTitle(tr("GEOM_WPLANE"));
RadioButton1->setIcon(image1);
RadioButton2->setIcon(image2);
RadioButton3->setIcon(image3);
mainFrame()->GroupConstructors->setTitle( tr( "GEOM_WPLANE" ) );
mainFrame()->RadioButton1->setIcon( image1 );
mainFrame()->RadioButton2->setIcon( image2 );
mainFrame()->RadioButton3->setIcon( image3 );
Group1 = new Ui::DlgRef_1Sel_QTD();
QWidget* aGroup1Widget = new QWidget(this);
Group1->setupUi(aGroup1Widget);
aGroup1Widget->setObjectName("Group1");
Group1 = new DlgRef_1Sel( centralWidget() );
Group1->GroupBox1->setTitle(tr("GEOM_WPLANE_FACE"));
Group1->TextLabel1->setText(tr("GEOM_SELECTION"));
Group1->PushButton1->setIcon(image0);
Group1->GroupBox1->setTitle( tr( "GEOM_WPLANE_FACE" ) );
Group1->TextLabel1->setText( tr( "GEOM_SELECTION" ) );
Group1->PushButton1->setIcon( image0 );
Group1->LineEdit1->setReadOnly( true );
Group2 = new Ui::DlgRef_2Sel_QTD();
QWidget* aGroup2Widget = new QWidget(this);
Group2->setupUi(aGroup2Widget);
aGroup2Widget->setObjectName("Group2");
Group2 = new DlgRef_2Sel( centralWidget() );
Group2->GroupBox1->setTitle(tr("GEOM_WPLANE_VECTOR"));
Group2->TextLabel1->setText(tr("GEOM_WPLANE_VX"));
Group2->TextLabel2->setText(tr("GEOM_WPLANE_VZ"));
Group2->PushButton1->setIcon(image0);
Group2->PushButton2->setIcon(image0);
Group2->GroupBox1->setTitle( tr( "GEOM_WPLANE_VECTOR" ) );
Group2->TextLabel1->setText( tr( "GEOM_WPLANE_VX" ) );
Group2->TextLabel2->setText( tr( "GEOM_WPLANE_VZ" ) );
Group2->PushButton1->setIcon( image0 );
Group2->PushButton2->setIcon( image0 );
Group2->LineEdit1->setReadOnly( true );
Group2->LineEdit2->setReadOnly( true );
Group3 = new Ui::DlgRef_3Check_QTD();
QWidget* aGroup3Widget = new QWidget(this);
Group3->setupUi(aGroup3Widget);
aGroup3Widget->setObjectName("Group3");
Group3 = new DlgRef_3Check( centralWidget() );
Group3->GroupBox1->setTitle(tr("GEOM_WPLANE_ORIGIN"));
Group3->RadioButton1->setText(tr("GEOM_WPLANE_OXY"));
Group3->RadioButton2->setText(tr("GEOM_WPLANE_OYZ"));
Group3->RadioButton3->setText(tr("GEOM_WPLANE_OZX"));
Group3->GroupBox1->setTitle( tr( "GEOM_WPLANE_ORIGIN" ) );
Group3->RadioButton1->setText( tr( "GEOM_WPLANE_OXY" ) );
Group3->RadioButton2->setText( tr( "GEOM_WPLANE_OYZ" ) );
Group3->RadioButton3->setText( tr( "GEOM_WPLANE_OZX" ) );
gridLayout1->addWidget(aGroup1Widget, 1, 0);
gridLayout1->addWidget(aGroup2Widget, 1, 0);
gridLayout1->addWidget(aGroup3Widget, 1, 0);
/***************************************************************/
QFrame* aReverseGroupBox = new QFrame(this);
aReverseGroupBox->setObjectName("aReverseGroupBox");
aReverseGroupBox->setContentsMargins(10, 10, 10, 10);
QGroupBox* aReverseGroupBox = new QGroupBox( centralWidget() );
QHBoxLayout* aReverseGroupBoxLayout = new QHBoxLayout( aReverseGroupBox );
aReverseGroupBoxLayout->setMargin( 9 );
aReverseGroupBoxLayout->setSpacing( 6 );
myReverseCB = new QCheckBox(aReverseGroupBox);
myReverseCB->setObjectName("myReverseCB");
myReverseCB->setText(tr("GEOM_REVERSE_PLANE"));
aReverseGroupBoxLayout->addWidget(myReverseCB);
myReverseCB = new QCheckBox( aReverseGroupBox );
myReverseCB->setText( tr( "GEOM_REVERSE_PLANE" ) );
aReverseGroupBoxLayout->addWidget( myReverseCB );
gridLayout1->addWidget(aReverseGroupBox, 2, 0);
QVBoxLayout* layout = new QVBoxLayout( centralWidget() );
layout->setMargin( 0 ); layout->setSpacing( 6 );
layout->addWidget( Group1 );
layout->addWidget( Group2 );
layout->addWidget( Group3 );
layout->addWidget( aReverseGroupBox );
setHelpFileName("working_plane.htm");
setHelpFileName( "working_plane.htm" );
Init();
}
@ -150,7 +138,7 @@ void BasicGUI_WorkingPlaneDlg::Init()
// myGeomGUI->SetState( 0 );
myFace = GEOM::GEOM_Object::_nil();
myFace = GEOM::GEOM_Object::_nil();
myVectX = GEOM::GEOM_Object::_nil();
myVectZ = GEOM::GEOM_Object::_nil();
@ -160,95 +148,96 @@ void BasicGUI_WorkingPlaneDlg::Init()
globalSelection( GEOM_PLANE );
/* signals and slots connections */
connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
connect(myGeomGUI, SIGNAL(SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
connect(myGeomGUI, SIGNAL(SignalCloseAllDialogs()), this, SLOT(ClickOnCancel()));
connect(GroupConstructors, SIGNAL(clicked(int)), this, SLOT(ConstructorsClicked(int)));
connect( myGeomGUI, SIGNAL( SignalDeactivateActiveDialog() ), this, SLOT( DeactivateActiveDialog() ) );
connect( myGeomGUI, SIGNAL( SignalCloseAllDialogs() ), this, SLOT( ClickOnCancel() ) );
connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
connect( buttonCancel(), SIGNAL( clicked() ), this, SLOT( ClickOnCancel() ) );
connect( buttonOk(), SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) );
connect( buttonApply(), SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) );
connect(Group1->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed()));
connect(Group1->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
connect( this, SIGNAL( constructorsClicked( int ) ), this, SLOT( ConstructorsClicked( int ) ) );
connect(Group2->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed()));
connect(Group2->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
connect(Group2->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed()));
connect(Group2->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
connect( Group1->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) );
connect( Group1->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) );
connect( Group2->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) );
connect( Group2->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) );
connect( Group2->LineEdit2, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) );
connect( Group2->PushButton2, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) );
connect(Group3->GroupBox1, SIGNAL(clicked(int)), this, SLOT(GroupClicked(int)));
connect( Group3->GroupBox1, SIGNAL( clicked( int ) ), this, SLOT( GroupClicked( int ) ) );
connect(myReverseCB, SIGNAL(clicked()), this, SLOT(onReverse()));
connect( myReverseCB, SIGNAL( clicked() ), this, SLOT( onReverse() ) );
connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(),
SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(),
SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
initName( tr( "GEOM_WPLANE" ).toLatin1().constData() );
ConstructorsClicked(0);
initName( tr( "GEOM_WPLANE" ) );
ConstructorsClicked( 0 );
}
//=================================================================================
// function : ConstructorsClicked()
// purpose : Radio button management
//=================================================================================
void BasicGUI_WorkingPlaneDlg::ConstructorsClicked(int constructorId)
void BasicGUI_WorkingPlaneDlg::ConstructorsClicked( int constructorId )
{
LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr();
disconnect(aSelMgr, 0, this, 0);
disconnect( aSelMgr, 0, this, 0 );
switch (constructorId)
switch ( constructorId ) {
case 0:
{
case 0:
{
//globalSelection( GEOM_PLANE );
TColStd_MapOfInteger aMap;
aMap.Add( GEOM_PLANE );
aMap.Add( GEOM_MARKER );
globalSelection( aMap );
//globalSelection( GEOM_PLANE );
TColStd_MapOfInteger aMap;
aMap.Add( GEOM_PLANE );
aMap.Add( GEOM_MARKER );
globalSelection( aMap );
::qobject_cast<QWidget*>( Group2->gridLayout->parent() )->hide();
::qobject_cast<QWidget*>( Group3->gridLayout->parent() )->hide();
resize(0, 0);
::qobject_cast<QWidget*>( Group1->gridLayout->parent() )->show();
Group2->hide();
Group3->hide();
Group1->show();
myEditCurrentArgument = Group1->LineEdit1;
Group1->LineEdit1->setText("");
myFace = GEOM::GEOM_Object::_nil();
myEditCurrentArgument = Group1->LineEdit1;
Group1->LineEdit1->setText( "" );
myFace = GEOM::GEOM_Object::_nil();
connect(aSelMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
break;
}
case 1:
{
globalSelection( GEOM_LINE );
::qobject_cast<QWidget*>( Group1->gridLayout->parent() )->hide();
::qobject_cast<QWidget*>( Group3->gridLayout->parent() )->hide();
resize(0, 0);
::qobject_cast<QWidget*>( Group2->gridLayout->parent() )->show();
myEditCurrentArgument = Group2->LineEdit1;
Group2->LineEdit1->setText("");
Group2->LineEdit2->setText("");
myVectX = GEOM::GEOM_Object::_nil();
myVectZ = GEOM::GEOM_Object::_nil();
connect(aSelMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
break;
}
case 2:
{
::qobject_cast<QWidget*>( Group1->gridLayout->parent() )->hide();
::qobject_cast<QWidget*>( Group2->gridLayout->parent() )->hide();
resize(0, 0);
::qobject_cast<QWidget*>( Group3->gridLayout->parent() )->show();
Group3->RadioButton1->setChecked(true);
aOriginType = 1;
break;
}
connect( aSelMgr, SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
break;
}
case 1:
{
globalSelection( GEOM_LINE );
Group1->hide();
Group3->hide();
Group2->show();
myEditCurrentArgument = Group2->LineEdit1;
Group2->LineEdit1->setText( "" );
Group2->LineEdit2->setText( "" );
myVectX = GEOM::GEOM_Object::_nil();
myVectZ = GEOM::GEOM_Object::_nil();
connect( aSelMgr, SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
break;
}
case 2:
{
Group1->hide();
Group2->hide();
Group3->show();
Group3->RadioButton1->setChecked( true );
aOriginType = 1;
break;
}
}
qApp->processEvents();
updateGeometry();
resize( minimumSize() );
updateWPlane();
}
@ -257,7 +246,7 @@ void BasicGUI_WorkingPlaneDlg::ConstructorsClicked(int constructorId)
// function : GroupClicked()
// purpose : Radio button management
//=================================================================================
void BasicGUI_WorkingPlaneDlg::GroupClicked(int groupId)
void BasicGUI_WorkingPlaneDlg::GroupClicked( int groupId )
{
aOriginType = groupId;
updateWPlane();
@ -279,11 +268,11 @@ void BasicGUI_WorkingPlaneDlg::ClickOnOk()
//=================================================================================
bool BasicGUI_WorkingPlaneDlg::ClickOnApply()
{
buttonApply->setFocus();
myGeomGUI->application()->putInfo(tr(""));
buttonApply()->setFocus();
myGeomGUI->application()->putInfo( "" );
if (updateWPlane(false)){
myGeomGUI->SetWorkingPlane(myWPlane);
if ( updateWPlane( false ) ) {
myGeomGUI->SetWorkingPlane( myWPlane );
myGeomGUI->ActiveWorkingPlane();
}
@ -296,16 +285,16 @@ bool BasicGUI_WorkingPlaneDlg::ClickOnApply()
//=================================================================================
void BasicGUI_WorkingPlaneDlg::SelectionIntoArgument()
{
myEditCurrentArgument->setText("");
myEditCurrentArgument->setText( "" );
const int id = getConstructorId();
if ( IObjectCount() != 1 ) {
if(id == 0)
if ( id == 0 )
myFace = GEOM::GEOM_Object::_nil();
else if(id == 1) {
if (myEditCurrentArgument == Group2->LineEdit1)
else if ( id == 1 ) {
if ( myEditCurrentArgument == Group2->LineEdit1 )
myVectX = GEOM::GEOM_Object::_nil();
else if (myEditCurrentArgument == Group2->LineEdit2)
else if ( myEditCurrentArgument == Group2->LineEdit2 )
myVectZ = GEOM::GEOM_Object::_nil();
}
return;
@ -313,16 +302,16 @@ void BasicGUI_WorkingPlaneDlg::SelectionIntoArgument()
// nbSel == 1
Standard_Boolean aRes = Standard_False;
GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(firstIObject(), aRes);
GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject( firstIObject(), aRes );
if(!aRes || CORBA::is_nil( aSelectedObject ))
if ( !aRes || CORBA::is_nil( aSelectedObject ) )
return;
if(myEditCurrentArgument == Group1->LineEdit1)
if ( myEditCurrentArgument == Group1->LineEdit1 )
myFace = aSelectedObject;
else if(myEditCurrentArgument == Group2->LineEdit1)
else if ( myEditCurrentArgument == Group2->LineEdit1 )
myVectX = aSelectedObject;
else if(myEditCurrentArgument == Group2->LineEdit2)
else if ( myEditCurrentArgument == Group2->LineEdit2 )
myVectZ = aSelectedObject;
myEditCurrentArgument->setText( GEOMBase::GetName( aSelectedObject ) );
@ -339,15 +328,15 @@ void BasicGUI_WorkingPlaneDlg::SetEditCurrentArgument()
{
QPushButton* send = (QPushButton*)sender();
if(send == Group1->PushButton1) {
if ( send == Group1->PushButton1 ) {
myEditCurrentArgument = Group1->LineEdit1;
globalSelection( GEOM_PLANE );
}
else if(send == Group2->PushButton1) {
else if ( send == Group2->PushButton1 ) {
myEditCurrentArgument = Group2->LineEdit1;
globalSelection( GEOM_LINE );
}
else if(send == Group2->PushButton2) {
else if ( send == Group2->PushButton2 ) {
myEditCurrentArgument = Group2->LineEdit2;
globalSelection( GEOM_LINE );
}
@ -364,7 +353,7 @@ void BasicGUI_WorkingPlaneDlg::SetEditCurrentArgument()
void BasicGUI_WorkingPlaneDlg::LineEditReturnPressed()
{
QLineEdit* send = (QLineEdit*)sender();
if(send == Group1->LineEdit1 || send == Group2->LineEdit1 || send == Group2->LineEdit2) {
if ( send == Group1->LineEdit1 || send == Group2->LineEdit1 || send == Group2->LineEdit2 ) {
myEditCurrentArgument = send;
GEOMBase_Skeleton::LineEditReturnPressed();
}
@ -388,8 +377,8 @@ void BasicGUI_WorkingPlaneDlg::onReverse()
void BasicGUI_WorkingPlaneDlg::ActivateThisDialog( )
{
GEOMBase_Skeleton::ActivateThisDialog();
connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(),
SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication( ) ) )->selectionMgr(),
SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
ConstructorsClicked( getConstructorId() );
}
@ -418,9 +407,9 @@ void BasicGUI_WorkingPlaneDlg::ClickOnCancel()
// function : enterEvent()
// purpose :
//=================================================================================
void BasicGUI_WorkingPlaneDlg::enterEvent(QEvent* e)
void BasicGUI_WorkingPlaneDlg::enterEvent( QEvent* )
{
if ( !GroupConstructors->isEnabled() )
if ( !mainFrame()->GroupConstructors->isEnabled() )
ActivateThisDialog();
}
@ -444,37 +433,38 @@ bool BasicGUI_WorkingPlaneDlg::updateWPlane( const bool showPreview )
const int id = getConstructorId();
if (id == 0) { // by planar face selection
if (CORBA::is_nil(myFace)) {
if(!showPreview)
if ( id == 0 ) { // by planar face selection
if ( CORBA::is_nil( myFace ) ) {
if ( !showPreview )
showError( "Face has to be selected" );
return false;
}
// PAL12781: set center of WPL to face's center of mass
// like it is done for LCS creation
CORBA::Double Ox,Oy,Oz, Zx,Zy,Zz, Xx,Xy,Xz;
CORBA::Double Ox, Oy, Oz, Zx, Zy, Zz, Xx, Xy, Xz;
Ox = Oy = Oz = Zx = Zy = Xy = Xz = 0.;
Zz = Xx = 1.;
GEOM::GEOM_IMeasureOperations_ptr aMeasureOp =
myGeomGUI->GetGeomGen()->GetIMeasureOperations(getStudyId());
aMeasureOp->GetPosition(myFace, Ox,Oy,Oz, Zx,Zy,Zz, Xx,Xy,Xz);
myGeomGUI->GetGeomGen()->GetIMeasureOperations( getStudyId() );
aMeasureOp->GetPosition( myFace, Ox, Oy, Oz, Zx, Zy, Zz, Xx, Xy, Xz);
if (aMeasureOp->IsDone()) {
gp_Pnt aPnt (Ox,Oy,Oz);
gp_Dir aDirN (Zx,Zy,Zz);
gp_Dir aDirX (Xx,Xy,Xz);
myWPlane = gp_Ax3(aPnt, aDirN, aDirX);
} else {
if(!showPreview)
if ( aMeasureOp->IsDone() ) {
gp_Pnt aPnt ( Ox, Oy, Oz );
gp_Dir aDirN ( Zx, Zy, Zz );
gp_Dir aDirX ( Xx, Xy, Xz );
myWPlane = gp_Ax3( aPnt, aDirN, aDirX );
}
else {
if ( !showPreview )
showError( "Wrong shape selected (has to be a planar face)" );
return false;
}
} else if (id == 1) { // by two vectors (Ox & Oz)
}
else if ( id == 1 ) { // by two vectors (Ox & Oz)
if ( CORBA::is_nil( myVectX ) || CORBA::is_nil( myVectZ ) ) {
if(!showPreview)
if ( !showPreview )
showError( "Two vectors have to be selected" );
return false;
}
@ -483,79 +473,79 @@ bool BasicGUI_WorkingPlaneDlg::updateWPlane( const bool showPreview )
TopoDS_Vertex VX1, VX2, VZ1, VZ2;
gp_Vec aVX, aVZ;
if (!GEOMBase::GetShape( myVectX, aVectX, TopAbs_EDGE ) ||
!GEOMBase::GetShape( myVectZ, aVectZ, TopAbs_EDGE )) {
if(!showPreview)
if ( !GEOMBase::GetShape( myVectX, aVectX, TopAbs_EDGE ) ||
!GEOMBase::GetShape( myVectZ, aVectZ, TopAbs_EDGE ) ) {
if ( !showPreview )
showError( "Wrong shape selected (two vectors(edges) have to be selected)" );
return false;
}
TopExp::Vertices(aVectX, VX1, VX2, Standard_True);
TopExp::Vertices(aVectZ, VZ1, VZ2, Standard_True);
TopExp::Vertices( aVectX, VX1, VX2, Standard_True );
TopExp::Vertices( aVectZ, VZ1, VZ2, Standard_True );
if (VX1.IsNull() || VX2.IsNull()) {
if(!showPreview)
if ( VX1.IsNull() || VX2.IsNull() ) {
if ( !showPreview )
showError( "Bad OX vector" );
return false;
}
if (VZ1.IsNull() || VZ2.IsNull()) {
if(!showPreview)
if ( VZ1.IsNull() || VZ2.IsNull() ) {
if ( !showPreview )
showError( "Bad OZ vector" );
return false;
}
aVX = gp_Vec(BRep_Tool::Pnt(VX1), BRep_Tool::Pnt(VX2));
aVZ = gp_Vec(BRep_Tool::Pnt(VZ1), BRep_Tool::Pnt(VZ2));
aVX = gp_Vec( BRep_Tool::Pnt( VX1 ), BRep_Tool::Pnt( VX2 ) );
aVZ = gp_Vec( BRep_Tool::Pnt( VZ1 ), BRep_Tool::Pnt( VZ2 ) );
if (aVX.Magnitude() < Precision::Confusion()) {
if(!showPreview)
if ( aVX.Magnitude() < Precision::Confusion() ) {
if ( !showPreview )
showError( "Bad OX vector" );
return false;
}
if (aVZ.Magnitude() < Precision::Confusion()) {
if(!showPreview)
if ( aVZ.Magnitude() < Precision::Confusion() ) {
if ( !showPreview )
showError( "Bad OZ vector" );
return false;
}
gp_Dir aDirX = gp_Dir(aVX.X(), aVX.Y(), aVX.Z());
gp_Dir aDirZ = gp_Dir(aVZ.X(), aVZ.Y(), aVZ.Z());
gp_Dir aDirX = gp_Dir( aVX.X(), aVX.Y(), aVX.Z() );
gp_Dir aDirZ = gp_Dir( aVZ.X(), aVZ.Y(), aVZ.Z() );
if (aDirX.IsParallel(aDirZ, Precision::Angular())) {
if(!showPreview)
if ( aDirX.IsParallel( aDirZ, Precision::Angular() ) ) {
if ( !showPreview )
showError( "Parallel vectors selected" );
return false;
}
myWPlane = gp_Ax3(BRep_Tool::Pnt(VX1), aDirZ, aDirX);
myWPlane = gp_Ax3( BRep_Tool::Pnt( VX1 ), aDirZ, aDirX );
} else if (id == 2) { // by selection from standard (OXY or OYZ, or OZX)
}
else if ( id == 2 ) { // by selection from standard (OXY or OYZ, or OZX)
gp_Ax2 anAx2;
if (aOriginType == 1) anAx2 = gp::XOY();
else if (aOriginType == 2) anAx2 = gp::YOZ();
else if (aOriginType == 0) anAx2 = gp::ZOX();
if ( aOriginType == 1 ) anAx2 = gp::XOY();
else if ( aOriginType == 2 ) anAx2 = gp::YOZ();
else if ( aOriginType == 0 ) anAx2 = gp::ZOX();
myWPlane = gp_Ax3(anAx2);
myWPlane = gp_Ax3( anAx2 );
} else {
}
else {
return false;
}
if (myReverseCB->isChecked())
{
myWPlane.YReverse();
myWPlane.ZReverse();
}
if ( myReverseCB->isChecked() ) {
myWPlane.YReverse();
myWPlane.ZReverse();
}
if (showPreview)
{
GEOM::GEOM_IBasicOperations_var aBasicOp = getGeomEngine()->GetIBasicOperations( getStudyId() );
GEOM::GEOM_Object_var anObj = aBasicOp->MakeMarker( myWPlane.Location().X(), myWPlane.Location().Y(), myWPlane.Location().Z(),
myWPlane.XDirection().X(), myWPlane.XDirection().Y(), myWPlane.XDirection().Z(),
myWPlane.YDirection().X(), myWPlane.YDirection().Y(), myWPlane.YDirection().Z() );
displayPreview(anObj);
}
if ( showPreview ) {
GEOM::GEOM_IBasicOperations_var aBasicOp = getGeomEngine()->GetIBasicOperations( getStudyId() );
GEOM::GEOM_Object_var anObj = aBasicOp->MakeMarker( myWPlane.Location().X(), myWPlane.Location().Y(), myWPlane.Location().Z(),
myWPlane.XDirection().X(), myWPlane.XDirection().Y(), myWPlane.XDirection().Z(),
myWPlane.YDirection().X(), myWPlane.YDirection().Y(), myWPlane.YDirection().Z() );
displayPreview( anObj );
}
return true;
}

View File

@ -1,93 +1,92 @@
// GEOM GEOMGUI : GUI for Geometry component
// GEOM GEOMGUI : GUI for Geometry component
//
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
//
// 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
//
// File : BasicGUI_WorkingPlaneDlg.h
// Author : Lucien PIGNOLONI, Open CASCADE S.A.S.
//
//
// File : BasicGUI_WorkingPlaneDlg.h
// Author : Lucien PIGNOLONI
// Module : GEOM
#ifndef DIALOGBOX_WORKINGPLANE_H
#define DIALOGBOX_WORKINGPLANE_H
#ifndef BASICGUI_WORKINGPLANEDLG_H
#define BASICGUI_WORKINGPLANEDLG_H
#include "GEOM_BasicGUI.hxx"
#include "GEOMBase_Skeleton.h"
#include "DlgRef_1Sel_QTD.h"
#include "DlgRef_2Sel_QTD.h"
#include "DlgRef_3Check_QTD.h"
#include <GEOMBase_Skeleton.h>
#include <gp_Ax3.hxx>
class DlgRef_1Sel;
class DlgRef_2Sel;
class DlgRef_3Check;
class QCheckBox;
//=================================================================================
// class : BasicGUI_WorkingPlaneDlg
// purpose :
//=================================================================================
class GEOM_BASICGUI_EXPORT BasicGUI_WorkingPlaneDlg : public GEOMBase_Skeleton
class BASICGUI_EXPORT BasicGUI_WorkingPlaneDlg : public GEOMBase_Skeleton
{
Q_OBJECT
Q_OBJECT
public:
BasicGUI_WorkingPlaneDlg( GeometryGUI* theGeometryGUI, QWidget* parent = 0,
const char* name = 0, bool modal = FALSE, Qt::WindowFlags fl = 0 );
~BasicGUI_WorkingPlaneDlg();
virtual void closeEvent( QCloseEvent* e );
BasicGUI_WorkingPlaneDlg( GeometryGUI*, QWidget* = 0,
const char* = 0, bool = false, Qt::WindowFlags = 0 );
~BasicGUI_WorkingPlaneDlg();
protected:
virtual void closeEvent( QCloseEvent* );
private:
void Init();
void enterEvent(QEvent* e);
void Init();
void enterEvent( QEvent* );
bool updateWPlane(const bool showPreview = true);
bool updateWPlane( const bool = true );
GEOM::GEOM_Object_var myFace;
GEOM::GEOM_Object_var myVectX;
GEOM::GEOM_Object_var myVectZ;
GEOM::GEOM_Object_var myFace;
GEOM::GEOM_Object_var myVectX;
GEOM::GEOM_Object_var myVectZ;
int aOriginType;
int aOriginType;
Ui::DlgRef_1Sel_QTD* Group1;
Ui::DlgRef_2Sel_QTD* Group2;
Ui::DlgRef_3Check_QTD* Group3;
DlgRef_1Sel* Group1;
DlgRef_2Sel* Group2;
DlgRef_3Check* Group3;
QCheckBox* myReverseCB;
QCheckBox* myReverseCB;
gp_Ax3 myWPlane;
gp_Ax3 myWPlane;
private slots:
void ClickOnOk();
void ClickOnCancel();
bool ClickOnApply();
void ClickOnOk();
void ClickOnCancel();
bool ClickOnApply();
void ConstructorsClicked(int constructorId);
void GroupClicked(int groupId);
void SetEditCurrentArgument();
void SelectionIntoArgument();
void LineEditReturnPressed();
void onReverse();
void ActivateThisDialog();
void DeactivateActiveDialog();
void ConstructorsClicked( int );
void GroupClicked( int );
void SetEditCurrentArgument();
void SelectionIntoArgument();
void LineEditReturnPressed();
void onReverse();
void ActivateThisDialog();
void DeactivateActiveDialog();
};
#endif // DIALOGBOX_WORKINGPLANE_H
#endif // BASICGUI_WORKINGPLANEDLG_H

View File

@ -1,47 +1,42 @@
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
//
// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
//
// File : GEOM_BasicGUI.hxx
// Author : Alexander BORODIN, Open CASCADE S.A.S. (alexander.borodin@opencascade.com)
//
//
// File : GEOM_BasicGUI.hxx
// Author : Alexander A. BORODIN
// Module : GEOM
#ifndef _GEOM_BasicGUI_HXX_
#define _GEOM_BasicGUI_HXX_
#ifndef GEOM_BASICGUI_HXX
#define GEOM_BASICGUI_HXX
#ifdef WNT
#if defined BASICGUI_EXPORTS
#if defined WIN32
#define GEOM_BASICGUI_EXPORT __declspec( dllexport )
#else
#define GEOM_BASICGUI_EXPORT
#endif
#else
#if defined WIN32
#define GEOM_BASICGUI_EXPORT __declspec( dllimport )
#else
#define GEOM_BASICGUI_EXPORT
#endif
#endif
#if defined WIN32
# if defined BASICGUI_EXPORTS
# define BASICGUI_EXPORT __declspec( dllexport )
# else
# define BASICGUI_EXPORT __declspec( dllimport )
# endif
#else
#define GEOM_BASICGUI_EXPORT
# define BASICGUI_EXPORT
#endif
#endif
#ifndef COORD_MIN
#define COORD_MIN -1e+15
#define COORD_MAX +1e+15
#endif // COORD_MIN
#endif // GEOM_BASICGUI_HXX

View File

@ -1,31 +1,27 @@
# GEOM BASICGUI :
# GEOM BASICGUI :
#
# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
#
# 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
#
# File : Makefile.in
# Author : Alexander BORODIN, Open CASCADE S.A.S. (alexander.borodin@opencascade.com)
#
#
# File : Makefile.in
# Author : Damien COQUERET (OCC)
# Modified by : Alexander BORODIN (OCN) - autotools usage
# Module : GEOM
# $Header:
include $(top_srcdir)/adm_local/unix/make_common_starter.am
@ -89,6 +85,7 @@ libBasicGUI_la_CPPFLAGS = \
-I$(srcdir)/../GEOMBase \
-I$(srcdir)/../GEOMImpl \
-I$(srcdir)/../GEOMClient \
-I$(top_builddir)/src/DlgRef \
-I$(top_builddir)/idl \
-I$(top_builddir)/salome_adm/unix

View File

@ -1,6 +1,6 @@
<ui version="4.0" >
<class>DlgRef_Skeleton_QTD</class>
<widget class="QDialog" name="DlgRef_Skeleton_QTD" >
<widget class="QWidget" name="DlgRef_Skeleton_QTD" >
<property name="geometry" >
<rect>
<x>0</x>
@ -9,20 +9,9 @@
<height>170</height>
</rect>
</property>
<property name="sizePolicy" >
<sizepolicy>
<hsizetype>5</hsizetype>
<vsizetype>7</vsizetype>
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="windowTitle" >
<string/>
</property>
<property name="sizeGripEnabled" >
<bool>true</bool>
</property>
<layout class="QGridLayout" >
<property name="margin" >
<number>9</number>
@ -30,8 +19,41 @@
<property name="spacing" >
<number>6</number>
</property>
<item row="2" column="0" >
<widget class="QWidget" native="1" name="GroupMedium" />
<item row="1" column="0" >
<widget class="QGroupBox" name="DlgRef_Skeleton_QTD" >
<property name="sizePolicy" >
<sizepolicy>
<hsizetype>5</hsizetype>
<vsizetype>0</vsizetype>
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="title" >
<string>Result name</string>
</property>
<layout class="QHBoxLayout" >
<property name="margin" >
<number>9</number>
</property>
<property name="spacing" >
<number>6</number>
</property>
<item>
<widget class="QLabel" name="NameLabel" >
<property name="text" >
<string>Name</string>
</property>
<property name="wordWrap" >
<bool>false</bool>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="ResultName" />
</item>
</layout>
</widget>
</item>
<item row="0" column="0" >
<widget class="QGroupBox" name="GroupConstructors" >
@ -151,49 +173,20 @@
</layout>
</widget>
</item>
<item row="1" column="0" >
<widget class="QGroupBox" name="GroupBoxName" >
<property name="title" >
<string>Result name</string>
<item row="2" column="0" >
<widget class="QWidget" native="1" name="GroupMedium" >
<property name="sizePolicy" >
<sizepolicy>
<hsizetype>7</hsizetype>
<vsizetype>7</vsizetype>
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<layout class="QHBoxLayout" >
<property name="margin" >
<number>9</number>
</property>
<property name="spacing" >
<number>6</number>
</property>
<item>
<widget class="QLabel" name="NameLabel" >
<property name="text" >
<string>Name</string>
</property>
<property name="wordWrap" >
<bool>false</bool>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="ResultName" />
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<layoutdefault spacing="6" margin="11" />
<pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
<tabstops>
<tabstop>RadioButton1</tabstop>
<tabstop>RadioButton2</tabstop>
<tabstop>RadioButton3</tabstop>
<tabstop>RadioButton4</tabstop>
<tabstop>ResultName</tabstop>
<tabstop>buttonOk</tabstop>
<tabstop>buttonApply</tabstop>
<tabstop>buttonCancel</tabstop>
<tabstop>buttonHelp</tabstop>
</tabstops>
<resources/>
<connections/>
</ui>

View File

@ -522,27 +522,11 @@ DlgRef_6Sel::~DlgRef_6Sel()
//////////////////////////////////////////
DlgRef_Skeleton::DlgRef_Skeleton( QWidget* parent, Qt::WindowFlags f )
: QDialog( parent, f )
: QWidget( parent, f )
{
setupUi( this );
}
DlgRef_Skeleton::DlgRef_Skeleton( QWidget* parent, bool modal, Qt::WindowFlags f )
: QDialog( parent, f )
{
setupUi( this );
setModal( modal );
}
DlgRef_Skeleton::~DlgRef_Skeleton()
{
}
void DlgRef_Skeleton::initSpinBox( QDoubleSpinBox* spinBox,
double min, double max,
double step, int decimals )
{
spinBox->setRange( min, max );
spinBox->setSingleStep( step );
spinBox->setDecimals( decimals );
}

View File

@ -572,17 +572,14 @@ public:
#include "ui_DlgRef_Skeleton_QTD.h"
class DLGREF_EXPORT DlgRef_Skeleton : public QDialog,
class DLGREF_EXPORT DlgRef_Skeleton : public QWidget,
public Ui::DlgRef_Skeleton_QTD
{
Q_OBJECT
public:
DlgRef_Skeleton( QWidget* = 0, Qt::WindowFlags = 0 );
DlgRef_Skeleton( QWidget* = 0, bool modal = false, Qt::WindowFlags = 0 );
~DlgRef_Skeleton();
void initSpinBox( QDoubleSpinBox*, double, double, double = 0.1, int = 3 );
};
#endif // GEOM_DLGREF_H

View File

@ -85,9 +85,8 @@ MOC_FILES = \
# DlgRef_4Sel1Spin2Check_moc.cxx
# header files
salomeinclude_HEADERS = \
GEOM_DlgRef.h
#salomeinclude_HEADERS = \
# GEOM_DlgRef.h
# DlgRef_Skeleton_QTD.h \
# DlgRef_1Sel_QTD.h \
# DlgRef_2Sel_QTD.h \
@ -183,8 +182,9 @@ UIC_FILES = \
BUILT_SOURCES = $(UIC_FILES)
nodist_libDlgRef_la_SOURCES = \
$(MOC_FILES) \
nodist_libDlgRef_la_SOURCES = \
GEOM_DlgRef.h \
$(MOC_FILES) \
$(UIC_FILES)
# additionnal information to compile and link file

View File

@ -27,6 +27,7 @@
#include "GEOMBase.h"
#include <GeometryGUI.h>
#include <GEOM_DlgRef.h>
#include <SalomeApp_Application.h>
#include <LightApp_Application.h>
@ -37,6 +38,7 @@
#include <SUIT_MessageBox.h>
#include <QKeyEvent>
#include <QDoubleSpinBox>
using namespace std;
@ -45,45 +47,41 @@ using namespace std;
// purpose : Constructs a GEOMBase_Skeleton which is a child of 'parent', with the
// name 'name' and widget flags set to 'f'.
// The dialog will by default be modeless, unless you set 'modal' to
// TRUE to construct a modal dialog.
// true to construct a modal dialog.
//=================================================================================
GEOMBase_Skeleton::GEOMBase_Skeleton(GeometryGUI* theGeometryGUI, QWidget* parent,
const char* name, bool modal, Qt::WindowFlags fl)
GEOMBase_Skeleton::GEOMBase_Skeleton( GeometryGUI* theGeometryGUI, QWidget* parent,
const char* name, bool modal, Qt::WindowFlags fl )
: QDialog( parent, Qt::WindowTitleHint | Qt::WindowSystemMenuHint ),
GEOMBase_Helper( dynamic_cast<SUIT_Desktop*>( parent ) ),
myGeomGUI( theGeometryGUI ),
myRBGroup( 0 )
{
setupUi(this);
if (!name)
setObjectName("GEOMBase_Skeleton");
if ( !name )
setObjectName( "GEOMBase_Skeleton" );
else
setObjectName(name);
setObjectName( name );
setModal( modal );
setAttribute( Qt::WA_DeleteOnClose );
buttonCancel->setText(tr("GEOM_BUT_CLOSE"));
buttonOk->setText(tr("GEOM_BUT_OK"));
buttonApply->setText(tr("GEOM_BUT_APPLY"));
buttonHelp->setText(tr("GEOM_BUT_HELP"));
setModal( modal );
GroupMedium->setAttribute( Qt::WA_DeleteOnClose );
GroupMedium->close();
resize(0, 0);
myMainFrame = new DlgRef_Skeleton( this );
QVBoxLayout* topLayout = new QVBoxLayout( this );
topLayout->setMargin( 0 ); topLayout->setSpacing( 0 );
topLayout->addWidget( myMainFrame );
if ( GroupConstructors != NULL ) {
myRBGroup = new QButtonGroup(GroupConstructors);
QList<QObject*> aRadioButtons = GroupConstructors->children();
QListIterator<QObject*> it( aRadioButtons );
int anId = 0;
while ( it.hasNext() )
if ( QRadioButton* aRB = ::qobject_cast<QRadioButton*>( it.next() ) ) {
myRBGroup->addButton( aRB, anId );
anId++;
}
}
buttonCancel()->setText( tr( "GEOM_BUT_CLOSE" ) );
buttonOk()->setText( tr( "GEOM_BUT_OK" )) ;
buttonApply()->setText( tr( "GEOM_BUT_APPLY" ) );
buttonHelp()->setText( tr( "GEOM_BUT_HELP" ) );
myRBGroup = new QButtonGroup( this );
myRBGroup->addButton( myMainFrame->RadioButton1, 0 );
myRBGroup->addButton( myMainFrame->RadioButton2, 1 );
myRBGroup->addButton( myMainFrame->RadioButton3, 2 );
myRBGroup->addButton( myMainFrame->RadioButton4, 4 );
connect( myRBGroup, SIGNAL( buttonClicked( int ) ), this, SIGNAL( constructorsClicked( int ) ) );
Init();
}
@ -95,7 +93,7 @@ GEOMBase_Skeleton::GEOMBase_Skeleton(GeometryGUI* theGeometryGUI, QWidget* paren
//=================================================================================
GEOMBase_Skeleton::~GEOMBase_Skeleton()
{
if (myGeomGUI)
if ( myGeomGUI )
myGeomGUI->SetActiveDialogBox( 0 );
}
@ -106,31 +104,36 @@ GEOMBase_Skeleton::~GEOMBase_Skeleton()
//=================================================================================
void GEOMBase_Skeleton::Init()
{
SalomeApp_Application* app = (SalomeApp_Application*)(SUIT_Session::session()->activeApplication());
if (!myGeomGUI && app)
SalomeApp_Application* app = (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() );
if ( !myGeomGUI && app )
myGeomGUI = dynamic_cast<GeometryGUI*>( app->module( "Geometry" ) );
/* init variables */
myGeomGUI->SetActiveDialogBox(this);
myGeomGUI->SetActiveDialogBox( this );
/* signals and slots connections */
connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
if (myGeomGUI)
{
connect(myGeomGUI, SIGNAL(SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
connect(myGeomGUI, SIGNAL(SignalCloseAllDialogs()), this, SLOT(ClickOnCancel()));
connect( buttonCancel(), SIGNAL( clicked() ), this, SLOT( ClickOnCancel() ) );
if ( myGeomGUI ) {
connect( myGeomGUI, SIGNAL( SignalDeactivateActiveDialog() ), this, SLOT( DeactivateActiveDialog() ) );
connect( myGeomGUI, SIGNAL( SignalCloseAllDialogs() ), this, SLOT( ClickOnCancel() ) );
}
// connect help button on a private slot that displays help information
connect( buttonHelp, SIGNAL( clicked() ), this, SLOT( ClickOnHelp() ) );
connect( buttonHelp(), SIGNAL( clicked() ), this, SLOT( ClickOnHelp() ) );
/* displays Dialog */
RadioButton1->setChecked(TRUE);
RadioButton4->hide();
return;
myMainFrame->RadioButton1->setChecked( true );
myMainFrame->RadioButton4->hide();
}
void GEOMBase_Skeleton::initSpinBox( QDoubleSpinBox* spinBox,
double min, double max,
double step, int decimals )
{
spinBox->setRange( min, max );
spinBox->setSingleStep( step );
spinBox->setDecimals( decimals );
}
//=================================================================================
// function : ClickOnCancel()
@ -157,10 +160,8 @@ void GEOMBase_Skeleton::LineEditReturnPressed()
const QString objectUserName = myEditCurrentArgument->text();
QWidget* thisWidget = (QWidget*)this;
if(GEOMBase::SelectionByNameInDialogs(thisWidget, objectUserName, selectedIO()))
myEditCurrentArgument->setText(objectUserName);
return;
if ( GEOMBase::SelectionByNameInDialogs( thisWidget, objectUserName, selectedIO() ) )
myEditCurrentArgument->setText( objectUserName );
}
@ -170,12 +171,10 @@ void GEOMBase_Skeleton::LineEditReturnPressed()
//=================================================================================
void GEOMBase_Skeleton::DeactivateActiveDialog()
{
this->setEnabled(false);
this->setEnabled( false );
globalSelection();
disconnect( ((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), 0, this, 0);
if (myGeomGUI) myGeomGUI->SetActiveDialogBox(0);
return;
disconnect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), 0, this, 0 );
if ( myGeomGUI ) myGeomGUI->SetActiveDialogBox( 0 );
}
@ -186,9 +185,9 @@ void GEOMBase_Skeleton::DeactivateActiveDialog()
void GEOMBase_Skeleton::ActivateThisDialog()
{
/* Emit a signal to deactivate the active dialog */
if (myGeomGUI) myGeomGUI->EmitSignalDeactivateDialog();
this->setEnabled(true);
if (myGeomGUI) myGeomGUI->SetActiveDialogBox((QDialog*)this);
if ( myGeomGUI ) myGeomGUI->EmitSignalDeactivateDialog();
this->setEnabled( true );
if ( myGeomGUI ) myGeomGUI->SetActiveDialogBox( (QDialog*)this );
return;
}
@ -197,11 +196,11 @@ void GEOMBase_Skeleton::ActivateThisDialog()
// function : closeEvent()
// purpose : same than click on cancel button
//=================================================================================
void GEOMBase_Skeleton::closeEvent(QCloseEvent* e)
void GEOMBase_Skeleton::closeEvent( QCloseEvent* e )
{
SalomeApp_Application* app = (SalomeApp_Application*)(SUIT_Session::session()->activeApplication());
if(app) {
disconnect( app->selectionMgr(), 0, this, 0);
SalomeApp_Application* app = (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() );
if( app ) {
disconnect( app->selectionMgr(), 0, this, 0 );
app->updateActions();
}
QDialog::closeEvent( e );
@ -211,11 +210,11 @@ void GEOMBase_Skeleton::closeEvent(QCloseEvent* e)
// function : initName()
// purpose : initialize the Name field with a string "thePrefix_X" (Vertex_3)
//=================================================================================
void GEOMBase_Skeleton::initName( const char* thePrefix )
void GEOMBase_Skeleton::initName( const QString& thePrefix )
{
if ( thePrefix )
if ( !thePrefix.isNull() )
setPrefix( thePrefix );
ResultName->setText( GEOMBase::GetDefaultName( getPrefix() ) );
myMainFrame->ResultName->setText( GEOMBase::GetDefaultName( getPrefix() ) );
}
//=================================================================================
@ -224,7 +223,7 @@ void GEOMBase_Skeleton::initName( const char* thePrefix )
//=================================================================================
const char* GEOMBase_Skeleton::getNewObjectName() const
{
return ResultName->text().toLatin1().constData();
return myMainFrame->ResultName->text().toLatin1().constData();
}
//=================================================================================
@ -248,20 +247,20 @@ int GEOMBase_Skeleton::getConstructorId() const
//=================================================================================
void GEOMBase_Skeleton::ClickOnHelp()
{
LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication());
if (app)
app->onHelpContextModule(myGeomGUI ? app->moduleName(myGeomGUI->moduleName()) : QString(""), myHelpFileName);
LightApp_Application* app = (LightApp_Application*)( SUIT_Session::session()->activeApplication() );
if ( app )
app->onHelpContextModule( myGeomGUI ? app->moduleName( myGeomGUI->moduleName() ) : QString(""), myHelpFileName );
else {
QString platform;
QString platform;
#ifdef WIN32
platform = "winapplication";
platform = "winapplication";
#else
platform = "application";
platform = "application";
#endif
SUIT_MessageBox::warning(0, QObject::tr("WRN_WARNING"),
QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE").
arg(app->resourceMgr()->stringValue("ExternalBrowser", platform)).arg(myHelpFileName),
QObject::tr("BUT_OK"));
SUIT_MessageBox::warning( 0, QObject::tr( "WRN_WARNING" ),
QObject::tr( "EXTERNAL_BROWSER_CANNOT_SHOW_PAGE" ).
arg( app->resourceMgr()->stringValue( "ExternalBrowser", platform ) ).arg( myHelpFileName ),
QObject::tr( "BUT_OK" ) );
}
}
//=================================================================================
@ -269,9 +268,39 @@ void GEOMBase_Skeleton::ClickOnHelp()
// purpose : set name for help file html
//=================================================================================
void GEOMBase_Skeleton::setHelpFileName(const QString& theName)
void GEOMBase_Skeleton::setHelpFileName( const QString& theName )
{
myHelpFileName = theName;
myHelpFileName = theName;
}
DlgRef_Skeleton* GEOMBase_Skeleton::mainFrame()
{
return myMainFrame;
}
QWidget* GEOMBase_Skeleton::centralWidget()
{
return myMainFrame->GroupMedium;
}
QPushButton* GEOMBase_Skeleton::buttonCancel() const
{
return myMainFrame->buttonCancel;
}
QPushButton* GEOMBase_Skeleton::buttonOk() const
{
return myMainFrame->buttonOk;
}
QPushButton* GEOMBase_Skeleton::buttonApply() const
{
return myMainFrame->buttonApply;
}
QPushButton* GEOMBase_Skeleton::buttonHelp() const
{
return myMainFrame->buttonHelp;
}
//=================================================================================
@ -284,9 +313,8 @@ void GEOMBase_Skeleton::keyPressEvent( QKeyEvent* e )
if ( e->isAccepted() )
return;
if ( e->key() == Qt::Key_F1 )
{
e->accept();
ClickOnHelp();
}
if ( e->key() == Qt::Key_F1 ) {
e->accept();
ClickOnHelp();
}
}

View File

@ -29,29 +29,35 @@
#include "GEOM_GEOMBase.hxx"
#include "GEOMBase_Helper.h"
#include <GEOM_DlgRef.h>
#include <QDialog>
class GeometryGUI;
class DlgRef_Skeleton;
class QDoubleSpinBox;
class QLineEdit;
class QButtonGroup;
class QPushButton;
class GEOMBASE_EXPORT GEOMBase_Skeleton : public QDialog, public Ui::DlgRef_Skeleton_QTD, public GEOMBase_Helper
class GEOMBASE_EXPORT GEOMBase_Skeleton : public QDialog, public GEOMBase_Helper
{
Q_OBJECT
Q_OBJECT
public:
GEOMBase_Skeleton(GeometryGUI* theGeometryGUI, QWidget* parent = 0,
const char* name = 0, bool modal = FALSE, Qt::WindowFlags fl = 0);
GEOMBase_Skeleton( GeometryGUI*, QWidget* = 0, const char* = 0, bool = false, Qt::WindowFlags = 0 );
~GEOMBase_Skeleton();
private:
void Init();
protected:
void closeEvent(QCloseEvent* e);
void keyPressEvent(QKeyEvent* e);
void initSpinBox( QDoubleSpinBox*, double, double, double = 0.1, int = 3 );
void closeEvent( QCloseEvent* );
void keyPressEvent( QKeyEvent* );
/*! initialize "Name" field with a string "thePrefix_X" (Vertex_3)
*/
void initName( const char* thePrefix = 0 );
void initName( const QString& = QString() );
/*! returns contents of "Name" field
*/
@ -59,22 +65,34 @@ protected:
/*! returns id of a selected "constructor" radio button or '-1' in case of error
*/
int getConstructorId() const;
int getConstructorId() const;
void setHelpFileName( const QString& );
void setHelpFileName( const QString& );
QLineEdit* myEditCurrentArgument; //!< Current LineEdit
GeometryGUI* myGeomGUI; //!< reference GEOM GUI
QString myHelpFileName;
DlgRef_Skeleton* mainFrame();
QWidget* centralWidget();
QPushButton* buttonCancel() const;
QPushButton* buttonOk() const;
QPushButton* buttonApply() const;
QPushButton* buttonHelp() const;
QButtonGroup* myRBGroup;
protected:
QLineEdit* myEditCurrentArgument; //!< Current LineEdit
GeometryGUI* myGeomGUI; //!< reference GEOM GUI
QString myHelpFileName; //!< Associated HTML help file name
QButtonGroup* myRBGroup; //!< radio button group
DlgRef_Skeleton* myMainFrame; //!< dialog box's mainframe widgetx
protected slots:
virtual void ClickOnCancel();
void LineEditReturnPressed();
void DeactivateActiveDialog();
void ActivateThisDialog();
void ClickOnHelp();
virtual void ClickOnCancel();
void LineEditReturnPressed();
void DeactivateActiveDialog();
void ActivateThisDialog();
void ClickOnHelp();
signals:
void constructorsClicked( int );
};
#endif // GEOMBASE_SKELETON_H

View File

@ -54,7 +54,9 @@ libGEOMClient_la_LDFLAGS = \
../../idl/libSalomeIDLGEOM.la \
../GEOM/libGEOMbasic.la \
$(KERNEL_LDFLAGS) -lSalomeIDLKernel -lOpUtil \
$(CAS_TKTopAlgo) \
$(CORBA_LIBS) \
$(STDLIB)
$(CAS_TKTopAlgo)
# \
# $(CORBA_LIBS) \
# #$(STDLIB)

View File

@ -93,6 +93,8 @@ libGEOMEngine_la_LDFLAGS = \
../GEOM/libGEOMbasic.la \
$(KERNEL_LDFLAGS) -lSalomeNS -lSalomeContainer -lSalomeGenericObj -lTOOLSDS \
$(CAS_DATAEXCHANGE) \
$(CAS_LDPATH) -lTKFillet -lTKOffset \
$(STDLIB) \
$(CORBA_LIBS)
$(CAS_LDPATH) -lTKFillet -lTKOffset
# \
# $(STDLIB) \
# $(CORBA_LIBS)