PartDesign: fix task dressup/transformed creation cancel
This commit is contained in:
@@ -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 ();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user