From e5d16438784237fdd778b4c145b4c9a99d29118f Mon Sep 17 00:00:00 2001 From: jrheinlaender Date: Thu, 13 Sep 2012 16:22:48 +0200 Subject: [PATCH] PartDesign: fix bug when adding transformation to MultiTransform --- .../PartDesign/Gui/TaskMultiTransformParameters.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/Mod/PartDesign/Gui/TaskMultiTransformParameters.cpp b/src/Mod/PartDesign/Gui/TaskMultiTransformParameters.cpp index 25635c5f3..86bb68e9d 100644 --- a/src/Mod/PartDesign/Gui/TaskMultiTransformParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskMultiTransformParameters.cpp @@ -278,11 +278,12 @@ void TaskMultiTransformParameters::finishAdd(std::string &newFeatName) int row = ui->listTransformFeatures->currentIndex().row(); if (row < 0) { // Happens when first row (first transformation) is created - row = 0; // Hide all the originals now (hiding them in Command.cpp presents the user with an empty screen!) hideOriginals(); } + // Insert new transformation after the selected row + // This means that in order to insert at the beginning, the user has to use "Move Up" in the menu App::DocumentObject* newFeature = pcMultiTransform->getDocument()->getObject(newFeatName.c_str()); std::vector transformFeatures = pcMultiTransform->Transformations.getValues(); if (row == ui->listTransformFeatures->model()->rowCount() - 1) { @@ -292,9 +293,10 @@ void TaskMultiTransformParameters::finishAdd(std::string &newFeatName) ui->listTransformFeatures->addItem(QString::fromAscii(newFeature->Label.getValue())); ui->listTransformFeatures->setCurrentRow(row+1, QItemSelectionModel::ClearAndSelect); } else { - transformFeatures.insert(transformFeatures.begin() + row, newFeature); - ui->listTransformFeatures->insertItem(row, QString::fromAscii(newFeature->Label.getValue())); - ui->listTransformFeatures->setCurrentRow(row, QItemSelectionModel::ClearAndSelect); + // Note: The feature tree always seems to append to the end, no matter what we say here + transformFeatures.insert(transformFeatures.begin() + row + 1, newFeature); + ui->listTransformFeatures->insertItem(row + 1, QString::fromAscii(newFeature->Label.getValue())); + ui->listTransformFeatures->setCurrentRow(row + 1, QItemSelectionModel::ClearAndSelect); } pcMultiTransform->Transformations.setValues(transformFeatures);