From 36b3d331fdc858ecb556de5f6e3d7a6dcfeb9cb8 Mon Sep 17 00:00:00 2001 From: wmayer Date: Fri, 21 Oct 2016 15:38:45 +0200 Subject: [PATCH] issue #0001649: Changing names on Pads does not change them everywere --- .../Gui/TaskLinearPatternParameters.cpp | 32 ++++++++++++++----- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/src/Mod/PartDesign/Gui/TaskLinearPatternParameters.cpp b/src/Mod/PartDesign/Gui/TaskLinearPatternParameters.cpp index e65c6688e..2677e54ac 100644 --- a/src/Mod/PartDesign/Gui/TaskLinearPatternParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskLinearPatternParameters.cpp @@ -137,10 +137,14 @@ void TaskLinearPatternParameters::setupUI() std::vector originals = pcLinearPattern->Originals.getValues(); // Fill data into dialog elements - for (std::vector::const_iterator i = originals.begin(); i != originals.end(); ++i) - { - if ((*i) != NULL) - ui->listWidgetFeatures->addItem(QString::fromLatin1((*i)->getNameInDocument())); + for (std::vector::const_iterator i = originals.begin(); i != originals.end(); ++i) { + const App::DocumentObject* obj = *i; + if (obj != NULL) { + QListWidgetItem* item = new QListWidgetItem(); + item->setText(QString::fromUtf8(obj->Label.getValue())); + item->setData(Qt::UserRole, QString::fromLatin1(obj->getNameInDocument())); + ui->listWidgetFeatures->addItem(item); + } } // --------------------- @@ -219,10 +223,22 @@ void TaskLinearPatternParameters::onSelectionChanged(const Gui::SelectionChanges { if (msg.Type == Gui::SelectionChanges::AddSelection) { if (originalSelected(msg)) { - if (selectionMode == addFeature) - ui->listWidgetFeatures->addItem(QString::fromLatin1(msg.pObjectName)); - else - removeItemFromListWidget(ui->listWidgetFeatures, QString::fromLatin1(msg.pObjectName)); + Gui::SelectionObject selObj(msg); + App::DocumentObject* obj = selObj.getObject(); + Q_ASSERT(obj); + + QString label = QString::fromUtf8(obj->Label.getValue()); + QString objectName = QString::fromLatin1(msg.pObjectName); + + if (selectionMode == addFeature) { + QListWidgetItem* item = new QListWidgetItem(); + item->setText(label); + item->setData(Qt::UserRole, objectName); + ui->listWidgetFeatures->addItem(item); + } + else { + removeItemFromListWidget(ui->listWidgetFeatures, label); + } exitSelectionMode(); } else {