PartDesign: fix task dressup/transformed creation cancel

This commit is contained in:
Zheng, Lei
2020-02-26 15:10:05 +08:00
committed by wmayer
parent 4427be61e8
commit e9bbae0a89
4 changed files with 40 additions and 2 deletions

View File

@@ -80,6 +80,9 @@ TaskTransformedParameters::TaskTransformedParameters(ViewProviderTransformed *Tr
Gui::Document* doc = TransformedView->getDocument();
this->attachDocument(doc);
}
// remember initial transaction ID
App::GetApplication().getActiveTransaction(&transactionID);
}
TaskTransformedParameters::TaskTransformedParameters(TaskMultiTransformParameters *parentTask)
@@ -168,10 +171,17 @@ bool TaskTransformedParameters::originalSelected(const Gui::SelectionChanges& ms
}
void TaskTransformedParameters::setupTransaction() {
auto obj = getObject();
if(!obj)
return;
int tid = 0;
const char *name = App::GetApplication().getActiveTransaction(&tid);
if(tid && tid == transactionID)
return;
std::string n("Edit ");
n += getObject()->Label.getValue();
n += obj->getNameInDocument();
if(!name || n != name)
App::GetApplication().setActiveTransaction(n.c_str());
}
@@ -418,6 +428,10 @@ bool TaskDlgTransformedParameters::reject()
// ensure that we are not in selection mode
parameter->exitSelectionMode();
auto editDoc = Gui::Application::Instance->editDocument();
if(editDoc && parameter->getTransactionID())
editDoc->getDocument()->undo(parameter->getTransactionID());
return TaskDlgFeatureParameters::reject ();
}