From 010fc6f307bd30beec0e2e64faa3f9da918a6ed7 Mon Sep 17 00:00:00 2001 From: wmayer Date: Tue, 6 Jan 2015 18:38:33 +0100 Subject: [PATCH] + fixes #0001721: PartDesign Pad 'Up to face' face selection in the 3D view not working --- src/Mod/PartDesign/Gui/Command.cpp | 4 +++- src/Mod/PartDesign/Gui/TaskPadParameters.cpp | 17 ++++++++++++----- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/Mod/PartDesign/Gui/Command.cpp b/src/Mod/PartDesign/Gui/Command.cpp index 18305897a..b4bb036ca 100644 --- a/src/Mod/PartDesign/Gui/Command.cpp +++ b/src/Mod/PartDesign/Gui/Command.cpp @@ -228,7 +228,9 @@ void CmdPartDesignPad::activated(int iMsg) if (support) 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(); adjustCameraPosition(); diff --git a/src/Mod/PartDesign/Gui/TaskPadParameters.cpp b/src/Mod/PartDesign/Gui/TaskPadParameters.cpp index 281d36374..50eda391a 100644 --- a/src/Mod/PartDesign/Gui/TaskPadParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskPadParameters.cpp @@ -71,7 +71,7 @@ TaskPadParameters::TaskPadParameters(ViewProviderPad *PadView,bool newObj, QWidg this, SLOT(onLength2Changed(double))); connect(ui->changeMode, SIGNAL(currentIndexChanged(int)), this, SLOT(onModeChanged(int))); - connect(ui->buttonFace, SIGNAL(pressed()), + connect(ui->buttonFace, SIGNAL(clicked()), this, SLOT(onButtonFace())); connect(ui->lineFaceName, SIGNAL(textEdited(QString)), this, SLOT(onFaceName(QString))); @@ -122,9 +122,12 @@ TaskPadParameters::TaskPadParameters(ViewProviderPad *PadView,bool newObj, QWidg // According to bug #0000521 the reversed option // shouldn't be de-activated if the pad has a support face ui->checkBoxReversed->setChecked(reversed); +#if QT_VERSION >= 0x040700 + ui->lineFaceName->setPlaceholderText(tr("No face selected")); +#endif ui->lineFaceName->setText(faceId >= 0 ? tr("Face") + QString::number(faceId) : - tr("No face selected")); + QString()); ui->lineFaceName->setProperty("FaceName", QByteArray(upToFace.c_str())); ui->changeMode->clear(); ui->changeMode->insertItem(0, tr("Dimension")); @@ -240,7 +243,7 @@ void TaskPadParameters::onSelectionChanged(const Gui::SelectionChanges& msg) } else if (msg.Type == Gui::SelectionChanges::ClrSelection) { ui->lineFaceName->blockSignals(true); - ui->lineFaceName->setText(tr("No face selected")); + ui->lineFaceName->setText(tr("")); ui->lineFaceName->setProperty("FaceName", QByteArray()); ui->lineFaceName->blockSignals(false); } @@ -302,7 +305,8 @@ void TaskPadParameters::onModeChanged(int index) pcPad->getDocument()->recomputeFeature(pcPad); } -void TaskPadParameters::onButtonFace(const bool pressed) { +void TaskPadParameters::onButtonFace(const bool pressed) +{ PartDesign::Pad* pcPad = static_cast(PadView->getObject()); Part::Feature* support = pcPad->getSupport(); if (support == NULL) { @@ -433,9 +437,12 @@ void TaskPadParameters::changeEvent(QEvent *e) if (upToFace.indexOf("Face") == 0) { faceId = upToFace.remove(0,4).toInt(&ok); } +#if QT_VERSION >= 0x040700 + ui->lineFaceName->setPlaceholderText(tr("No face selected")); +#endif ui->lineFaceName->setText(ok ? tr("Face") + QString::number(faceId) : - tr("No face selected")); + QString()); ui->lengthEdit->blockSignals(false); ui->lengthEdit2->blockSignals(false); ui->lineFaceName->blockSignals(false);