From 0149742d62984d9e29e9ef308ed29c24fb51c6e3 Mon Sep 17 00:00:00 2001 From: wmayer Date: Mon, 5 Nov 2012 10:57:52 +0100 Subject: [PATCH] Fix problems when chaning language while pad/pocket panel is open --- src/Mod/PartDesign/Gui/TaskPadParameters.cpp | 26 +++++++++++++++++++ .../PartDesign/Gui/TaskPocketParameters.cpp | 23 ++++++++++++++++ 2 files changed, 49 insertions(+) diff --git a/src/Mod/PartDesign/Gui/TaskPadParameters.cpp b/src/Mod/PartDesign/Gui/TaskPadParameters.cpp index adaff69b8..7d181de8c 100644 --- a/src/Mod/PartDesign/Gui/TaskPadParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskPadParameters.cpp @@ -399,7 +399,33 @@ void TaskPadParameters::changeEvent(QEvent *e) { TaskBox::changeEvent(e); if (e->type() == QEvent::LanguageChange) { + ui->doubleSpinBox->blockSignals(true); + ui->doubleSpinBox2->blockSignals(true); + ui->lineFaceName->blockSignals(true); + ui->changeMode->blockSignals(true); + int index = ui->changeMode->currentIndex(); ui->retranslateUi(proxy); + ui->changeMode->clear(); + ui->changeMode->addItem(tr("Dimension")); + ui->changeMode->addItem(tr("To last")); + ui->changeMode->addItem(tr("To first")); + ui->changeMode->addItem(tr("Up to face")); + ui->changeMode->addItem(tr("Two dimensions")); + ui->changeMode->setCurrentIndex(index); + + QByteArray upToFace = this->getFaceName(); + int faceId = -1; + bool ok = false; + if (upToFace.indexOf("Face") == 0) { + faceId = upToFace.remove(0,4).toInt(&ok); + } + ui->lineFaceName->setText(ok ? + tr("Face") + QString::number(faceId) : + tr("No face selected")); + ui->doubleSpinBox->blockSignals(false); + ui->doubleSpinBox2->blockSignals(false); + ui->lineFaceName->blockSignals(false); + ui->changeMode->blockSignals(false); } } diff --git a/src/Mod/PartDesign/Gui/TaskPocketParameters.cpp b/src/Mod/PartDesign/Gui/TaskPocketParameters.cpp index e1becf68a..e465f2aaf 100644 --- a/src/Mod/PartDesign/Gui/TaskPocketParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskPocketParameters.cpp @@ -363,7 +363,30 @@ void TaskPocketParameters::changeEvent(QEvent *e) { TaskBox::changeEvent(e); if (e->type() == QEvent::LanguageChange) { + ui->doubleSpinBox->blockSignals(true); + ui->lineFaceName->blockSignals(true); + ui->changeMode->blockSignals(true); + int index = ui->changeMode->currentIndex(); ui->retranslateUi(proxy); + ui->changeMode->clear(); + ui->changeMode->addItem(tr("Dimension")); + ui->changeMode->addItem(tr("Through all")); + ui->changeMode->addItem(tr("To first")); + ui->changeMode->addItem(tr("Up to face")); + ui->changeMode->setCurrentIndex(index); + + QByteArray upToFace = this->getFaceName(); + int faceId = -1; + bool ok = false; + if (upToFace.indexOf("Face") == 0) { + faceId = upToFace.remove(0,4).toInt(&ok); + } + ui->lineFaceName->setText(ok ? + tr("Face") + QString::number(faceId) : + tr("No face selected")); + ui->doubleSpinBox->blockSignals(false); + ui->lineFaceName->blockSignals(false); + ui->changeMode->blockSignals(false); } }