IPAL52206: TC7.3.0: Wrong step of multi-translation if point is selected

This commit is contained in:
kga 2013-12-09 07:11:45 +00:00
parent 50ac82e2be
commit ac566d76d9
2 changed files with 50 additions and 45 deletions

View File

@ -174,11 +174,11 @@ void TransformationGUI_MultiRotationDlg::ConstructorsClicked (int constructorId)
{ {
disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0);
myBase.nullify(); //myBase.nullify();
myVector.nullify(); //myVector.nullify();
GroupArgs->LineEdit1->setText(""); //GroupArgs->LineEdit1->setText("");
GroupArgs->LineEdit2->setText(""); //GroupArgs->LineEdit2->setText("");
GroupArgs->SpinBox_DX1->setValue(myAng); GroupArgs->SpinBox_DX1->setValue(myAng);
GroupArgs->SpinBox_DY1->setValue(myNbTimes1); GroupArgs->SpinBox_DY1->setValue(myNbTimes1);
@ -294,10 +294,10 @@ void TransformationGUI_MultiRotationDlg::SelectionIntoArgument()
} }
// clear selection // clear selection
disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); // disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0);
myGeomGUI->getApp()->selectionMgr()->clearSelected(); // myGeomGUI->getApp()->selectionMgr()->clearSelected();
connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), // connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()),
this, SLOT(SelectionIntoArgument())); // this, SLOT(SelectionIntoArgument()));
} }
else { else {
if ( myEditCurrentArgument == GroupArgs->LineEdit1 ) if ( myEditCurrentArgument == GroupArgs->LineEdit1 )

View File

@ -239,15 +239,21 @@ void TransformationGUI_MultiTranslationDlg::ConstructorsClicked (int constructor
GroupDimensions->hide(); GroupDimensions->hide();
GroupPoints->show(); GroupPoints->show();
GroupPoints->LineEdit1->setText(""); //GroupPoints->LineEdit1->setText("");
GroupPoints->LineEdit2->setText(""); //GroupPoints->LineEdit2->setText("");
myBase.nullify(); //myBase.nullify();
myVectorU.nullify(); //myVectorU.nullify();
if ( myBase ) GroupDimensions->LineEdit1->setText( GEOMBase::GetName( myBase.get() ) );
if ( myVectorU ) GroupDimensions->LineEdit2->setText( GEOMBase::GetName( myVectorU.get() ) );
GroupPoints->SpinBox_DX->setValue(myStepU); GroupPoints->SpinBox_DX->setValue(myStepU);
GroupPoints->SpinBox_DY->setValue(myNbTimesU); GroupPoints->SpinBox_DY->setValue(myNbTimesU);
if ( !myBase )
GroupPoints->PushButton1->click(); GroupPoints->PushButton1->click();
else if ( !myVectorU )
GroupPoints->PushButton2->click();
break; break;
} }
case 1: // Translate double case 1: // Translate double
@ -255,19 +261,28 @@ void TransformationGUI_MultiTranslationDlg::ConstructorsClicked (int constructor
GroupPoints->hide(); GroupPoints->hide();
GroupDimensions->show(); GroupDimensions->show();
GroupDimensions->LineEdit1->setText(""); //GroupDimensions->LineEdit1->setText("");
GroupDimensions->LineEdit2->setText(""); //GroupDimensions->LineEdit2->setText("");
GroupDimensions->LineEdit3->setText(""); //GroupDimensions->LineEdit3->setText("");
myBase.nullify(); //myBase.nullify();
myVectorU.nullify(); //myVectorU.nullify();
myVectorV.nullify(); //myVectorV.nullify();
if ( myBase ) GroupDimensions->LineEdit1->setText( GEOMBase::GetName( myBase.get() ) );
if ( myVectorU ) GroupDimensions->LineEdit2->setText( GEOMBase::GetName( myVectorU.get() ) );
if ( myVectorV ) GroupDimensions->LineEdit3->setText( GEOMBase::GetName( myVectorV.get() ) );
GroupDimensions->SpinBox_DX1->setValue(myStepU); GroupDimensions->SpinBox_DX1->setValue(myStepU);
GroupDimensions->SpinBox_DY1->setValue(myNbTimesU); GroupDimensions->SpinBox_DY1->setValue(myNbTimesU);
GroupDimensions->SpinBox_DX2->setValue(myStepV); GroupDimensions->SpinBox_DX2->setValue(myStepV);
GroupDimensions->SpinBox_DY2->setValue(myNbTimesV); GroupDimensions->SpinBox_DY2->setValue(myNbTimesV);
if ( !myBase )
GroupDimensions->PushButton1->click(); GroupDimensions->PushButton1->click();
else if ( !myVectorU )
GroupDimensions->PushButton2->click();
else if ( !myVectorV )
GroupDimensions->PushButton3->click();
break; break;
} }
} }
@ -329,7 +344,7 @@ void TransformationGUI_MultiTranslationDlg::SelectionIntoArgument()
QString aName = GEOMBase::GetName( aSelectedObject.get() ); QString aName = GEOMBase::GetName( aSelectedObject.get() );
myEditCurrentArgument->setText( aName ); myEditCurrentArgument->setText( aName );
if ( myEditCurrentArgument == GroupPoints->LineEdit1 ) { if ( myEditCurrentArgument == GroupPoints->LineEdit1 || myEditCurrentArgument == GroupDimensions->LineEdit1 ) {
myBase = aSelectedObject; myBase = aSelectedObject;
// recompute myStepU (Mantis issue 0021718) // recompute myStepU (Mantis issue 0021718)
@ -338,36 +353,26 @@ void TransformationGUI_MultiTranslationDlg::SelectionIntoArgument()
anOper->GetBoundingBox(myBase.get(), true, Xmin, Xmax, Ymin, Ymax, Zmin, Zmax); anOper->GetBoundingBox(myBase.get(), true, Xmin, Xmax, Ymin, Ymax, Zmin, Zmax);
if (anOper->IsDone()) { if (anOper->IsDone()) {
myStepU = floor(1.5 * (Xmax - Xmin)); myStepU = floor(1.5 * (Xmax - Xmin));
myStepV = floor(1.5 * (Ymax - Ymin));
GroupPoints->SpinBox_DX->setValue(myStepU); GroupPoints->SpinBox_DX->setValue(myStepU);
GroupDimensions->SpinBox_DX1->setValue(myStepU);
GroupDimensions->SpinBox_DX2->setValue(myStepV);
} }
if (!myVectorU) if ( myEditCurrentArgument == GroupPoints->LineEdit1 && !myVectorU )
GroupPoints->PushButton2->click(); GroupPoints->PushButton2->click();
if ( myEditCurrentArgument == GroupDimensions->LineEdit1 ) {
if ( !myVectorU )
GroupDimensions->PushButton2->click();
else if ( !myVectorV )
GroupDimensions->PushButton3->click();
}
} }
else if ( myEditCurrentArgument == GroupPoints->LineEdit2 ) { else if ( myEditCurrentArgument == GroupPoints->LineEdit2 ) {
myVectorU = aSelectedObject; myVectorU = aSelectedObject;
if ( !myBase ) if ( !myBase )
GroupPoints->PushButton1->click(); GroupPoints->PushButton1->click();
} }
else if ( myEditCurrentArgument == GroupDimensions->LineEdit1 ) {
myBase = aSelectedObject;
// recompute myStepU and myStepV (Mantis issue 0021718)
GEOM::GEOM_IMeasureOperations_var anOper = getGeomEngine()->GetIMeasureOperations(getStudyId());
double Xmin, Xmax, Ymin, Ymax, Zmin, Zmax;
anOper->GetBoundingBox(myBase.get(), true, Xmin, Xmax, Ymin, Ymax, Zmin, Zmax);
if (anOper->IsDone()) {
myStepU = floor(1.5 * (Xmax - Xmin));
myStepV = floor(1.5 * (Ymax - Ymin));
GroupDimensions->SpinBox_DX1->setValue(myStepU);
GroupDimensions->SpinBox_DX2->setValue(myStepV);
}
if ( !myVectorU )
GroupDimensions->PushButton2->click();
else if ( !myVectorV )
GroupDimensions->PushButton3->click();
}
else if ( myEditCurrentArgument == GroupDimensions->LineEdit2 ) { else if ( myEditCurrentArgument == GroupDimensions->LineEdit2 ) {
myVectorU = aSelectedObject; myVectorU = aSelectedObject;
if ( !myVectorV ) if ( !myVectorV )
@ -384,10 +389,10 @@ void TransformationGUI_MultiTranslationDlg::SelectionIntoArgument()
} }
// clear selection // clear selection
disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); // disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0);
myGeomGUI->getApp()->selectionMgr()->clearSelected(); // myGeomGUI->getApp()->selectionMgr()->clearSelected();
connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), // connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()),
this, SLOT(SelectionIntoArgument())); // this, SLOT(SelectionIntoArgument()));
} }
else { else {
if ( myEditCurrentArgument == GroupPoints->LineEdit1 || if ( myEditCurrentArgument == GroupPoints->LineEdit1 ||