Gui: fix Std_Transform tool

The problem is caused by tracking of editing object placement
introduced in 719c11e714.

After this commit, any editing object can disable placement tracking by
calling Gui::Document::setEditingTransform() inside either
ViewProvider::startEditing() or setEditingViewProvider().
This commit is contained in:
Zheng, Lei
2019-12-16 06:58:31 +08:00
committed by wwmayer
parent b795162660
commit 1cbec1a60d
3 changed files with 12 additions and 8 deletions

View File

@@ -404,19 +404,21 @@ bool Document::setEdit(Gui::ViewProvider* p, int ModNum, const char *subname)
d->_editSubname = subname;
}
d->_editMode = ModNum;
d->_editViewProvider = svp->startEditing(ModNum);
if(!d->_editViewProvider) {
d->_editViewProviderParent = 0;
FC_LOG("object '" << sobj->getFullName() << "' refuse to edit");
return false;
}
auto sobjs = obj->getSubObjectList(subname);
d->_editObjs.clear();
d->_editObjs.insert(sobjs.begin(),sobjs.end());
d->_editingObject = sobj;
d->_editMode = ModNum;
d->_editViewProvider = svp->startEditing(ModNum);
if(!d->_editViewProvider) {
d->_editViewProviderParent = 0;
d->_editObjs.clear();
d->_editingObject = 0;
FC_LOG("object '" << sobj->getFullName() << "' refuse to edit");
return false;
}
if(view3d) {
view3d->getViewer()->setEditingViewProvider(d->_editViewProvider,ModNum);
d->_editingViewer = view3d->getViewer();