]> SALOME platform Git repositories - modules/shaper.git/commitdiff
Salome HOME
refs #80 - Sketch base GUI: create/draw point, circle and arc
authornds <natalia.donis@opencascade.com>
Fri, 6 Jun 2014 13:59:38 +0000 (17:59 +0400)
committernds <natalia.donis@opencascade.com>
Fri, 6 Jun 2014 13:59:38 +0000 (17:59 +0400)
Key release signal is emitted by double value widget in order to bread and restart circle creation operation like it is for line feature.

src/ModuleBase/ModuleBase_WidgetDoubleValue.cpp
src/ModuleBase/ModuleBase_WidgetDoubleValue.h
src/ModuleBase/ModuleBase_WidgetPoint2D.h

index 6ec34c3cae73dbf2fe57d8da3e0e2f7506a0f80b..0824da5b414ac1e73ec5bfe3070031ce317dab28 100644 (file)
@@ -17,6 +17,8 @@
 #include <QLayout>
 #include <QLabel>
 #include <QDoubleSpinBox>
+#include <QEvent>
+#include <QKeyEvent>
 
 
 ModuleBase_WidgetDoubleValue::ModuleBase_WidgetDoubleValue(QWidget* theParent, const Config_WidgetAPI* theData)
@@ -72,6 +74,8 @@ ModuleBase_WidgetDoubleValue::ModuleBase_WidgetDoubleValue(QWidget* theParent, c
   aControlLay->setStretch(1, 1);
 
   connect(mySpinBox, SIGNAL(valueChanged(double)), this, SIGNAL(valuesChanged()));
+
+  mySpinBox->installEventFilter(this);
 }
 
 ModuleBase_WidgetDoubleValue::~ModuleBase_WidgetDoubleValue()
@@ -108,3 +112,14 @@ QList<QWidget*> ModuleBase_WidgetDoubleValue::getControls() const
   aList.append(mySpinBox);
   return aList;
 }
+
+bool ModuleBase_WidgetDoubleValue::eventFilter(QObject *theObject, QEvent *theEvent)
+{
+  if (theObject == mySpinBox) {
+    if (theEvent->type() == QEvent::KeyRelease) {
+      emit keyReleased(attributeID(), (QKeyEvent*) theEvent);
+      return true;
+    }
+  }
+  return ModuleBase_ModelWidget::eventFilter(theObject, theEvent);
+}
index 024e12ab7eadeca3383a58a106d472446eb5eb3d..70f6de58ce510344ae127d927bd18313b9a0c578 100644 (file)
@@ -38,6 +38,11 @@ public:
   /// \returns the widget
   QWidget* getControl() const { return myContainer; }
 
+  /// Process key release envent on the widget spin box controls
+  /// \param theObject the object where the event happens
+  /// \param theEvent the processed event
+  virtual bool eventFilter(QObject *theObject, QEvent *theEvent);
+
 private:
   QWidget*     myContainer;
   QLabel*      myLabel;
index 4e4dd152f28536057150fd7925ea9e75b890778f..bb0f7c84dbfa966a76577a623ae8bdefb43793ca 100644 (file)
@@ -45,6 +45,9 @@ public:
   /// \return a control list
   virtual QList<QWidget*> getControls() const;
 
+  /// Process key release envent on the widget spin box controls
+  /// \param theObject the object where the event happens
+  /// \param theEvent the processed event
   virtual bool eventFilter(QObject *theObject, QEvent *theEvent);
 
 private: