#include <SketchPlugin_Line.h>
#include <SketchPlugin_Arc.h>
#include <SketchPlugin_Circle.h>
+#include <SketchPlugin_Point.h>
#include <XGUI_Workshop.h>
#include <XGUI_ModuleConnector.h>
#include <XGUI_OperationMgr.h>
#include <XGUI_PropertyPanel.h>
#include <XGUI_ErrorMgr.h>
+#include <XGUI_SelectionMgr.h>
#include <QToolButton>
if (!anError.isEmpty()) {
aFOperation->setEditOperation(false);
//workshop()->operationMgr()->updateApplyOfOperations();
- beforeStopInternalEdit();
myIsInternalEditOperation = false;
updateAcceptAllAction();
}
}
bool aCanBeActivatedByMove = isLineFeature || isArcFeature;
if (aCanBeActivatedByMove) {
+ /// before restarting of operation we need to clear selection, as it may take part in
+ /// new feature creation, e.g. tangent arc. But it is not necessary as it was processed
+ /// by mouse release when the operation was restarted.
+ workshop()->selector()->clearSelection();\r
+
myPreviousFeature = aFOperation->feature();
restartOperation();
myPreviousFeature = FeaturePtr();
const bool isTemporary)
{
bool aChanged = false;
- if (!theSourceFeature.get())
+ if (!theSourceFeature.get() || !theSourceFeature->data().get() ||
+ !theSourceFeature->data()->isValid())
return aChanged;
std::string aFeatureKind = theSourceFeature->getKind();