issue #0001649: Changing names on Pads does not change them everywere

This commit is contained in:
wmayer 2016-10-21 15:38:45 +02:00
parent 58cb2e2ddc
commit 36b3d331fd

View File

@ -137,10 +137,14 @@ void TaskLinearPatternParameters::setupUI()
std::vector<App::DocumentObject*> originals = pcLinearPattern->Originals.getValues();
// Fill data into dialog elements
for (std::vector<App::DocumentObject*>::const_iterator i = originals.begin(); i != originals.end(); ++i)
{
if ((*i) != NULL)
ui->listWidgetFeatures->addItem(QString::fromLatin1((*i)->getNameInDocument()));
for (std::vector<App::DocumentObject*>::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 {