PartDesign: [skip ci] move indexesMoved() to base class TaskTransformedParameters to avoid code duplication

This commit is contained in:
wmayer
2020-07-31 13:16:44 +02:00
parent ccd0f58e60
commit 87e7a3762b
10 changed files with 24 additions and 68 deletions

View File

@@ -222,22 +222,6 @@ void TaskLinearPatternParameters::updateUI()
blockUpdate = false;
}
void TaskLinearPatternParameters::indexesMoved()
{
PartDesign::Transformed* pcTransformed = getObject();
std::vector<App::DocumentObject*> 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();

View File

@@ -60,7 +60,6 @@ public:
virtual void apply();
private Q_SLOTS:
void indexesMoved();
void onUpdateViewTimer();
void onDirectionChanged(int num);
void onCheckReverse(const bool on);

View File

@@ -186,22 +186,6 @@ void TaskMirroredParameters::updateUI()
blockUpdate = false;
}
void TaskMirroredParameters::indexesMoved()
{
PartDesign::Transformed* pcTransformed = getObject();
std::vector<App::DocumentObject*> 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());

View File

@@ -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);

View File

@@ -162,22 +162,6 @@ TaskMultiTransformParameters::TaskMultiTransformParameters(ViewProviderTransform
// ---------------------
}
void TaskMultiTransformParameters::indexesMoved()
{
PartDesign::Transformed* pcTransformed = getObject();
std::vector<App::DocumentObject*> 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());

View File

@@ -68,7 +68,6 @@ public:
virtual void apply();
private Q_SLOTS:
void indexesMoved();
void onTransformDelete();
void onTransformEdit();
void onTransformActivated(const QModelIndex& index);

View File

@@ -217,22 +217,6 @@ void TaskPolarPatternParameters::updateUI()
blockUpdate = false;
}
void TaskPolarPatternParameters::indexesMoved()
{
PartDesign::Transformed* pcTransformed = getObject();
std::vector<App::DocumentObject*> 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();

View File

@@ -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);

View File

@@ -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<QAbstractItemModel*>(sender());
if (!model)
return;
PartDesign::Transformed* pcTransformed = getObject();
std::vector<App::DocumentObject*> 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

View File

@@ -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:
/**