}
PartSet_SketcherMgr::PartSet_SketcherMgr(PartSet_Module* theModule)
- : QObject(theModule), myModule(theModule), myIsDragging(false), myDragDone(false),
- myIsMouseOverWindow(false),
+ : QObject(theModule), myModule(theModule), myIsEditLaunching(false), myIsDragging(false),
+ myDragDone(false), myIsMouseOverWindow(false),
myIsMouseOverViewProcessed(true), myPreviousUpdateViewerEnabled(true),
myIsPopupMenuActive(false)
{
aDisplayer->enableUpdateViewer(isEnableUpdateViewer);
}
+/*
+//Temporary commented as we do not modify values in property panel
void PartSet_SketcherMgr::onBeforeValuesChangedInPropertyPanel()
{
if (!isNestedEditOperation(getCurrentOperation(), myModule->sketchMgr()->activeSketch()) ||
XGUI_Displayer* aDisplayer = aConnector->workshop()->displayer();
aDisplayer->enableUpdateViewer(myPreviousUpdateViewerEnabled);
aDisplayer->updateViewer();
-
-
}
+*/
void PartSet_SketcherMgr::onMousePressed(ModuleBase_IViewWindow* theWnd, QMouseEvent* theEvent)
{
myDragDone = false;
myPreviousDrawModeEnabled = aViewer->enableDrawMode(false);
- // selection should be restored before edit operation start to process the
- // selected entities, e.g. selection of point(attribute on a line) should edit the point
- restoreSelection();
launchEditing();
if (aFeature.get() != NULL) {
std::shared_ptr<SketchPlugin_Feature> aSPFeature =
}
} else if (isSketchOpe && isEditing) {
// If selected another object commit current result
+ bool aPrevLaunchingState = myIsEditLaunching;
+ /// store editing state for Edit operation in order to do not clear highlight by restart
+ /// of edit operation.
+ /// Internal edit should not be stored as editing operation as the result will be a
+ /// creation operation, where previous selection should not be used(and will be cleared)
+ myIsEditLaunching = !myModule->sketchReentranceMgr()->isInternalEditActive();
aFOperation->commit();
myIsDragging = true;
myDragDone = false;
myPreviousDrawModeEnabled = aViewer->enableDrawMode(false);
- // selection should be restored before edit operation start to process the
- // selected entities, e.g. selection of point(attribute on a line) should edit the point
- restoreSelection();
launchEditing();
+ myIsEditLaunching = aPrevLaunchingState;
if (aFeature.get() != NULL) {
std::shared_ptr<SketchPlugin_Feature> aSPFeature =
std::dynamic_pointer_cast<SketchPlugin_Feature>(aFeature);
aFPAttr->setValue(myCurrentPoint.myCurX, myCurrentPoint.myCurY);
}
}
- restoreSelection();
}
}
}
//}
/// improvement to deselect automatically all eventual selected objects, when
// returning to the neutral point of the Sketcher
- workshop()->selector()->clearSelection();
+ bool isClearSelectionPossible = true;
+ if (myIsEditLaunching) {
+ ModuleBase_OperationFeature* aFOperation = dynamic_cast<ModuleBase_OperationFeature*>
+ (theOperation);
+ if (aFOperation) {
+ FeaturePtr aFeature = aFOperation->feature();
+ if (aFeature.get() && PartSet_SketcherMgr::isEntity(aFeature->getKind())) {
+ isClearSelectionPossible = false;
+ }
+ }
+ }
+ if (isClearSelectionPossible)
+ workshop()->selector()->clearSelection();
}
void PartSet_SketcherMgr::commitNestedSketch(ModuleBase_Operation* theOperation)
void PartSet_SketcherMgr::connectToPropertyPanel(ModuleBase_ModelWidget* theWidget,
const bool isToConnect)
{
+ /*Temporary commented as we do not modify values in property panel
if (isToConnect) {
connect(theWidget, SIGNAL(beforeValuesChanged()),
this, SLOT(onBeforeValuesChangedInPropertyPanel()));
this, SLOT(onBeforeValuesChangedInPropertyPanel()));
disconnect(theWidget, SIGNAL(afterValuesChanged()),
this, SLOT(onAfterValuesChangedInPropertyPanel()));
- }
+ }*/
}
void PartSet_SketcherMgr::widgetStateChanged(int thePreviousState)
FeatureToSelectionMap::const_iterator aSIt = myCurrentSelection.begin(),
aSLast = myCurrentSelection.end();
SelectMgr_IndexedMapOfOwner anOwnersToSelect;
+ anOwnersToSelect.Clear();
for (; aSIt != aSLast; aSIt++) {
- anOwnersToSelect.Clear();
getSelectionOwners(aSIt.key(), myCurrentSketch, aWorkshop, myCurrentSelection,
anOwnersToSelect);
- aConnector->workshop()->selector()->setSelectedOwners(anOwnersToSelect, false);
}
+ aConnector->workshop()->selector()->setSelectedOwners(anOwnersToSelect, false);
}
void PartSet_SketcherMgr::onShowConstraintsToggle(int theType, bool theState)