]> SALOME platform Git repositories - modules/shaper.git/commitdiff
Salome HOME
refs #240 - Selection of dimension for edit
authornds <natalia.donis@opencascade.com>
Thu, 6 Nov 2014 19:40:50 +0000 (22:40 +0300)
committernds <natalia.donis@opencascade.com>
Thu, 6 Nov 2014 19:40:50 +0000 (22:40 +0300)
the active widget is a selection control. The operation should not be committed on the mouse release.
Only if it is a last selected widget.
The disappearance of the property panel is corrected for the perpendicular constraint edition.
The case is call edit on a perpendicular constraint, select any line, it is applied as a first parameter, but the property panel is hidden.

src/PartSet/PartSet_OperationFeatureBase.cpp
src/PartSet/PartSet_OperationFeatureEdit.cpp

index 458410aba5f87f446abc99c8d228e1a6a1b5f9bd..551fbfe8d0e6672d6dca98bc50ce5b558b69a930 100644 (file)
@@ -101,7 +101,8 @@ void PartSet_OperationFeatureBase::mouseReleased(QMouseEvent* theEvent, ModuleBa
     flushUpdated();
     myPropertyPanel->activateNextWidget();
   }
-  commit();
+  if (!myPropertyPanel->activeWidget())
+    commit();
 }
 
 /*bool PartSet_OperationFeatureBase::setWidgetValue(ObjectPtr theFeature, double theX, double theY)
index c91e91b851ca127bea8839c108982e73ed4f3148..c546e3114656eff2ae69b12c03eda45232472fe9 100644 (file)
@@ -136,7 +136,10 @@ void PartSet_OperationFeatureEdit::mousePressed(QMouseEvent* theEvent, ModuleBas
   if(aActiveWgt && aActiveWgt->isViewerSelector()) {
     // Almost do nothing, all stuff in on PartSet_OperationFeatureBase::mouseReleased
     PartSet_OperationFeatureBase::mousePressed(theEvent, theViewer, theSelection);
-    return;
+    // the current point should be cleared because it is saved from the previous move and 
+    // should be reinitialized after the start moving. It is important for example for the lenght
+    // constraint where the first widget is a viewer selector.
+    myCurPoint.clear();
   }
   else {
     // commit always until the selection restore is realized (for feature and local selection)
@@ -363,6 +366,19 @@ void PartSet_OperationFeatureEdit::mouseReleased(
       commit();
       emitFeaturesDeactivation();
     }
+    else {
+      /// TODO: OCC bug: 25034 - the highlighted list should be filled not only for AIS_Shape
+      /// but for other IO, for example constraint dimensions.
+      /// It is empty and we have to use the process mouse release to start edition operation
+      /// for these objects
+      /*QList<ModuleBase_ViewerPrs> aSelected = theSelection->getSelected();
+      if (aSelected.size() == 1) {
+        ObjectPtr anObject = aSelected.first().object();
+        if (anObject && ModelAPI_Feature::feature(anObject) != feature()) {
+          restartOperation(PartSet_OperationFeatureEdit::Type(), anObject);
+        }
+      }*/
+    }
   }
 }