From d22d69e315de7e0705e63e3838d1111b0bea0b30 Mon Sep 17 00:00:00 2001 From: gdd Date: Wed, 24 Nov 2010 15:09:14 +0000 Subject: [PATCH] RNC: EDF 1618 Modified sketcher to allow creation of arcs of circle with the destination point and the radius or the center of the circle --- src/EntityGUI/EntityGUI_SketcherDlg.cxx | 666 +++++++++++++++++++++--- src/EntityGUI/EntityGUI_SketcherDlg.h | 25 +- src/EntityGUI/EntityGUI_Widgets.cxx | 59 +++ src/EntityGUI/EntityGUI_Widgets.h | 65 +++ src/EntityGUI/Makefile.am | 4 + 5 files changed, 754 insertions(+), 65 deletions(-) diff --git a/src/EntityGUI/EntityGUI_SketcherDlg.cxx b/src/EntityGUI/EntityGUI_SketcherDlg.cxx index 4d7574e5d..8af4d0d69 100644 --- a/src/EntityGUI/EntityGUI_SketcherDlg.cxx +++ b/src/EntityGUI/EntityGUI_SketcherDlg.cxx @@ -116,6 +116,7 @@ EntityGUI_SketcherDlg::EntityGUI_SketcherDlg( GeometryGUI* GUI, QWidget* parent, planeLayout->addWidget(ComboBox1); planeButton = new QPushButton (GroupBox1); + planeButton->setSizePolicy( QSizePolicy(QSizePolicy::Fixed,QSizePolicy::Fixed)); planeButton->setText( tr( "GEOM_SKETCHER_RESTORE" ) ); planeLayout->addWidget(planeButton); @@ -129,6 +130,13 @@ EntityGUI_SketcherDlg::EntityGUI_SketcherDlg( GeometryGUI* GUI, QWidget* parent, GroupPt->RB_Point2->setText( tr( "GEOM_SKETCHER_REL" ) ); GroupPt->RB_Point3->setText( tr( "GEOM_SKETCHER_SEL" ) ); + GroupPt2 = new EntityGUI_Point( MainWidget->DestCnt ); + + GroupPt2->GroupPoint->setTitle( tr( "GEOM_SKETCHER_ADD_PARAMS" ) ); + GroupPt2->RB_Point1->setText( tr( "GEOM_SKETCHER_NONE" ) ); + GroupPt2->RB_Point2->setText( tr( "GEOM_SKETCHER_RADIUS" ) ); + GroupPt2->RB_Point3->setText( tr( "GEOM_SKETCHER_CENTER" ) ); + GroupD1 = new EntityGUI_Dir1( MainWidget->DestCnt ); GroupD1->GroupDir1->setTitle( tr( "GEOM_SKETCHER_DIR" ) ); @@ -145,7 +153,6 @@ EntityGUI_SketcherDlg::EntityGUI_SketcherDlg( GeometryGUI* GUI, QWidget* parent, GroupD2->RB_Dir23->setText( tr( "GEOM_SKETCHER_Y" ) ); Group1Sel = new EntityGUI_1Sel( MainWidget->SkeletonCnt ); - Group1Sel->TextLabel1->setText( tr( "GEOM_SKETCHER_POINT2" ) ); Group1Sel->GroupBox1->setTitle( tr( "GEOM_SKETCHER_VALUES" ) ); Group1Sel->buttonApply->setText( tr( "GEOM_SKETCHER_APPLY" ) ); @@ -154,6 +161,26 @@ EntityGUI_SketcherDlg::EntityGUI_SketcherDlg( GeometryGUI* GUI, QWidget* parent, Group1Sel->buttonRedo->setIcon( image2 ); Group1Sel->LineEdit1->setReadOnly( true ); + Group2Sel = new EntityGUI_2Sel1Check( MainWidget->SkeletonCnt ); + Group2Sel->GroupBox1->setTitle( tr( "GEOM_SKETCHER_VALUES" ) ); + Group2Sel->buttonApply->setText( tr( "GEOM_SKETCHER_APPLY" ) ); + Group2Sel->checkBox->setText( tr( "GEOM_REVERSE" ) ); + Group2Sel->PushButton1->setIcon( image0 ); + Group2Sel->PushButton2->setIcon( image0 ); + Group2Sel->buttonUndo->setIcon( image1 ); + Group2Sel->buttonRedo->setIcon( image2 ); + Group2Sel->LineEdit1->setReadOnly( true ); + Group2Sel->LineEdit2->setReadOnly( true ); + + Group1Sel1Spin = new EntityGUI_1Sel1Spin1Check( MainWidget->SkeletonCnt ); + Group1Sel1Spin->GroupBox1->setTitle( tr( "GEOM_SKETCHER_VALUES" ) ); + Group1Sel1Spin->buttonApply->setText( tr( "GEOM_SKETCHER_APPLY" ) ); + Group1Sel1Spin->checkBox->setText( tr( "GEOM_REVERSE" ) ); + Group1Sel1Spin->PushButton1->setIcon( image0 ); + Group1Sel1Spin->buttonUndo->setIcon( image1 ); + Group1Sel1Spin->buttonRedo->setIcon( image2 ); + Group1Sel1Spin->LineEdit1->setReadOnly( true ); + Group1Spin = new EntityGUI_1Spin( MainWidget->SkeletonCnt ); Group1Spin->GroupBox1->setTitle( tr( "GEOM_SKETCHER_VALUES" ) ); Group1Spin->buttonApply->setText( tr( "GEOM_SKETCHER_APPLY" ) ); @@ -166,27 +193,34 @@ EntityGUI_SketcherDlg::EntityGUI_SketcherDlg( GeometryGUI* GUI, QWidget* parent, Group2Spin->buttonUndo->setIcon( image1 ); Group2Spin->buttonRedo->setIcon( image2 ); - Group3Spin = new EntityGUI_3Spin( MainWidget->SkeletonCnt ); + Group3Spin = new EntityGUI_3Spin1Check( MainWidget->SkeletonCnt ); Group3Spin->GroupBox1->setTitle( tr( "GEOM_SKETCHER_VALUES" ) ); Group3Spin->buttonApply->setText( tr( "GEOM_SKETCHER_APPLY" ) ); + Group3Spin->checkBox->setText( tr( "GEOM_REVERSE" ) ); Group3Spin->buttonUndo->setIcon( image1 ); Group3Spin->buttonRedo->setIcon( image2 ); - Group4Spin = new EntityGUI_4Spin( MainWidget->SkeletonCnt ); + Group4Spin = new EntityGUI_4Spin1Check( MainWidget->SkeletonCnt ); Group4Spin->GroupBox1->setTitle( tr( "GEOM_SKETCHER_VALUES" ) ); Group4Spin->buttonApply->setText( tr( "GEOM_SKETCHER_APPLY" ) ); + Group4Spin->checkBox->setText( tr( "GEOM_REVERSE" ) ); Group4Spin->buttonUndo->setIcon( image1 ); Group4Spin->buttonRedo->setIcon( image2 ); + //myErrLabel = new QLabel( MainWidget->DestCnt ); + QGridLayout* DestCntLayout = new QGridLayout( MainWidget->DestCnt ); DestCntLayout->setMargin( 0 ); DestCntLayout->setSpacing( 6 ); - DestCntLayout->addWidget( GroupPt, 0, 0, 1, 2 ); - DestCntLayout->addWidget( GroupD1, 1, 0 ); - DestCntLayout->addWidget( GroupD2, 1, 1 ); + DestCntLayout->addWidget( GroupPt, 0, 0 ); + DestCntLayout->addWidget( GroupPt2, 0, 1 ); + DestCntLayout->addWidget( GroupD1, 0, 0 ); + DestCntLayout->addWidget( GroupD2, 0, 1 ); QVBoxLayout* SkeletonCntlayout = new QVBoxLayout( MainWidget->SkeletonCnt ); SkeletonCntlayout->setMargin( 0 ); SkeletonCntlayout->setSpacing( 6 ); SkeletonCntlayout->addWidget( Group1Sel, 0, 0 ); + SkeletonCntlayout->addWidget( Group2Sel, 0, 0 ); + SkeletonCntlayout->addWidget( Group1Sel1Spin, 0, 0 ); SkeletonCntlayout->addWidget( Group1Spin, 0, 0 ); SkeletonCntlayout->addWidget( Group2Spin, 0, 0 ); SkeletonCntlayout->addWidget( Group3Spin, 0, 0 ); @@ -206,6 +240,12 @@ EntityGUI_SketcherDlg::EntityGUI_SketcherDlg( GeometryGUI* GUI, QWidget* parent, connect( Group1Sel->buttonApply, SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) ); connect( Group1Sel->buttonUndo, SIGNAL( clicked() ), this, SLOT( ClickOnUndo() ) ); connect( Group1Sel->buttonRedo, SIGNAL( clicked() ), this, SLOT( ClickOnRedo() ) ); + connect( Group2Sel->buttonApply, SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) ); + connect( Group2Sel->buttonUndo, SIGNAL( clicked() ), this, SLOT( ClickOnUndo() ) ); + connect( Group2Sel->buttonRedo, SIGNAL( clicked() ), this, SLOT( ClickOnRedo() ) ); + connect( Group1Sel1Spin->buttonApply, SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) ); + connect( Group1Sel1Spin->buttonUndo, SIGNAL( clicked() ), this, SLOT( ClickOnUndo() ) ); + connect( Group1Sel1Spin->buttonRedo, SIGNAL( clicked() ), this, SLOT( ClickOnRedo() ) ); connect( Group1Spin->buttonApply, SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) ); connect( Group1Spin->buttonUndo, SIGNAL( clicked() ), this, SLOT( ClickOnUndo() ) ); connect( Group1Spin->buttonRedo, SIGNAL( clicked() ), this, SLOT( ClickOnRedo() ) ); @@ -222,12 +262,22 @@ EntityGUI_SketcherDlg::EntityGUI_SketcherDlg( GeometryGUI* GUI, QWidget* parent, connect( MainWidget->ButtonGroup, SIGNAL( buttonClicked( int ) ), this, SLOT( TypeClicked( int ) ) ); connect( ButtonGroup, SIGNAL( buttonClicked( int ) ), this, SLOT( DestClicked( int ) ) ); connect( GroupPt->ButtonGroup, SIGNAL( buttonClicked( int ) ), this, SLOT( PointClicked( int ) ) ); + connect( GroupPt2->ButtonGroup, SIGNAL( buttonClicked( int ) ), this, SLOT( Point2Clicked( int ) ) ); connect( GroupD1->ButtonGroup, SIGNAL( buttonClicked( int ) ), this, SLOT( Dir1Clicked( int ) ) ); connect( GroupD2->ButtonGroup, SIGNAL( buttonClicked( int ) ), this, SLOT( Dir2Clicked( int ) )); connect( Group1Sel->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); connect( Group1Sel->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + connect( Group2Sel->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); + connect( Group2Sel->LineEdit2, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); + connect( Group2Sel->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + connect( Group2Sel->PushButton2, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + + connect( Group1Sel1Spin->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); + connect( Group1Sel1Spin->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + connect( Group1Sel1Spin->SpinBox_DX, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) ); + connect( Group1Spin->SpinBox_DX, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) ); connect( Group2Spin->SpinBox_DX, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) ); connect( Group2Spin->SpinBox_DY, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) ); @@ -239,6 +289,11 @@ EntityGUI_SketcherDlg::EntityGUI_SketcherDlg( GeometryGUI* GUI, QWidget* parent, connect( Group4Spin->SpinBox_DZ, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) ); connect( Group4Spin->SpinBox_DS, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) ); + connect( Group3Spin->checkBox, SIGNAL( stateChanged( int ) ), this, SLOT( CheckBoxClicked( int ) ) ); + connect( Group4Spin->checkBox, SIGNAL( stateChanged( int ) ), this, SLOT( CheckBoxClicked( int ) ) ); + connect( Group2Sel->checkBox, SIGNAL( stateChanged( int ) ), this, SLOT( CheckBoxClicked( int ) ) ); + connect( Group1Sel1Spin->checkBox, SIGNAL( stateChanged( int ) ), this, SLOT( CheckBoxClicked( int ) ) ); + connect( ComboBox1, SIGNAL( activated( int ) ), this, SLOT( SelectionIntoArgument() ) ); connect( planeButton, SIGNAL( clicked() ), this, SLOT( ActivateLocalCS() ) ); @@ -249,6 +304,7 @@ EntityGUI_SketcherDlg::EntityGUI_SketcherDlg( GeometryGUI* GUI, QWidget* parent, // install event filter on spin-boxes to provide Apply action on Return pressed Group1Spin->SpinBox_DX->installEventFilter(this); + Group1Sel1Spin->SpinBox_DX->installEventFilter(this); Group2Spin->SpinBox_DX->installEventFilter(this); Group2Spin->SpinBox_DY->installEventFilter(this); Group3Spin->SpinBox_DX->installEventFilter(this); @@ -285,6 +341,9 @@ bool EntityGUI_SketcherDlg::eventFilter (QObject* object, QEvent* event) if (object == Group1Spin->SpinBox_DX) { Group1Spin->buttonApply->animateClick(); return true; + } else if (object == Group1Sel1Spin->SpinBox_DX) { + Group1Sel1Spin->buttonApply->animateClick(); + return true; } else if (object == Group2Spin->SpinBox_DX || object == Group2Spin->SpinBox_DY) { Group2Spin->buttonApply->animateClick(); @@ -324,6 +383,8 @@ void EntityGUI_SketcherDlg::Init() mySketchState = FIRST_POINT; globalSelection( GEOM_POINT ); + myCheckFlag = 0; + myLastX1 = 0.0; myLastY1 = 0.0; myLastX2 = 0.0; @@ -335,6 +396,7 @@ void EntityGUI_SketcherDlg::Init() double step = SUIT_Session::session()->resourceMgr()->doubleValue( "Geometry", "SettingsGeomStep", 100.0 ); /* min, max, step and decimals for spin boxes */ + initSpinBox( Group1Sel1Spin->SpinBox_DX, COORD_MIN, COORD_MAX, step, "length_precision" ); initSpinBox( Group1Spin->SpinBox_DX, COORD_MIN, COORD_MAX, step, "length_precision" ); initSpinBox( Group2Spin->SpinBox_DX, COORD_MIN, COORD_MAX, step, "length_precision" ); initSpinBox( Group2Spin->SpinBox_DY, COORD_MIN, COORD_MAX, step, "length_precision" ); @@ -372,8 +434,11 @@ void EntityGUI_SketcherDlg::Init() void EntityGUI_SketcherDlg::InitClick() { disconnect( myGeometryGUI->getApp()->selectionMgr(), 0, this, 0 ); + myCheckFlag = 0; Group1Sel->hide(); + Group2Sel->hide(); + Group1Sel1Spin->hide(); Group1Spin->hide(); Group2Spin->hide(); Group3Spin->hide(); @@ -389,16 +454,18 @@ void EntityGUI_SketcherDlg::TypeClicked( int constructorId ) { myConstructorId = constructorId; if ( myConstructorId == 0 ) { // SEGMENT + GroupPt2->setEnabled( false ); GroupD2->setEnabled( true ); MainWidget->RB_Dest1->setEnabled( true ); MainWidget->RB_Dest1->setChecked( true ); DestClicked( 1 ); } else if ( myConstructorId == 1 ) { // ARC + GroupPt2->setEnabled( true ); GroupD2->setEnabled( false ); MainWidget->RB_Dest1->setEnabled( true ); - MainWidget->RB_Dest2->setChecked( true ); - DestClicked( 0 ); + MainWidget->RB_Dest1->setChecked( true ); + DestClicked( 1 ); } } @@ -410,6 +477,7 @@ void EntityGUI_SketcherDlg::TypeClicked( int constructorId ) void EntityGUI_SketcherDlg::DestClicked( int constructorId ) { GroupPt->hide(); + GroupPt2->hide(); GroupD1->hide(); GroupD2->hide(); @@ -417,6 +485,9 @@ void EntityGUI_SketcherDlg::DestClicked( int constructorId ) // Point GroupPt->RB_Point1->setChecked( true ); GroupPt->show(); + GroupPt2->show(); + Group3Spin->checkBox->show(); + Group4Spin->checkBox->show(); PointClicked( 1 ); // XY } else if ( constructorId == 0 ) { @@ -424,24 +495,37 @@ void EntityGUI_SketcherDlg::DestClicked( int constructorId ) GroupD1->RB_Dir11->setChecked( true ); GroupD1->show(); GroupD2->show(); + Group3Spin->checkBox->hide(); + Group4Spin->checkBox->hide(); Dir1Clicked( 2 ); // Angle } } - //================================================================================= // function : PointClicked() // purpose : Radio button management //================================================================================= void EntityGUI_SketcherDlg::PointClicked( int constructorId ) +{ + myConstructorPntId = constructorId; + GroupPt2->RB_Point1->setChecked( true ); + GroupPt->RB_Point3->setEnabled( true ); + Point2Clicked( 1 ); +} + +//================================================================================= +// function : Point2Clicked() +// purpose : Radio button management +//================================================================================= +void EntityGUI_SketcherDlg::Point2Clicked( int constructorId ) { InitClick(); // Get setting of step value from file configuration double step = SUIT_Session::session()->resourceMgr()->doubleValue( "Geometry", "SettingsGeomStep", 100.0 ); - if ( (myConstructorId == 0) || (myConstructorId == 1) ) { // SEGMENT OR ARC - if ( constructorId == 1 ) { // XY + if ( myConstructorPntId == 1 ) { // XY + if ( constructorId == 1 ){ // No additional parameter mySketchType = PT_ABS; initSpinBox( Group2Spin->SpinBox_DX, COORD_MIN, COORD_MAX, step, "length_precision" ); initSpinBox( Group2Spin->SpinBox_DY, COORD_MIN, COORD_MAX, step, "length_precision" ); @@ -456,7 +540,52 @@ void EntityGUI_SketcherDlg::PointClicked( int constructorId ) GEOMBase_Helper::displayPreview( false, true, true, myLineWidth ); } - else if ( constructorId == 0 ) { // DXDY + else if ( constructorId == 0 ){ // Point + radius + mySketchType = PT_ABS_RADIUS; + initSpinBox( Group3Spin->SpinBox_DX, COORD_MIN, COORD_MAX, step, "length_precision" ); + initSpinBox( Group3Spin->SpinBox_DY, COORD_MIN, COORD_MAX, step, "length_precision" ); + initSpinBox( Group3Spin->SpinBox_DZ, COORD_MIN, COORD_MAX, step/10.0, "length_precision" ); + Group3Spin->TextLabel1->setText( tr( "GEOM_SKETCHER_X2" ) ); + Group3Spin->TextLabel2->setText( tr( "GEOM_SKETCHER_Y2" ) ); + Group3Spin->TextLabel3->setText( tr( "GEOM_SKETCHER_RADIUS2" ) ); + myDX = 0.0; + Group3Spin->SpinBox_DX->setValue( myDX ); + myDY = 0.0; + Group3Spin->SpinBox_DY->setValue( myDY ); + myRadius=0.0; + Group3Spin->SpinBox_DZ->setValue( myRadius ); + Group3Spin->show(); + Group3Spin->buttonApply->setFocus(); + + GEOMBase_Helper::displayPreview( false, true, true, myLineWidth ); + } + else if ( constructorId == 2 ){ // Point + center + mySketchType = PT_ABS_CENTER; + initSpinBox( Group4Spin->SpinBox_DX, COORD_MIN, COORD_MAX, step, "length_precision" ); + initSpinBox( Group4Spin->SpinBox_DY, COORD_MIN, COORD_MAX, step, "length_precision" ); + initSpinBox( Group4Spin->SpinBox_DZ, COORD_MIN, COORD_MAX, step, "length_precision" ); + initSpinBox( Group4Spin->SpinBox_DS, COORD_MIN, COORD_MAX, step, "length_precision" ); + Group4Spin->TextLabel1->setText( tr( "GEOM_SKETCHER_X2" ) ); + Group4Spin->TextLabel2->setText( tr( "GEOM_SKETCHER_Y2" ) ); + Group4Spin->TextLabel3->setText( tr( "GEOM_SKETCHER_CENTER_X" ) ); + Group4Spin->TextLabel4->setText( tr( "GEOM_SKETCHER_CENTER_Y" ) ); + myDX = 0.0; + Group4Spin->SpinBox_DX->setValue( myDX ); + myDY = 0.0; + Group4Spin->SpinBox_DY->setValue( myDY ); + myXc = 0.0; + Group4Spin->SpinBox_DZ->setValue( myXc ); + myYc = 0.0; + Group4Spin->SpinBox_DS->setValue( myYc ); + Group4Spin->show(); + Group4Spin->buttonApply->setFocus(); + + GEOMBase_Helper::displayPreview( false, true, true, myLineWidth ); + } + + } + else if ( myConstructorPntId == 0 ) { // DXDY + if ( constructorId == 1 ){ // No additional parameter mySketchType = PT_RELATIVE; initSpinBox( Group2Spin->SpinBox_DX, COORD_MIN, COORD_MAX, step, "length_precision" ); initSpinBox( Group2Spin->SpinBox_DY, COORD_MIN, COORD_MAX, step, "length_precision" ); @@ -471,17 +600,90 @@ void EntityGUI_SketcherDlg::PointClicked( int constructorId ) GEOMBase_Helper::displayPreview( false, true, true, myLineWidth ); } - else if ( constructorId == 2 ) { // Selection + else if ( constructorId == 0 ){ // Point + radius + mySketchType = PT_REL_RADIUS; + initSpinBox( Group3Spin->SpinBox_DX, COORD_MIN, COORD_MAX, step, "length_precision" ); + initSpinBox( Group3Spin->SpinBox_DY, COORD_MIN, COORD_MAX, step, "length_precision" ); + initSpinBox( Group3Spin->SpinBox_DZ, COORD_MIN, COORD_MAX, step/10.0, "length_precision" ); + Group3Spin->TextLabel1->setText( tr( "GEOM_SKETCHER_DX2" ) ); + Group3Spin->TextLabel2->setText( tr( "GEOM_SKETCHER_DY2" ) ); + Group3Spin->TextLabel3->setText( tr( "GEOM_SKETCHER_RADIUS2" ) ); + myDX = 10.0; + Group3Spin->SpinBox_DX->setValue( myDX ); + myDY = 0.0; + Group3Spin->SpinBox_DY->setValue( myDY ); + myRadius=5.0; + Group3Spin->SpinBox_DZ->setValue( myRadius ); + Group3Spin->show(); + Group3Spin->buttonApply->setFocus(); + + GEOMBase_Helper::displayPreview( false, true, true, myLineWidth ); + } + else if ( constructorId == 2 ){ // Point + center + mySketchType = PT_REL_CENTER; + initSpinBox( Group4Spin->SpinBox_DX, COORD_MIN, COORD_MAX, step, "length_precision" ); + initSpinBox( Group4Spin->SpinBox_DY, COORD_MIN, COORD_MAX, step, "length_precision" ); + initSpinBox( Group4Spin->SpinBox_DZ, COORD_MIN, COORD_MAX, step, "length_precision" ); + initSpinBox( Group4Spin->SpinBox_DS, COORD_MIN, COORD_MAX, step, "length_precision" ); + Group4Spin->TextLabel1->setText( tr( "GEOM_SKETCHER_DX2" ) ); + Group4Spin->TextLabel2->setText( tr( "GEOM_SKETCHER_DY2" ) ); + Group4Spin->TextLabel3->setText( tr( "GEOM_SKETCHER_CENTER_DX" ) ); + Group4Spin->TextLabel4->setText( tr( "GEOM_SKETCHER_CENTER_DY" ) ); + myDX = 0.0; + Group4Spin->SpinBox_DX->setValue( myDX ); + myDY = 0.0; + Group4Spin->SpinBox_DY->setValue( myDY ); + myDXc = 0.0; + Group4Spin->SpinBox_DZ->setValue( myDXc ); + myDYc = 0.0; + Group4Spin->SpinBox_DS->setValue( myDYc ); + Group4Spin->show(); + Group4Spin->buttonApply->setFocus(); + + GEOMBase_Helper::displayPreview( false, true, true, myLineWidth ); + } + + } + else if ( myConstructorPntId == 2 ) { // Selection + if ( constructorId == 1 ){ // No additional parameter mySketchType = PT_SEL; myEditCurrentArgument = Group1Sel->LineEdit1; + Group1Sel->TextLabel1->setText( tr( "GEOM_SKETCHER_END_POINT2" ) ); Group1Sel->show(); Group1Sel->buttonApply->setFocus(); SelectionIntoArgument(); } + else if ( constructorId == 0 ){ // Point + radius + mySketchType = PT_SEL_RADIUS; + myEditCurrentArgument = Group1Sel1Spin->LineEdit1; + initSpinBox( Group1Sel1Spin->SpinBox_DX, COORD_MIN, COORD_MAX, step/10.0, "length_precision" ); + Group1Sel1Spin->TextLabel1->setText( tr( "GEOM_SKETCHER_END_POINT2" ) ); + Group1Sel1Spin->TextLabel2->setText( tr( "GEOM_SKETCHER_RADIUS2" ) ); + myRadius=0.0; + Group1Sel1Spin->SpinBox_DX->setValue( myRadius ); + + Group1Sel1Spin->show(); + Group1Sel1Spin->buttonApply->setFocus(); + SelectionIntoArgument(); + } + else if ( constructorId == 2 ){ // Point + center + mySketchType = PT_SEL_CENTER; + myEditCurrentArgument = Group2Sel->LineEdit1; + Group2Sel->TextLabel1->setText( tr( "GEOM_SKETCHER_END_POINT2" ) ); + Group2Sel->TextLabel2->setText( tr( "GEOM_SKETCHER_CENTER2" ) ); + Group2Sel->LineEdit1->setEnabled(true); + Group2Sel->PushButton1->setDown(true); + Group2Sel->LineEdit2->setEnabled(false); + Group2Sel->PushButton2->setDown(false); + Group2Sel->show(); + Group2Sel->buttonApply->setFocus(); + SelectionIntoArgument(); + } - connect( myGeometryGUI->getApp()->selectionMgr(), - SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ); } + connect( myGeometryGUI->getApp()->selectionMgr(), + SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ); + } @@ -665,6 +867,10 @@ void EntityGUI_SketcherDlg::Dir2Clicked( int constructorId ) Group4Spin->TextLabel2->setText( tr( "GEOM_SKETCHER_VY2" ) ); Group4Spin->TextLabel3->setText( tr( "GEOM_SKETCHER_RADIUS2" ) ); Group4Spin->TextLabel4->setText( tr( "GEOM_SKETCHER_ANGLE2" ) ); + initSpinBox( Group4Spin->SpinBox_DZ, COORD_MIN, COORD_MAX, step, "length_precision" ); + initSpinBox( Group4Spin->SpinBox_DX, COORD_MIN, COORD_MAX, 0.1, "length_precision" ); + initSpinBox( Group4Spin->SpinBox_DY, COORD_MIN, COORD_MAX, 0.1, "length_precision" ); + initSpinBox( Group4Spin->SpinBox_DS, COORD_MIN, COORD_MAX, 5., "length_precision" ); myDX = 0.0; Group4Spin->SpinBox_DX->setValue( myDX ); myDY = 0.0; @@ -682,6 +888,17 @@ void EntityGUI_SketcherDlg::Dir2Clicked( int constructorId ) GEOMBase_Helper::displayPreview( false, true, true, myLineWidth ); } +//================================================================================= +// function : CheckBoxClicked() +// purpose : CheckBox management +//================================================================================= +void EntityGUI_SketcherDlg::CheckBoxClicked(int State) +{ + myCheckFlag = State; + + GEOMBase_Helper::displayPreview( false, true, true, myLineWidth ); +} + //================================================================================= // function : ClickOnCancel() @@ -726,7 +943,9 @@ void EntityGUI_SketcherDlg::ClickOnEnd() Group2Spin->buttonApply->isEnabled() && Group2Spin->isVisible() || Group3Spin->buttonApply->isEnabled() && Group3Spin->isVisible() || Group4Spin->buttonApply->isEnabled() && Group4Spin->isVisible() || - Group1Sel ->buttonApply->isEnabled() && Group1Sel->isVisible() ) { + Group1Sel->buttonApply->isEnabled() && Group1Sel->isVisible() || + Group2Sel->buttonApply->isEnabled() && Group2Sel->isVisible() || + Group1Sel1Spin->buttonApply->isEnabled() && Group1Sel1Spin->isVisible() ) { ClickOnApply(); } myIsAllAdded = true; @@ -772,6 +991,10 @@ bool EntityGUI_SketcherDlg::ClickOnApply() (Group1Spin->SpinBox_DX)->setFocus(); (Group1Spin->SpinBox_DX)->selectAll(); } + else if ( sender() == Group1Sel1Spin->buttonApply ) { + (Group1Sel1Spin->SpinBox_DX)->setFocus(); + (Group1Sel1Spin->SpinBox_DX)->selectAll(); + } else if ( sender() == Group2Spin->buttonApply ) { (Group2Spin->SpinBox_DX)->setFocus(); (Group2Spin->SpinBox_DX)->selectAll(); @@ -874,6 +1097,8 @@ void EntityGUI_SketcherDlg::ClickOnRedo() void EntityGUI_SketcherDlg::setEnabledUndo( bool value ) { Group1Sel->buttonUndo->setEnabled( value ); + Group2Sel->buttonUndo->setEnabled( value ); + Group1Sel1Spin->buttonUndo->setEnabled( value ); Group1Spin->buttonUndo->setEnabled( value ); Group2Spin->buttonUndo->setEnabled( value ); Group3Spin->buttonUndo->setEnabled( value ); @@ -887,6 +1112,8 @@ void EntityGUI_SketcherDlg::setEnabledUndo( bool value ) void EntityGUI_SketcherDlg::setEnabledRedo( bool value ) { Group1Sel->buttonRedo->setEnabled( value ); + Group2Sel->buttonRedo->setEnabled( value ); + Group1Sel1Spin->buttonRedo->setEnabled( value ); Group1Spin->buttonRedo->setEnabled( value ); Group2Spin->buttonRedo->setEnabled( value ); Group3Spin->buttonRedo->setEnabled( value ); @@ -960,6 +1187,144 @@ void EntityGUI_SketcherDlg::SelectionIntoArgument() } } + if (nbSel == 1 && myEditCurrentArgument == Group1Sel1Spin->LineEdit1) { + Standard_Boolean aRes = Standard_False; + GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), aRes); + if (!CORBA::is_nil(aSelectedObject) && aRes) { + TopoDS_Shape aShape; + if (GEOMBase::GetShape(aSelectedObject, aShape, TopAbs_VERTEX)) { + gp_Trsf aTrans; + gp_Ax3 aWPlane = GetActiveLocalCS(); + + aTrans.SetTransformation(aWPlane); + BRepBuilderAPI_Transform aTransformation (aShape, aTrans, Standard_False); + aShape = aTransformation.Shape(); + + gp_Pnt aPnt; + if ( GEOMBase::VertexToPoint( aShape, aPnt ) ) { + myX = aPnt.X(); + myY = aPnt.Y(); + Group1Sel1Spin->LineEdit1->setText( GEOMBase::GetName( aSelectedObject ) ); + if( Group3Spin->isVisible() && mySketchType == PT_ABS ) { + disconnect( Group3Spin->SpinBox_DX, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) ); + disconnect( Group3Spin->SpinBox_DY, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) ); + Group3Spin->SpinBox_DX->setValue(myX); + Group3Spin->SpinBox_DY->setValue(myY); + connect( Group3Spin->SpinBox_DX, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) ); + connect( Group3Spin->SpinBox_DY, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) ); + } else if ( Group3Spin->isVisible() && mySketchType == PT_RELATIVE ) { + if ( myLastX1 && myLastY1 ) { + Group3Spin->SpinBox_DX->setValue(myX - myLastX1); + Group3Spin->SpinBox_DY->setValue(myY - myLastY1); + } else { + if ( mySketchState != FIRST_POINT ) { + Group3Spin->SpinBox_DX->setValue(myX - tmpX); + Group3Spin->SpinBox_DY->setValue(myY - tmpY); + } else { + Group3Spin->SpinBox_DX->setValue(myX); + Group3Spin->SpinBox_DY->setValue(myY); + } + } + } + } + } + } + } + + if (nbSel == 1 && myEditCurrentArgument == Group2Sel->LineEdit1) { + Standard_Boolean aRes = Standard_False; + GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), aRes); + if (!CORBA::is_nil(aSelectedObject) && aRes) { + TopoDS_Shape aShape; + if (GEOMBase::GetShape(aSelectedObject, aShape, TopAbs_VERTEX)) { + gp_Trsf aTrans; + gp_Ax3 aWPlane = GetActiveLocalCS(); + + aTrans.SetTransformation(aWPlane); + BRepBuilderAPI_Transform aTransformation (aShape, aTrans, Standard_False); + aShape = aTransformation.Shape(); + + gp_Pnt aPnt; + if ( GEOMBase::VertexToPoint( aShape, aPnt ) ) { + myX = aPnt.X(); + myY = aPnt.Y(); + Group2Sel->LineEdit1->setText( GEOMBase::GetName( aSelectedObject ) ); + if( Group4Spin->isVisible() && mySketchType == PT_ABS ) { + disconnect( Group4Spin->SpinBox_DX, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) ); + disconnect( Group4Spin->SpinBox_DY, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) ); + Group4Spin->SpinBox_DX->setValue(myX); + Group4Spin->SpinBox_DY->setValue(myY); + connect( Group4Spin->SpinBox_DX, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) ); + connect( Group4Spin->SpinBox_DY, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) ); + } else if ( Group4Spin->isVisible() && mySketchType == PT_RELATIVE ) { + if ( myLastX1 && myLastY1 ) { + Group4Spin->SpinBox_DX->setValue(myX - myLastX1); + Group4Spin->SpinBox_DY->setValue(myY - myLastY1); + } else { + if ( mySketchState != FIRST_POINT ) { + Group4Spin->SpinBox_DX->setValue(myX - tmpX); + Group4Spin->SpinBox_DY->setValue(myY - tmpY); + } else { + Group4Spin->SpinBox_DX->setValue(myX); + Group4Spin->SpinBox_DY->setValue(myY); + } + } + } + } + } + } + } + + if (nbSel == 1 && myEditCurrentArgument == Group2Sel->LineEdit2) { + if (!Group2Sel->LineEdit1->text().isEmpty()){ //Check wether or not Linedit2 has been modified + myX=tmpX; // If yes keep the old values of X and Y + myY=tmpY; + } + Standard_Boolean aRes = Standard_False; + GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), aRes); + if (!CORBA::is_nil(aSelectedObject) && aRes) { + TopoDS_Shape aShape; + if (GEOMBase::GetShape(aSelectedObject, aShape, TopAbs_VERTEX)) { + gp_Trsf aTrans; + gp_Ax3 aWPlane = GetActiveLocalCS(); + + aTrans.SetTransformation(aWPlane); + BRepBuilderAPI_Transform aTransformation (aShape, aTrans, Standard_False); + aShape = aTransformation.Shape(); + + gp_Pnt aPnt; + if ( GEOMBase::VertexToPoint( aShape, aPnt ) ) { + myXc = aPnt.X(); + myYc = aPnt.Y(); + Group2Sel->LineEdit2->setText( GEOMBase::GetName( aSelectedObject ) ); + if( Group4Spin->isVisible() && mySketchType == PT_ABS ) { + disconnect( Group4Spin->SpinBox_DZ, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) ); + disconnect( Group4Spin->SpinBox_DS, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) ); + Group4Spin->SpinBox_DZ->setValue(myXc); + Group4Spin->SpinBox_DS->setValue(myYc); + connect( Group4Spin->SpinBox_DZ, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) ); + connect( Group4Spin->SpinBox_DS, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) ); + } else if ( Group4Spin->isVisible() && mySketchType == PT_RELATIVE ) { + if ( myLastX1 && myLastY1 ) { + Group4Spin->SpinBox_DZ->setValue(myXc - myLastX1); + Group4Spin->SpinBox_DS->setValue(myYc - myLastY1); + } else { + if ( mySketchState != FIRST_POINT ) { + Group4Spin->SpinBox_DZ->setValue(myXc - tmpX); + Group4Spin->SpinBox_DS->setValue(myYc - tmpY); + } else { + Group4Spin->SpinBox_DZ->setValue(myXc); + Group4Spin->SpinBox_DS->setValue(myYc); + } + } + } + } + } + } + } + + + GEOMBase_Helper::displayPreview( false, true, true, myLineWidth ); } @@ -974,6 +1339,26 @@ void EntityGUI_SketcherDlg::SetEditCurrentArgument() myEditCurrentArgument = Group1Sel->LineEdit1; myEditCurrentArgument->setFocus(); } + else if ( sender() == Group1Sel1Spin->PushButton1 ) { + myEditCurrentArgument = Group1Sel1Spin->LineEdit1; + myEditCurrentArgument->setFocus(); + } + else if ( sender() == Group2Sel->PushButton1 ) { + myEditCurrentArgument = Group2Sel->LineEdit1; + Group2Sel->PushButton2->setDown(false); + Group2Sel->PushButton1->setDown(true); + Group2Sel->LineEdit2->setEnabled(false); + Group2Sel->LineEdit1->setEnabled(true); + // myEditCurrentArgument->setFocus(); + } + else if ( sender() == Group2Sel->PushButton2 ) { + myEditCurrentArgument = Group2Sel->LineEdit2; + Group2Sel->PushButton1->setDown(false); + Group2Sel->PushButton2->setDown(true); + Group2Sel->LineEdit1->setEnabled(false); + Group2Sel->LineEdit2->setEnabled(true); + // myEditCurrentArgument->setFocus(); + } SelectionIntoArgument(); } @@ -984,22 +1369,27 @@ void EntityGUI_SketcherDlg::SetEditCurrentArgument() //================================================================================= void EntityGUI_SketcherDlg::LineEditReturnPressed() { - if ( sender() == Group1Sel->LineEdit1 ) { + if ( sender() == Group1Sel->LineEdit1 ) myEditCurrentArgument = Group1Sel->LineEdit1; + else if ( sender() == Group1Sel1Spin->LineEdit1 ) + myEditCurrentArgument = Group1Sel1Spin->LineEdit1; + else if ( sender() == Group2Sel->LineEdit1 ) + myEditCurrentArgument = Group2Sel->LineEdit1; + else if ( sender() == Group2Sel->LineEdit2 ) + myEditCurrentArgument = Group2Sel->LineEdit2; + + /* User name of object input management */ + /* If successfull the selection is changed and signal emitted... */ + /* so SelectionIntoArgument() is automatically called. */ + const QString objectUserName = myEditCurrentArgument->text(); + QWidget* thisWidget = (QWidget*)this; - /* User name of object input management */ - /* If successfull the selection is changed and signal emitted... */ - /* so SelectionIntoArgument() is automatically called. */ - const QString objectUserName = myEditCurrentArgument->text(); - QWidget* thisWidget = (QWidget*)this; - - LightApp_SelectionMgr* aSelMgr = myGeometryGUI->getApp()->selectionMgr(); - SALOME_ListIO aSelList; - aSelMgr->selectedObjects(aSelList); + LightApp_SelectionMgr* aSelMgr = myGeometryGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); - if (GEOMBase::SelectionByNameInDialogs(thisWidget, objectUserName, aSelList)) - myEditCurrentArgument->setText( objectUserName ); - } + if (GEOMBase::SelectionByNameInDialogs(thisWidget, objectUserName, aSelList)) + myEditCurrentArgument->setText( objectUserName ); } @@ -1033,9 +1423,26 @@ void EntityGUI_SketcherDlg::ActivateThisDialog() //myGeometryGUI->SetState( 0 ); globalSelection( GEOM_POINT ); - + myEditCurrentArgument = Group1Sel->LineEdit1; myEditCurrentArgument->setFocus(); + + if ( sender() == Group1Sel->LineEdit1 ) { + myEditCurrentArgument = Group1Sel->LineEdit1; + myEditCurrentArgument->setFocus(); + } + else if ( sender() == Group1Sel1Spin->LineEdit1 ) { + myEditCurrentArgument = Group1Sel1Spin->LineEdit1; + myEditCurrentArgument->setFocus(); + } + else if ( sender() == Group2Sel->LineEdit1 ) { + myEditCurrentArgument = Group2Sel->LineEdit1; + myEditCurrentArgument->setFocus(); + } + else if ( sender() == Group2Sel->LineEdit2 ) { + myEditCurrentArgument = Group2Sel->LineEdit2; + myEditCurrentArgument->setFocus(); + } GEOMBase_Helper::displayPreview( false, true, true, myLineWidth ); } @@ -1072,8 +1479,12 @@ void EntityGUI_SketcherDlg::closeEvent( QCloseEvent* e ) void EntityGUI_SketcherDlg::ValueChangedInSpinBox( double newValue ) { QObject* send = (QObject*)sender(); - Standard_Real vx, vy, vz, vs; - vx = vy = vz = vs = 0.0; + Standard_Real vx, vy, vz, vs, minRad; + vx = vy = vz = vs = minRad =0.0; + + SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr(); + int aPrecision = resMgr->integerValue( "Geometry", "length_precision", 6 ); + double LastDecimal = 0.0; QString vxStr, vyStr, vzStr, vsStr; @@ -1084,6 +1495,9 @@ void EntityGUI_SketcherDlg::ValueChangedInSpinBox( double newValue ) if ( send == Group1Spin->SpinBox_DX ) { vx = newValue; vxStr = newValueStr; } + else if ( send == Group1Sel1Spin->SpinBox_DX ) { + vx = newValue; vxStr = newValueStr; + } else if ( send == Group2Spin->SpinBox_DX ) { vx = newValue; vxStr = newValueStr; vy = Group2Spin->SpinBox_DY->value(); vyStr = Group2Spin->SpinBox_DY->text(); @@ -1095,12 +1509,42 @@ void EntityGUI_SketcherDlg::ValueChangedInSpinBox( double newValue ) else if ( send == Group3Spin->SpinBox_DX ) { vx = newValue; vxStr = newValueStr; vy = Group3Spin->SpinBox_DY->value(); vyStr = Group3Spin->SpinBox_DY->text(); + vz = Group3Spin->SpinBox_DZ->value(); + if ( (mySketchType == PT_REL_RADIUS || mySketchType == PT_ABS_RADIUS) && (vx != 0 || vy != 0) ) { + minRad = 0.5 * Sqrt(vx * vx + vy * vy); //Computation of the minimum acceptable radius for the arc calculation + if (aPrecision >= 0) // 'f' format in the QString + LastDecimal = aPrecision; + else // 'g' format in the Qstring + LastDecimal = qAbs( aPrecision ) - ceil( log10(minRad) ); + minRad = ceil(pow(10,LastDecimal) * minRad) / pow(10,LastDecimal); // Rounded up at the last allowed decimal place + if ( Abs(vz) < minRad){ + if (vz < 0.0) + Group3Spin->SpinBox_DZ->setValue( - minRad ); + else + Group3Spin->SpinBox_DZ->setValue( minRad ); + } + } vz = Group3Spin->SpinBox_DZ->value(); vzStr = Group3Spin->SpinBox_DZ->text(); } else if ( send == Group3Spin->SpinBox_DY ) { vx = Group3Spin->SpinBox_DX->value(); vxStr = Group3Spin->SpinBox_DX->text(); vy = newValue; vyStr = newValueStr; vz = Group3Spin->SpinBox_DZ->value(); vzStr = Group3Spin->SpinBox_DZ->text(); + if ( (mySketchType == PT_REL_RADIUS || mySketchType == PT_ABS_RADIUS) && (vx != 0 || vy != 0)){ + minRad = 0.5 * Sqrt(vx * vx + vy * vy); //Computation of the minimum acceptable radius for the arc calculation + if (aPrecision >= 0) // 'f' format in the QString + LastDecimal = aPrecision; + else // 'g' format in the QString + LastDecimal = qAbs( aPrecision ) - ceil( log10(minRad) ); + minRad = ceil(pow(10,LastDecimal) * minRad) / pow(10,LastDecimal); // Rounded up at the last allowed decimal place + if ( Abs(vz) < minRad){ + if (vz < 0.0) + Group3Spin->SpinBox_DZ->setValue( - minRad ); + else + Group3Spin->SpinBox_DZ->setValue( minRad ); + } + } + vz = Group3Spin->SpinBox_DZ->value(); vzStr = Group3Spin->SpinBox_DZ->text(); } else if ( send == Group3Spin->SpinBox_DZ ) { vx = Group3Spin->SpinBox_DX->value(); vxStr = Group3Spin->SpinBox_DX->text(); @@ -1225,7 +1669,47 @@ void EntityGUI_SketcherDlg::ValueChangedInSpinBox( double newValue ) myDY = vy; myDXStr = vxStr; myDYStr = vyStr; - } + } + if ( mySketchType == PT_ABS_RADIUS ) { + myX = vx; + myY = vy; + myRadius=vz; + myXStr = vxStr; + myYStr = vyStr; + myRadiusStr = vzStr; + } + else if ( mySketchType == PT_REL_RADIUS ) { + myDX = vx; + myDY = vy; + myRadius=vz; + myDXStr = vxStr; + myDYStr = vyStr; + myRadiusStr = vzStr; + } + else if ( mySketchType == PT_SEL_RADIUS ) { + myRadius = vx; + myRadiusStr = vxStr; + } + if ( mySketchType == PT_ABS_CENTER ) { + myX = vx; + myY = vy; + myXc = vz; + myYc = vs; + myXStr = vxStr; + myYStr = vyStr; + myXcStr = vzStr; + myYcStr = vsStr; + } + else if ( mySketchType == PT_REL_CENTER ) { + myDX = vx; + myDY = vy; + myDXc = vz; + myDYc = vs; + myDXStr = vxStr; + myDYStr = vyStr; + myDXcStr = vzStr; + myDYcStr = vsStr; + } if ( mySketchType == DIR_ANGLE_LENGTH ) { myAngle = vx; myRadius = vy; @@ -1270,13 +1754,20 @@ QString EntityGUI_SketcherDlg::GetNewCommand( QString& theParameters ) { theParameters.clear(); QString myNewCommand = ":"; + SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr(); + int aPrecision = resMgr->integerValue( "Geometry", "length_precision", 6 ); + int DigNum = qAbs(aPrecision); // options for the format of numbers in myNewCommand + char Format = 'f'; + if ( aPrecision < 0 ) // f --> DigNum is the number of digits after the decimal point + Format = 'g'; // g --> DigNum is the maximum number of significant digits + if ( mySketchState == FIRST_POINT ) { if ( mySketchType == PT_ABS || mySketchType == PT_SEL ) { - myNewCommand = myNewCommand + "F " + QString::number( myX ) + " " + QString::number( myY ); + myNewCommand = myNewCommand + "F " + QString::number( myX, Format, DigNum) + " " + QString::number( myY, Format, DigNum); theParameters = myXStr + ":" + myYStr; } if ( mySketchType == PT_RELATIVE) { - myNewCommand = myNewCommand + "F " + QString::number( myDX ) + " " + QString::number( myDY ); + myNewCommand = myNewCommand + "F " + QString::number( myDX, Format, DigNum ) + " " + QString::number( myDY, Format, DigNum ); theParameters = myDXStr + ":" + myDYStr; } return myNewCommand; @@ -1284,97 +1775,113 @@ QString EntityGUI_SketcherDlg::GetNewCommand( QString& theParameters ) if ( myConstructorId == 0 ) { // SEGMENT if ( mySketchType == PT_ABS || mySketchType == PT_SEL ) { - myNewCommand = myNewCommand + "TT " + QString::number( myX ) + " " + QString::number( myY ); + myNewCommand = myNewCommand + "TT " + QString::number( myX, Format, DigNum) + " " + QString::number( myY, Format, DigNum); theParameters = myXStr + ":" + myYStr; } if ( mySketchType == PT_RELATIVE) { - myNewCommand = myNewCommand + "T " + QString::number( myDX ) + " " + QString::number( myDY ); + myNewCommand = myNewCommand + "T " + QString::number( myDX, Format, DigNum ) + " " + QString::number( myDY, Format, DigNum ); theParameters = myDXStr + ":" + myDYStr; } if ( mySketchType == DIR_ANGLE_LENGTH ) { myNewCommand = myNewCommand + "R " + QString::number( myAngle ); - myNewCommand = myNewCommand + ":" + "L " + QString::number( myLength ); + myNewCommand = myNewCommand + ":" + "L " + QString::number( myLength, Format, DigNum ); theParameters = myAngleStr + ":" + myLengthStr; } if ( mySketchType == DIR_ANGLE_X ) { myNewCommand = myNewCommand + "R " + QString::number( myAngle ); - myNewCommand = myNewCommand + ":" + "IX " + QString::number( myX ); + myNewCommand = myNewCommand + ":" + "IX " + QString::number( myX, Format, DigNum); theParameters = myAngleStr + ":" + myXStr; } if ( mySketchType == DIR_ANGLE_Y ) { myNewCommand = myNewCommand + "R " + QString::number( myAngle ); - myNewCommand = myNewCommand + ":" + "IY " + QString::number( myY ); + myNewCommand = myNewCommand + ":" + "IY " + QString::number( myY, Format, DigNum); theParameters = myAngleStr + ":" + myYStr; } if ( mySketchType == DIR_PER_LENGTH ) { myNewCommand = myNewCommand + "R " + QString::number( 90.0 ); - myNewCommand = myNewCommand + ":" + "L " + QString::number( myLength ); + myNewCommand = myNewCommand + ":" + "L " + QString::number( myLength, Format, DigNum ); theParameters = QString::number( 90.0 ) + ":" + myLengthStr; } if ( mySketchType == DIR_PER_X ) { myNewCommand = myNewCommand + "R " + QString::number( 90.0 ); - myNewCommand = myNewCommand + ":" + "IX " + QString::number( myX ); + myNewCommand = myNewCommand + ":" + "IX " + QString::number( myX, Format, DigNum); theParameters = QString::number( 90.0 ) + ":" + myXStr; } if ( mySketchType == DIR_PER_Y ) { myNewCommand = myNewCommand + "R " + QString::number( 90.0 ); - myNewCommand = myNewCommand + ":" + "IY " + QString::number( myY ); + myNewCommand = myNewCommand + ":" + "IY " + QString::number( myY, Format, DigNum); theParameters = QString::number( 90.0 ) + ":" + myYStr; } if ( mySketchType == DIR_TAN_LENGTH ) { - myNewCommand = myNewCommand + "L " + QString::number( myLength ); + myNewCommand = myNewCommand + "L " + QString::number( myLength, Format, DigNum ); theParameters = myLengthStr; } if ( mySketchType == DIR_TAN_X ) { - myNewCommand = myNewCommand + "IX " + QString::number( myX ); + myNewCommand = myNewCommand + "IX " + QString::number( myX, Format, DigNum); theParameters = myXStr; } if ( mySketchType == DIR_TAN_Y) { - myNewCommand = myNewCommand + "IY " + QString::number(myY); + myNewCommand = myNewCommand + "IY " + QString::number(myY, Format, DigNum); theParameters = myYStr; } if ( mySketchType == DIR_DXDY_LENGTH ) { - myNewCommand = myNewCommand + "D " + QString::number( myDX ) + " " + QString::number( myDY ); - myNewCommand = myNewCommand + ":" + "L " + QString::number( myLength ); + myNewCommand = myNewCommand + "D " + QString::number( myDX, Format, DigNum ) + " " + QString::number( myDY, Format, DigNum ); + myNewCommand = myNewCommand + ":" + "L " + QString::number( myLength, Format, DigNum ); theParameters = myDXStr + ":" + myDYStr + ":" + myLengthStr; } if ( mySketchType == DIR_DXDY_X ) { - myNewCommand = myNewCommand + "D " + QString::number( myDX ) + " " + QString::number( myDY ); - myNewCommand = myNewCommand + ":" + "IX " + QString::number( myX ); + myNewCommand = myNewCommand + "D " + QString::number( myDX, Format, DigNum ) + " " + QString::number( myDY, Format, DigNum ); + myNewCommand = myNewCommand + ":" + "IX " + QString::number( myX, Format, DigNum); theParameters = myDXStr + ":" + myDYStr + ":" + myXStr; } if ( mySketchType == DIR_DXDY_Y ) { - myNewCommand = myNewCommand + "D " + QString::number( myDX ) + " " + QString::number( myDY ); - myNewCommand = myNewCommand + ":" + "IY " + QString::number( myY ); + myNewCommand = myNewCommand + "D " + QString::number( myDX, Format, DigNum ) + " " + QString::number( myDY, Format, DigNum ); + myNewCommand = myNewCommand + ":" + "IY " + QString::number( myY, Format, DigNum); theParameters = myDXStr + ":" + myDYStr + ":" + myYStr; } } else if ( myConstructorId == 1 ) { // ARC if ( mySketchType == PT_ABS || mySketchType == PT_SEL ) { - myNewCommand = myNewCommand + "AA " + QString::number( myX ) + " " + QString::number( myY ); + myNewCommand = myNewCommand + "AA " + QString::number( myX, Format, DigNum) + " " + QString::number( myY, Format, DigNum); theParameters = myXStr + ":" + myYStr; } if ( mySketchType == PT_RELATIVE) { - myNewCommand = myNewCommand + "A " + QString::number( myDX ) + " " + QString::number( myDY ); + myNewCommand = myNewCommand + "A " + QString::number( myDX, Format, DigNum ) + " " + QString::number( myDY, Format, DigNum ); theParameters = myDXStr + ":" + myDYStr; - } + } + if ( mySketchType == PT_ABS_RADIUS || mySketchType == PT_SEL_RADIUS ) { + myNewCommand = myNewCommand + "UU " + QString::number( myX, Format, DigNum) + " " + QString::number( myY, Format, DigNum ) + " " + QString::number( myRadius , Format, DigNum)+ " " + QString::number( myCheckFlag ); + theParameters = myXStr + ":" + myYStr + ":" + myRadiusStr; + } + if ( mySketchType == PT_REL_RADIUS) { + myNewCommand = myNewCommand + "U " + QString::number( myDX, Format, DigNum ) + " " + QString::number( myDY, Format, DigNum ) + " " + QString::number( myRadius, Format, DigNum )+ " " + QString::number( myCheckFlag ); + theParameters = myDXStr + ":" + myDYStr + ":" + myRadiusStr; + } + if ( mySketchType == PT_ABS_CENTER || mySketchType == PT_SEL_CENTER ) { + myNewCommand = myNewCommand + "EE " + QString::number( myX, Format, DigNum) + " " + QString::number( myY, Format, DigNum ) + " " + QString::number( myXc , Format, DigNum) + " " + QString::number( myYc , Format, DigNum)+ " " + QString::number( myCheckFlag ) + " " + QString::number( 0 ); + theParameters = myXStr + ":" + myYStr + ":" + myXcStr+ ":" + myYcStr; + } + if ( mySketchType == PT_REL_CENTER) { + myNewCommand = myNewCommand + "E " + QString::number( myDX, Format, DigNum ) + " " + QString::number( myDY, Format, DigNum ) + " " + QString::number( myDXc, Format, DigNum )+ " " + QString::number( myDYc, Format, DigNum )+ " " + QString::number( myCheckFlag )+ " " + QString::number( 0 ); + theParameters = myDXStr + ":" + myDYStr + ":" + myDXcStr + ":" + myDYcStr ; + } if ( mySketchType == DIR_ANGLE_LENGTH ) { myNewCommand = myNewCommand + "R " + QString::number( myAngle ); - myNewCommand = myNewCommand + ":" + "C " + QString::number( myRadius ) + " " + QString::number( myLength ); + myNewCommand = myNewCommand + ":" + "C " + QString::number( myRadius, Format, DigNum ) + " " + QString::number( myLength, Format, DigNum ); theParameters = myAngleStr + ":" + myRadiusStr + ":" + myLengthStr; } if ( mySketchType == DIR_PER_LENGTH ) { myNewCommand = myNewCommand + "R " + QString::number( 90.0 ); - myNewCommand = myNewCommand + ":" + "C " + QString::number( myRadius ) + " " + QString::number( myLength ); + myNewCommand = myNewCommand + ":" + "C " + QString::number( myRadius, Format, DigNum ) + " " + QString::number( myLength, Format, DigNum ); theParameters = QString::number( 90.0 ) + ":" + myRadiusStr + ":" + myLengthStr; } if ( mySketchType == DIR_TAN_LENGTH ) { - myNewCommand = myNewCommand + "C " + QString::number( myRadius ) + " " + QString::number( myLength ); + myNewCommand = myNewCommand + "C " + QString::number( myRadius, Format, DigNum ) + " " + QString::number( myLength, Format, DigNum ); theParameters = myRadiusStr + ":" + myLengthStr; } if ( mySketchType == DIR_DXDY_LENGTH ) { - myNewCommand = myNewCommand + "D " + QString::number( myDX ) + " " + QString::number( myDY ); - myNewCommand = myNewCommand + ":" + "C " + QString::number( myRadius ) + " " + QString::number( myLength ); + myNewCommand = myNewCommand + "D " + QString::number( myDX, Format, DigNum ) + " " + QString::number( myDY, Format, DigNum ); + myNewCommand = myNewCommand + ":" + "C " + QString::number( myRadius, Format, DigNum ) + " " + QString::number( myLength, Format, DigNum ); theParameters = myDXStr + ":" + myDYStr + ":" + myRadiusStr + ":" + myLengthStr; } } @@ -1402,6 +1909,9 @@ bool EntityGUI_SketcherDlg::isValid( QString& msg ) if( Group1Spin->isVisible() ) { ok = Group1Spin->SpinBox_DX->isValid( msg, toCorrect ) && ok; } + else if( Group1Sel1Spin->isVisible() ) { + ok = Group1Sel1Spin->SpinBox_DX->isValid( msg, toCorrect ) && ok; + } else if( Group2Spin->isVisible() ) { ok = Group2Spin->SpinBox_DX->isValid( msg, toCorrect ) && ok; ok = Group2Spin->SpinBox_DY->isValid( msg, toCorrect ) && ok; @@ -1452,6 +1962,22 @@ bool EntityGUI_SketcherDlg::execute( ObjectList& objects ) //Current Shape QString Command2 = Command1 + GetNewCommand( aParameters ); Sketcher_Profile aProfile2( Command2.toAscii() ); + + //Error Message + if ( mySketchType == PT_ABS_CENTER || + mySketchType == PT_REL_CENTER ){ + Group4Spin->label->show(); + Group4Spin->label->setText(QString(aProfile2.ErrMsg().c_str())); + } + else + Group4Spin->label->hide(); + if ( mySketchType == PT_SEL_CENTER ){ + Group2Sel->label->show(); + Group2Sel->label->setText(QString(aProfile2.ErrMsg().c_str())); + } + else + Group2Sel->label->hide(); + if ( aProfile2.IsDone() ) myShape2 = aProfile2.GetShape(); @@ -1486,11 +2012,18 @@ bool EntityGUI_SketcherDlg::execute( ObjectList& objects ) if ( ( mySketchState != FIRST_POINT && myLastX1 == myLastX2 && myLastY1 == myLastY2 ) || myIsAllAdded ) { cmd = myCommand.join( "" ); - if ( Group1Sel->isVisible() ) { Group1Sel->buttonApply->setEnabled( false ); //Group1Sel->buttonApply->setFocus(); } + if ( Group2Sel->isVisible() ) { + Group2Sel->buttonApply->setEnabled( false ); + //Group2Sel->buttonApply->setFocus(); + } + if ( Group1Sel1Spin->isVisible() ) { + Group1Sel1Spin->buttonApply->setEnabled( false ); + //Group1Sel1Spin->buttonApply->setFocus(); + } if ( Group1Spin->isVisible() ) { Group1Spin->buttonApply->setEnabled( false ); //Group1Spin->buttonApply->setFocus(); @@ -1515,6 +2048,14 @@ bool EntityGUI_SketcherDlg::execute( ObjectList& objects ) Group1Sel->buttonApply->setEnabled( true ); //Group1Sel->buttonApply->setFocus(); } + if ( Group2Sel->isVisible() ) { + Group2Sel->buttonApply->setEnabled( true ); + //Group2Sel->buttonApply->setFocus(); + } + if ( Group1Sel1Spin->isVisible() ) { + Group1Sel1Spin->buttonApply->setEnabled( true ); + //Group1Sel1Spin->buttonApply->setFocus(); + } if ( Group1Spin->isVisible() ) { Group1Spin->buttonApply->setEnabled( true ); //Group1Spin->buttonApply->setFocus(); @@ -1626,6 +2167,8 @@ bool EntityGUI_SketcherDlg::createShapes( GEOM::GEOM_Object_ptr theObject, return false; if ( Group1Sel->isVisible() && !Group1Sel->buttonApply->isEnabled() || + Group2Sel->isVisible() && !Group2Sel->buttonApply->isEnabled() || + Group1Sel1Spin->isVisible() && !Group1Sel1Spin->buttonApply->isEnabled() || Group1Spin->isVisible() && !Group1Spin->buttonApply->isEnabled() || Group2Spin->isVisible() && !Group2Spin->buttonApply->isEnabled() || Group3Spin->isVisible() && !Group3Spin->buttonApply->isEnabled() || @@ -1703,6 +2246,7 @@ void EntityGUI_SketcherDlg::initSpinBox( SalomeApp_DoubleSpinBox* spinBox, void EntityGUI_SketcherDlg::SetDoubleSpinBoxStep( double step ) { Group1Spin->SpinBox_DX->setSingleStep(step); + Group1Sel1Spin->SpinBox_DX->setSingleStep(step); Group2Spin->SpinBox_DX->setSingleStep(step); Group2Spin->SpinBox_DY->setSingleStep(step); Group3Spin->SpinBox_DX->setSingleStep(step); diff --git a/src/EntityGUI/EntityGUI_SketcherDlg.h b/src/EntityGUI/EntityGUI_SketcherDlg.h index 0c0f631ac..63cf7d5db 100644 --- a/src/EntityGUI/EntityGUI_SketcherDlg.h +++ b/src/EntityGUI/EntityGUI_SketcherDlg.h @@ -32,16 +32,19 @@ #include #include #include +#include #include class QLineEdit; class SalomeApp_DoubleSpinBox; class EntityGUI_1Sel; +class EntityGUI_2Sel1Check; +class EntityGUI_1Sel1Spin1Check; class EntityGUI_1Spin; class EntityGUI_2Spin; -class EntityGUI_3Spin; -class EntityGUI_4Spin; +class EntityGUI_3Spin1Check; +class EntityGUI_4Spin1Check; class EntityGUI_Point; class EntityGUI_Dir1; class EntityGUI_Dir2; @@ -107,6 +110,7 @@ private: private: int myConstructorId; int myConstructorDirId; + int myConstructorPntId; int mySketchType; int mySketchState; @@ -122,11 +126,13 @@ private: QStringList myUndoParameters; Standard_Real myX, myY, myDX, myDY; + Standard_Real myXc, myYc, myDXc, myDYc; Standard_Real myLength, myAngle, myRadius; Standard_Real myLastX1, myLastY1; Standard_Real myLastX2, myLastY2; QString myXStr, myYStr, myDXStr, myDYStr; + QString myXcStr, myYcStr, myDXcStr, myDYcStr; QString myLengthStr, myAngleStr, myRadiusStr; QString myLastX1Str, myLastY1Str; QString myLastX2Str, myLastY2Str; @@ -134,14 +140,19 @@ private: EntityGUI_Skeleton* MainWidget; EntityGUI_Point* GroupPt; + EntityGUI_Point* GroupPt2; EntityGUI_Dir1* GroupD1; EntityGUI_Dir2* GroupD2; EntityGUI_1Sel* Group1Sel; + EntityGUI_2Sel1Check* Group2Sel; + EntityGUI_1Sel1Spin1Check* Group1Sel1Spin; EntityGUI_1Spin* Group1Spin; EntityGUI_2Spin* Group2Spin; - EntityGUI_3Spin* Group3Spin; - EntityGUI_4Spin* Group4Spin; + EntityGUI_3Spin1Check* Group3Spin; + EntityGUI_4Spin1Check* Group4Spin; + + QLabel* myErrLabel; QGroupBox* GroupBox1; QComboBox* ComboBox1; @@ -155,10 +166,14 @@ private: QList myLCSList; + int myCheckFlag; + private: enum SketchState { FIRST_POINT, NEXT_POINT }; enum SketchType { PT_ABS, PT_RELATIVE, PT_SEL, + PT_ABS_RADIUS,PT_REL_RADIUS,PT_SEL_RADIUS, + PT_ABS_CENTER,PT_REL_CENTER,PT_SEL_CENTER, DIR_ANGLE_LENGTH, DIR_ANGLE_X, DIR_ANGLE_Y, DIR_PER_LENGTH, DIR_PER_X, DIR_PER_Y, DIR_TAN_LENGTH, DIR_TAN_X, DIR_TAN_Y, @@ -179,8 +194,10 @@ private slots: void TypeClicked( int ); void DestClicked( int ); void PointClicked( int ); + void Point2Clicked( int ); void Dir1Clicked( int ); void Dir2Clicked( int ); + void CheckBoxClicked( int ); void ValueChangedInSpinBox( double ); void SetDoubleSpinBoxStep( double ); void FindLocalCS(); diff --git a/src/EntityGUI/EntityGUI_Widgets.cxx b/src/EntityGUI/EntityGUI_Widgets.cxx index 1c21731fc..e18401244 100644 --- a/src/EntityGUI/EntityGUI_Widgets.cxx +++ b/src/EntityGUI/EntityGUI_Widgets.cxx @@ -37,6 +37,35 @@ EntityGUI_1Sel::~EntityGUI_1Sel() { } +////////////////////////////////////////// +// EntityGUI_2Sel1Check +////////////////////////////////////////// + +EntityGUI_2Sel1Check::EntityGUI_2Sel1Check( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +EntityGUI_2Sel1Check::~EntityGUI_2Sel1Check() +{ +} + + +////////////////////////////////////////// +// EntityGUI_1Sel1Spin1Check +////////////////////////////////////////// + +EntityGUI_1Sel1Spin1Check::EntityGUI_1Sel1Spin1Check( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +EntityGUI_1Sel1Spin1Check::~EntityGUI_1Sel1Spin1Check() +{ +} + ////////////////////////////////////////// // EntityGUI_1Spin ////////////////////////////////////////// @@ -79,6 +108,21 @@ EntityGUI_3Spin::~EntityGUI_3Spin() { } + +////////////////////////////////////////// +// EntityGUI_3Spin1Check +////////////////////////////////////////// + +EntityGUI_3Spin1Check::EntityGUI_3Spin1Check( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +EntityGUI_3Spin1Check::~EntityGUI_3Spin1Check() +{ +} + ////////////////////////////////////////// // EntityGUI_4Spin ////////////////////////////////////////// @@ -93,6 +137,21 @@ EntityGUI_4Spin::~EntityGUI_4Spin() { } + +////////////////////////////////////////// +// EntityGUI_4Spin1Check +////////////////////////////////////////// + +EntityGUI_4Spin1Check::EntityGUI_4Spin1Check( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +EntityGUI_4Spin1Check::~EntityGUI_4Spin1Check() +{ +} + ////////////////////////////////////////// // EntityGUI_Dir1 ////////////////////////////////////////// diff --git a/src/EntityGUI/EntityGUI_Widgets.h b/src/EntityGUI/EntityGUI_Widgets.h index d96d3ba38..078293ed3 100644 --- a/src/EntityGUI/EntityGUI_Widgets.h +++ b/src/EntityGUI/EntityGUI_Widgets.h @@ -39,6 +39,39 @@ public: ~EntityGUI_1Sel(); }; +////////////////////////////////////////// +// EntityGUI_2Sel1Check +////////////////////////////////////////// + +#include "ui_EntityGUI_2Sel1Check_QTD.h" + +class EntityGUI_2Sel1Check : public QWidget, + public Ui::EntityGUI_2Sel1Check_QTD +{ + Q_OBJECT + +public: + EntityGUI_2Sel1Check( QWidget* = 0, Qt::WindowFlags = 0 ); + ~EntityGUI_2Sel1Check(); +}; + + +////////////////////////////////////////// +// EntityGUI_1Sel1Spin1Check +////////////////////////////////////////// + +#include "ui_EntityGUI_1Sel1Spin1Check_QTD.h" + +class EntityGUI_1Sel1Spin1Check : public QWidget, + public Ui::EntityGUI_1Sel1Spin1Check_QTD +{ + Q_OBJECT + +public: + EntityGUI_1Sel1Spin1Check( QWidget* = 0, Qt::WindowFlags = 0 ); + ~EntityGUI_1Sel1Spin1Check(); +}; + ////////////////////////////////////////// // EntityGUI_1Spin ////////////////////////////////////////// @@ -103,6 +136,38 @@ public: ~EntityGUI_4Spin(); }; +////////////////////////////////////////// +// EntityGUI_3Spin1Check +////////////////////////////////////////// + +#include "ui_EntityGUI_3Spin1Check_QTD.h" + +class EntityGUI_3Spin1Check : public QWidget, + public Ui::EntityGUI_3Spin1Check_QTD +{ + Q_OBJECT + +public: + EntityGUI_3Spin1Check( QWidget* = 0, Qt::WindowFlags = 0 ); + ~EntityGUI_3Spin1Check(); +}; + +////////////////////////////////////////// +// EntityGUI_4Spin1Check +////////////////////////////////////////// + +#include "ui_EntityGUI_4Spin1Check_QTD.h" + +class EntityGUI_4Spin1Check : public QWidget, + public Ui::EntityGUI_4Spin1Check_QTD +{ + Q_OBJECT + +public: + EntityGUI_4Spin1Check( QWidget* = 0, Qt::WindowFlags = 0 ); + ~EntityGUI_4Spin1Check(); +}; + ////////////////////////////////////////// // EntityGUI_Dir1 ////////////////////////////////////////// diff --git a/src/EntityGUI/Makefile.am b/src/EntityGUI/Makefile.am index a8fb7249d..2fe55c555 100644 --- a/src/EntityGUI/Makefile.am +++ b/src/EntityGUI/Makefile.am @@ -53,10 +53,14 @@ nodist_libEntityGUI_la_SOURCES = \ UIC_FILES = \ ui_EntityGUI_1Sel_QTD.h \ + ui_EntityGUI_2Sel1Check_QTD.h + ui_EntityGUI_1Sel1Spin1Check_QTD.h \ ui_EntityGUI_1Spin_QTD.h \ ui_EntityGUI_2Spin_QTD.h \ ui_EntityGUI_3Spin_QTD.h \ ui_EntityGUI_4Spin_QTD.h \ + ui_EntityGUI_3Spin1Check_QTD.h \ + ui_EntityGUI_4Spin1Check_QTD.h \ ui_EntityGUI_Dir1_QTD.h \ ui_EntityGUI_Dir2_QTD.h \ ui_EntityGUI_Point_QTD.h \ -- 2.39.2