Salome HOME
refs #226: the next non-filled widget should have focus after preselection processing
[modules/shaper.git] / src / ModuleBase / ModuleBase_WidgetEditor.cpp
index dbbe9fd5dbd09d4d8e575a3b8ce5aea6132db054..ee5bc67f476ba024490da025fc8dbea9f5f87b10 100644 (file)
@@ -3,12 +3,14 @@
 // Author:      Natalia ERMOLAEVA
 
 #include <ModuleBase_WidgetEditor.h>
+#include <ModuleBase_DoubleSpinBox.h>
+#include <ModuleBase_Tools.h>
 
 #include <Config_Keywords.h>
 #include <Config_WidgetAPI.h>
 
 #include <Events_Loop.h>
-#include <Model_Events.h>
+#include <ModelAPI_Events.h>
 
 #include <ModelAPI_Feature.h>
 #include <ModelAPI_Data.h>
 #include <QTimer>
 #include <QDialog>
 #include <QLayout>
-#include <QDoubleSpinBox>
 
 ModuleBase_WidgetEditor::ModuleBase_WidgetEditor(QWidget* theParent,
-                                                 const Config_WidgetAPI* theData)
-: ModuleBase_WidgetDoubleValue(theParent, theData)
+                                                 const Config_WidgetAPI* theData,
+                                                 const std::string& theParentId)
+    : ModuleBase_WidgetDoubleValue(theParent, theData, theParentId)
 {
 }
 
-ModuleBase_WidgetEditor::ModuleBase_WidgetEditor(QWidget* theParent, const std::string& theAttribute)
-: ModuleBase_WidgetDoubleValue(theParent, 0)
-{
-  setAttributeID(theAttribute);
-}
-
 ModuleBase_WidgetEditor::~ModuleBase_WidgetEditor()
 {
 }
@@ -45,9 +41,10 @@ double editedValue(double theValue, bool& isDone)
   QDialog aDlg;
   aDlg.setWindowFlags(Qt::FramelessWindowHint);
   QHBoxLayout* aLay = new QHBoxLayout(&aDlg);
-  aLay->setContentsMargins(0,0,0,0);
+  ModuleBase_Tools::zeroMargins(aLay);
 
   QLineEdit* aEditor = new QLineEdit(QString::number(theValue), &aDlg);
+  aEditor->setValidator(new QDoubleValidator(aEditor));
   QObject::connect(aEditor, SIGNAL(returnPressed()), &aDlg, SLOT(accept()));
   aLay->addWidget(aEditor);
 
@@ -78,7 +75,8 @@ bool ModuleBase_WidgetEditor::focusTo()
   return false;
 }
 
-void ModuleBase_WidgetEditor::editFeatureValue(FeaturePtr theFeature, const std::string theAttribute)
+void ModuleBase_WidgetEditor::editFeatureValue(FeaturePtr theFeature,
+                                               const std::string theAttribute)
 {
   DataPtr aData = theFeature->data();
   AttributeDoublePtr aRef = aData->real(theAttribute);