Sketcher Improvement: Always enable geometry creation

==============================================================================

Now you can switch from one tool to the next just by clicking on the next tool
This commit is contained in:
Abdullah Tahiri 2015-05-27 15:50:27 +02:00 committed by wmayer
parent ca356c308e
commit 3b1873f1dc
2 changed files with 15 additions and 9 deletions

View File

@ -103,9 +103,11 @@ void ActivateHandler(Gui::Document *doc,DrawSketchHandler *handler)
{
if (doc) {
if (doc->getInEdit() && doc->getInEdit()->isDerivedFrom
(SketcherGui::ViewProviderSketch::getClassTypeId()))
dynamic_cast<SketcherGui::ViewProviderSketch*>
(doc->getInEdit())->activateHandler(handler);
(SketcherGui::ViewProviderSketch::getClassTypeId())) {
SketcherGui::ViewProviderSketch* vp = dynamic_cast<SketcherGui::ViewProviderSketch*> (doc->getInEdit());
vp->purgeHandler();
vp->activateHandler(handler);
}
}
}
@ -115,8 +117,8 @@ bool isCreateGeoActive(Gui::Document *doc)
// checks if a Sketch Viewprovider is in Edit and is in no special mode
if (doc->getInEdit() && doc->getInEdit()->isDerivedFrom
(SketcherGui::ViewProviderSketch::getClassTypeId())) {
if (dynamic_cast<SketcherGui::ViewProviderSketch*>(doc->getInEdit())->
getSketchMode() == ViewProviderSketch::STATUS_NONE)
/*if (dynamic_cast<SketcherGui::ViewProviderSketch*>(doc->getInEdit())->
getSketchMode() == ViewProviderSketch::STATUS_NONE)*/
return true;
}
}

View File

@ -309,10 +309,14 @@ void ViewProviderSketch::activateHandler(DrawSketchHandler *newHandler)
void ViewProviderSketch::deactivateHandler()
{
assert(edit);
assert(edit->sketchHandler != 0);
edit->sketchHandler->deactivated(this);
edit->sketchHandler->unsetCursor();
delete(edit->sketchHandler);
if(edit->sketchHandler != 0){
std::vector<Base::Vector2D> editCurve;
editCurve.clear();
drawEdit(editCurve); // erase any line
edit->sketchHandler->deactivated(this);
edit->sketchHandler->unsetCursor();
delete(edit->sketchHandler);
}
edit->sketchHandler = 0;
Mode = STATUS_NONE;
}