diff --git a/src/Mod/PartDesign/Gui/TaskLinearPatternParameters.cpp b/src/Mod/PartDesign/Gui/TaskLinearPatternParameters.cpp index 8518d2c75d..07bd468428 100644 --- a/src/Mod/PartDesign/Gui/TaskLinearPatternParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskLinearPatternParameters.cpp @@ -222,22 +222,6 @@ void TaskLinearPatternParameters::updateUI() blockUpdate = false; } -void TaskLinearPatternParameters::indexesMoved() -{ - PartDesign::Transformed* pcTransformed = getObject(); - std::vector originals = pcTransformed->Originals.getValues(); - // the number of items has not been changed, they have just been reordered - // so we read every list item to recreate the originals vector - std::string name; - for (unsigned i = 0; i < ui->listWidgetFeatures->count(); i++) { - name = ui->listWidgetFeatures->item(i)->data(Qt::UserRole).toByteArray().constData(); - originals[i] = pcTransformed->getDocument()->getObject(name.c_str()); - } - setupTransaction(); - pcTransformed->Originals.setValues(originals); - recomputeFeature(); -} - void TaskLinearPatternParameters::onUpdateViewTimer() { setupTransaction(); diff --git a/src/Mod/PartDesign/Gui/TaskLinearPatternParameters.h b/src/Mod/PartDesign/Gui/TaskLinearPatternParameters.h index 571d0aff68..b492c965cd 100644 --- a/src/Mod/PartDesign/Gui/TaskLinearPatternParameters.h +++ b/src/Mod/PartDesign/Gui/TaskLinearPatternParameters.h @@ -60,7 +60,6 @@ public: virtual void apply(); private Q_SLOTS: - void indexesMoved(); void onUpdateViewTimer(); void onDirectionChanged(int num); void onCheckReverse(const bool on); diff --git a/src/Mod/PartDesign/Gui/TaskMirroredParameters.cpp b/src/Mod/PartDesign/Gui/TaskMirroredParameters.cpp index ef3a5d7268..c614457b60 100644 --- a/src/Mod/PartDesign/Gui/TaskMirroredParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskMirroredParameters.cpp @@ -186,22 +186,6 @@ void TaskMirroredParameters::updateUI() blockUpdate = false; } -void TaskMirroredParameters::indexesMoved() -{ - PartDesign::Transformed* pcTransformed = getObject(); - std::vector originals = pcTransformed->Originals.getValues(); - // the number of items has not been changed, they have just been reordered - // so we read every list item to recreate the originals vector - std::string name; - for (unsigned i = 0; i < ui->listWidgetFeatures->count(); i++) { - name = ui->listWidgetFeatures->item(i)->data(Qt::UserRole).toByteArray().constData(); - originals[i] = pcTransformed->getDocument()->getObject(name.c_str()); - } - setupTransaction(); - pcTransformed->Originals.setValues(originals); - recomputeFeature(); -} - void TaskMirroredParameters::addObject(App::DocumentObject* obj) { QString label = QString::fromUtf8(obj->Label.getValue()); diff --git a/src/Mod/PartDesign/Gui/TaskMirroredParameters.h b/src/Mod/PartDesign/Gui/TaskMirroredParameters.h index d5e14e301e..906c0d4516 100644 --- a/src/Mod/PartDesign/Gui/TaskMirroredParameters.h +++ b/src/Mod/PartDesign/Gui/TaskMirroredParameters.h @@ -62,7 +62,6 @@ public: virtual void apply(); private Q_SLOTS: - void indexesMoved(); void onPlaneChanged(int num); virtual void onUpdateView(bool); virtual void onFeatureDeleted(void); diff --git a/src/Mod/PartDesign/Gui/TaskMultiTransformParameters.cpp b/src/Mod/PartDesign/Gui/TaskMultiTransformParameters.cpp index 772e5ccea9..a3f5c3b6c9 100644 --- a/src/Mod/PartDesign/Gui/TaskMultiTransformParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskMultiTransformParameters.cpp @@ -162,22 +162,6 @@ TaskMultiTransformParameters::TaskMultiTransformParameters(ViewProviderTransform // --------------------- } -void TaskMultiTransformParameters::indexesMoved() -{ - PartDesign::Transformed* pcTransformed = getObject(); - std::vector originals = pcTransformed->Originals.getValues(); - // the number of items has not been changed, they have just been reordered - // so we read every list item to recreate the originals vector - std::string name; - for (unsigned i = 0; i < ui->listWidgetFeatures->count(); i++) { - name = ui->listWidgetFeatures->item(i)->data(Qt::UserRole).toByteArray().constData(); - originals[i] = pcTransformed->getDocument()->getObject(name.c_str()); - } - setupTransaction(); - pcTransformed->Originals.setValues(originals); - recomputeFeature(); -} - void TaskMultiTransformParameters::addObject(App::DocumentObject* obj) { QString label = QString::fromUtf8(obj->Label.getValue()); diff --git a/src/Mod/PartDesign/Gui/TaskMultiTransformParameters.h b/src/Mod/PartDesign/Gui/TaskMultiTransformParameters.h index bc2ff52bae..f309247fb1 100644 --- a/src/Mod/PartDesign/Gui/TaskMultiTransformParameters.h +++ b/src/Mod/PartDesign/Gui/TaskMultiTransformParameters.h @@ -68,7 +68,6 @@ public: virtual void apply(); private Q_SLOTS: - void indexesMoved(); void onTransformDelete(); void onTransformEdit(); void onTransformActivated(const QModelIndex& index); diff --git a/src/Mod/PartDesign/Gui/TaskPolarPatternParameters.cpp b/src/Mod/PartDesign/Gui/TaskPolarPatternParameters.cpp index 12d7b64fac..5471b29fc0 100644 --- a/src/Mod/PartDesign/Gui/TaskPolarPatternParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskPolarPatternParameters.cpp @@ -217,22 +217,6 @@ void TaskPolarPatternParameters::updateUI() blockUpdate = false; } -void TaskPolarPatternParameters::indexesMoved() -{ - PartDesign::Transformed* pcTransformed = getObject(); - std::vector originals = pcTransformed->Originals.getValues(); - // the number of items has not been changed, they have just been reordered - // so we read every list item to recreate the originals vector - std::string name; - for (unsigned i = 0; i < ui->listWidgetFeatures->count(); i++) { - name = ui->listWidgetFeatures->item(i)->data(Qt::UserRole).toByteArray().constData(); - originals[i] = pcTransformed->getDocument()->getObject(name.c_str()); - } - setupTransaction(); - pcTransformed->Originals.setValues(originals); - recomputeFeature(); -} - void TaskPolarPatternParameters::onUpdateViewTimer() { setupTransaction(); diff --git a/src/Mod/PartDesign/Gui/TaskPolarPatternParameters.h b/src/Mod/PartDesign/Gui/TaskPolarPatternParameters.h index bc2ea97b8f..3cbb777a7b 100644 --- a/src/Mod/PartDesign/Gui/TaskPolarPatternParameters.h +++ b/src/Mod/PartDesign/Gui/TaskPolarPatternParameters.h @@ -58,8 +58,8 @@ public: virtual ~TaskPolarPatternParameters(); void apply(); + private Q_SLOTS: - void indexesMoved(); void onUpdateViewTimer(); void onAxisChanged(int num); void onCheckReverse(const bool on); diff --git a/src/Mod/PartDesign/Gui/TaskTransformedParameters.cpp b/src/Mod/PartDesign/Gui/TaskTransformedParameters.cpp index 13fcc3417e..f84b5a0075 100644 --- a/src/Mod/PartDesign/Gui/TaskTransformedParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskTransformedParameters.cpp @@ -400,6 +400,28 @@ void TaskTransformedParameters::addReferenceSelectionGate(bool edge, bool face, Gui::Selection().addSelectionGate(new CombineSelectionFilterGates(gateRefPtr, gateDepPtr)); } +void TaskTransformedParameters::indexesMoved() +{ + QAbstractItemModel* model = qobject_cast(sender()); + if (!model) + return; + + PartDesign::Transformed* pcTransformed = getObject(); + std::vector originals = pcTransformed->Originals.getValues(); + + QByteArray name; + int rows = model->rowCount(); + for (int i = 0; i < rows; i++) { + QModelIndex index = model->index(i, 0); + name = index.data(Qt::UserRole).toByteArray().constData(); + originals[i] = pcTransformed->getDocument()->getObject(name.constData()); + } + + setupTransaction(); + pcTransformed->Originals.setValues(originals); + recomputeFeature(); +} + //************************************************************************** //************************************************************************** // TaskDialog diff --git a/src/Mod/PartDesign/Gui/TaskTransformedParameters.h b/src/Mod/PartDesign/Gui/TaskTransformedParameters.h index 5416605bf9..e4a6682e76 100644 --- a/src/Mod/PartDesign/Gui/TaskTransformedParameters.h +++ b/src/Mod/PartDesign/Gui/TaskTransformedParameters.h @@ -168,6 +168,7 @@ protected Q_SLOTS: void onButtonAddFeature(const bool checked); void onButtonRemoveFeature(const bool checked); virtual void onFeatureDeleted(void)=0; + void indexesMoved(); protected: /**