Fix apply() method not called consistently

The python console commands where not consistenly reported because
the apply function was not called or not implemented.

The function is now called from the base class and also when
a subfeature is closed in MultiTransform.

Some missing properties are also added.
This commit is contained in:
André Althaus
2024-02-17 14:30:49 +01:00
parent 48d9a8da86
commit fd4bea24b7
12 changed files with 53 additions and 84 deletions

View File

@@ -145,6 +145,8 @@ void TaskMultiTransformParameters::closeSubTask()
{
if (subTask) {
ui->buttonOK->hide();
exitSelectionMode();
subTask->apply();
// Remove all parameter ui widgets and layout
ui->subFeatureWidget->setUpdatesEnabled(false);
@@ -152,8 +154,6 @@ void TaskMultiTransformParameters::closeSubTask()
qDeleteAll(ui->subFeatureWidget->findChildren<QLayout*>(QString(), Qt::FindDirectChildrenOnly));
ui->subFeatureWidget->setUpdatesEnabled(true);
exitSelectionMode();
delete subTask;
subTask = nullptr;
}
@@ -450,14 +450,19 @@ void TaskMultiTransformParameters::onUpdateView(bool on)
}
}
const std::vector<App::DocumentObject*> TaskMultiTransformParameters::getTransformFeatures() const
{
PartDesign::MultiTransform* pcMultiTransform = static_cast<PartDesign::MultiTransform*>(TransformedView->getObject());
return pcMultiTransform->Transformations.getValues();
}
void TaskMultiTransformParameters::apply()
void TaskMultiTransformParameters::doApply()
{
PartDesign::MultiTransform* pcMultiTransform = static_cast<PartDesign::MultiTransform*>(getObject());
std::vector<App::DocumentObject*> transformFeatures = pcMultiTransform->Transformations.getValues();
std::stringstream str;
str << Gui::Command::getObjectCmd(TransformedView->getObject()) << ".Transformations = [";
for (auto it : transformFeatures) {
if (it) {
str << Gui::Command::getObjectCmd(it) << ",";
}
}
str << "]";
Gui::Command::runCommand(Gui::Command::Doc,str.str().c_str());
}
TaskMultiTransformParameters::~TaskMultiTransformParameters()
@@ -484,24 +489,5 @@ TaskDlgMultiTransformParameters::TaskDlgMultiTransformParameters(ViewProviderMul
Content.push_back(parameter);
}
//==== calls from the TaskView ===============================================================
bool TaskDlgMultiTransformParameters::accept()
{
// Set up transformations
TaskMultiTransformParameters* mtParameter = static_cast<TaskMultiTransformParameters*>(parameter);
std::vector<App::DocumentObject*> transformFeatures = mtParameter->getTransformFeatures();
std::stringstream str;
str << Gui::Command::getObjectCmd(vp->getObject()) << ".Transformations = [";
for (auto it : transformFeatures) {
if (it) {
str << Gui::Command::getObjectCmd(it) << ",";
}
}
str << "]";
Gui::Command::runCommand(Gui::Command::Doc,str.str().c_str());
return TaskDlgFeatureParameters::accept ();
}
#include "moc_TaskMultiTransformParameters.cpp"