]> SALOME platform Git repositories - modules/shaper.git/commitdiff
Salome HOME
Analyze Shift press instead of Selection on mouse press
authorvsv <vitaly.smetannikov@opencascade.com>
Thu, 25 Dec 2014 12:38:52 +0000 (15:38 +0300)
committervsv <vitaly.smetannikov@opencascade.com>
Thu, 25 Dec 2014 12:38:52 +0000 (15:38 +0300)
src/PartSet/PartSet_SketcherMgr.cpp

index 7b6aea62214bd2d853eaec70c00286e4e5b38d96..403fb7b1f7cd7f9db785ca104cdab73d93154c2d 100644 (file)
@@ -126,19 +126,23 @@ void PartSet_SketcherMgr::onMousePressed(ModuleBase_IViewWindow* theWnd, QMouseE
     QList<ModuleBase_ViewerPrs> aSelected = aSelect->getSelected();
     myEditingFeatures.clear();
     myEditingAttr.clear();
-    if ((aHighlighted.size() == 0) && (aSelected.size() == 0)) {
+
+    bool aHasShift = (theEvent->modifiers() & Qt::ShiftModifier);
+    QObjectPtrList aSelObjects;
+    if (aHasShift)
+      aSelObjects = getSumList(aHighlighted, aSelected);
+    else {
+      foreach (ModuleBase_ViewerPrs aPrs, aHighlighted) {
+        aSelObjects.append(aPrs.object());
+      }
+    }
+    if ((aSelObjects.size() == 0)) {
       if (isSketchOpe && (!isSketcher))
         // commit previous operation
         if (!aOperation->commit())
           aOperation->abort();
       return;
     }
-
-    QObjectPtrList aSelObjects = getSumList(aHighlighted, aSelected);
-    //foreach (ModuleBase_ViewerPrs aPrs, aHighlighted) {
-    //  aSelObjects.append(aPrs.object());
-    //}
-
     if ((aHighlighted.size() == 1) && (aSelected.size() == 0)) {
       // Move by selected shape (vertex). Can be used only for single selection
       foreach(ModuleBase_ViewerPrs aPrs, aHighlighted) {