Skip to content

Commit

Permalink
Gui: fix Std_Transform tool
Browse files Browse the repository at this point in the history
The problem is caused by tracking of editing object placement
introduced in 719c11e.

After this commit, any editing object can disable placement tracking by
calling Gui::Document::setEditingTransform() inside either
ViewProvider::startEditing() or setEditingViewProvider().
  • Loading branch information
realthunder authored and wwmayer committed Dec 21, 2019
1 parent b795162 commit 1cbec1a
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 5 deletions.
12 changes: 7 additions & 5 deletions src/Gui/Document.cpp
Expand Up @@ -404,19 +404,21 @@ bool Document::setEdit(Gui::ViewProvider* p, int ModNum, const char *subname)
d->_editSubname = subname;
}

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;
}

auto sobjs = obj->getSubObjectList(subname);
d->_editObjs.clear();
d->_editObjs.insert(sobjs.begin(),sobjs.end());
d->_editingObject = sobj;

if(view3d) {
view3d->getViewer()->setEditingViewProvider(d->_editViewProvider,ModNum);
d->_editingViewer = view3d->getViewer();
Expand Down
1 change: 1 addition & 0 deletions src/Gui/ViewProviderDragger.cpp
Expand Up @@ -214,6 +214,7 @@ void ViewProviderDragger::setEditViewer(Gui::View3DInventorViewer* viewer, int M
csysDragger->setUpAutoScale(viewer->getSoRenderManager()->getCamera());

auto mat = viewer->getDocument()->getEditingTransform();
viewer->getDocument()->setEditingTransform(mat);
auto feat = dynamic_cast<App::GeoFeature *>(getObject());
if(feat) {
auto matInverse = feat->Placement.getValue().toMatrix();
Expand Down
1 change: 1 addition & 0 deletions src/Gui/ViewProviderLink.cpp
Expand Up @@ -2408,6 +2408,7 @@ bool ViewProviderLink::initDraggingPlacement() {
dragCtx.reset(new DraggerContext);

dragCtx->preTransform = doc->getEditingTransform();
doc->setEditingTransform(dragCtx->preTransform);

const auto &pla = ext->getPlacementProperty()?
ext->getPlacementValue():ext->getLinkPlacementValue();
Expand Down

0 comments on commit 1cbec1a

Please sign in to comment.