+ fixes #0001721: PartDesign Pad 'Up to face' face selection in the 3D view not working

This commit is contained in:
wmayer 2015-01-06 18:38:33 +01:00
parent fb19ea5089
commit 010fc6f307
2 changed files with 15 additions and 6 deletions

View File

@ -228,7 +228,9 @@ void CmdPartDesignPad::activated(int iMsg)
if (support) if (support)
doCommand(Gui,"Gui.activeDocument().hide(\"%s\")",support->getNameInDocument()); doCommand(Gui,"Gui.activeDocument().hide(\"%s\")",support->getNameInDocument());
} }
doCommand(Gui,"Gui.activeDocument().setEdit('%s',1)",FeatName.c_str()); // #0001721: use '0' as edit value to avoid switching off selection in
// ViewProviderGeometryObject::setEditViewer
doCommand(Gui,"Gui.activeDocument().setEdit('%s',0)",FeatName.c_str());
//commitCommand(); //commitCommand();
adjustCameraPosition(); adjustCameraPosition();

View File

@ -71,7 +71,7 @@ TaskPadParameters::TaskPadParameters(ViewProviderPad *PadView,bool newObj, QWidg
this, SLOT(onLength2Changed(double))); this, SLOT(onLength2Changed(double)));
connect(ui->changeMode, SIGNAL(currentIndexChanged(int)), connect(ui->changeMode, SIGNAL(currentIndexChanged(int)),
this, SLOT(onModeChanged(int))); this, SLOT(onModeChanged(int)));
connect(ui->buttonFace, SIGNAL(pressed()), connect(ui->buttonFace, SIGNAL(clicked()),
this, SLOT(onButtonFace())); this, SLOT(onButtonFace()));
connect(ui->lineFaceName, SIGNAL(textEdited(QString)), connect(ui->lineFaceName, SIGNAL(textEdited(QString)),
this, SLOT(onFaceName(QString))); this, SLOT(onFaceName(QString)));
@ -122,9 +122,12 @@ TaskPadParameters::TaskPadParameters(ViewProviderPad *PadView,bool newObj, QWidg
// According to bug #0000521 the reversed option // According to bug #0000521 the reversed option
// shouldn't be de-activated if the pad has a support face // shouldn't be de-activated if the pad has a support face
ui->checkBoxReversed->setChecked(reversed); ui->checkBoxReversed->setChecked(reversed);
#if QT_VERSION >= 0x040700
ui->lineFaceName->setPlaceholderText(tr("No face selected"));
#endif
ui->lineFaceName->setText(faceId >= 0 ? ui->lineFaceName->setText(faceId >= 0 ?
tr("Face") + QString::number(faceId) : tr("Face") + QString::number(faceId) :
tr("No face selected")); QString());
ui->lineFaceName->setProperty("FaceName", QByteArray(upToFace.c_str())); ui->lineFaceName->setProperty("FaceName", QByteArray(upToFace.c_str()));
ui->changeMode->clear(); ui->changeMode->clear();
ui->changeMode->insertItem(0, tr("Dimension")); ui->changeMode->insertItem(0, tr("Dimension"));
@ -240,7 +243,7 @@ void TaskPadParameters::onSelectionChanged(const Gui::SelectionChanges& msg)
} }
else if (msg.Type == Gui::SelectionChanges::ClrSelection) { else if (msg.Type == Gui::SelectionChanges::ClrSelection) {
ui->lineFaceName->blockSignals(true); ui->lineFaceName->blockSignals(true);
ui->lineFaceName->setText(tr("No face selected")); ui->lineFaceName->setText(tr(""));
ui->lineFaceName->setProperty("FaceName", QByteArray()); ui->lineFaceName->setProperty("FaceName", QByteArray());
ui->lineFaceName->blockSignals(false); ui->lineFaceName->blockSignals(false);
} }
@ -302,7 +305,8 @@ void TaskPadParameters::onModeChanged(int index)
pcPad->getDocument()->recomputeFeature(pcPad); pcPad->getDocument()->recomputeFeature(pcPad);
} }
void TaskPadParameters::onButtonFace(const bool pressed) { void TaskPadParameters::onButtonFace(const bool pressed)
{
PartDesign::Pad* pcPad = static_cast<PartDesign::Pad*>(PadView->getObject()); PartDesign::Pad* pcPad = static_cast<PartDesign::Pad*>(PadView->getObject());
Part::Feature* support = pcPad->getSupport(); Part::Feature* support = pcPad->getSupport();
if (support == NULL) { if (support == NULL) {
@ -433,9 +437,12 @@ void TaskPadParameters::changeEvent(QEvent *e)
if (upToFace.indexOf("Face") == 0) { if (upToFace.indexOf("Face") == 0) {
faceId = upToFace.remove(0,4).toInt(&ok); faceId = upToFace.remove(0,4).toInt(&ok);
} }
#if QT_VERSION >= 0x040700
ui->lineFaceName->setPlaceholderText(tr("No face selected"));
#endif
ui->lineFaceName->setText(ok ? ui->lineFaceName->setText(ok ?
tr("Face") + QString::number(faceId) : tr("Face") + QString::number(faceId) :
tr("No face selected")); QString());
ui->lengthEdit->blockSignals(false); ui->lengthEdit->blockSignals(false);
ui->lengthEdit2->blockSignals(false); ui->lengthEdit2->blockSignals(false);
ui->lineFaceName->blockSignals(false); ui->lineFaceName->blockSignals(false);