+
+
+void ModuleBase_ModelWidget::updateObject(ObjectPtr theObj) const
+{
+ Events_Loop::loop()->flush(Events_Loop::eventByName(EVENT_OBJECT_UPDATED));
+ static Events_ID anEvent = Events_Loop::eventByName(EVENT_OBJECT_TO_REDISPLAY);
+ ModelAPI_EventCreator::get()->sendUpdated(theObj, anEvent);
+}
+
+void ModuleBase_ModelWidget::enableFocusProcessing(QWidget* theWidget)
+{
+ theWidget->setFocusPolicy(Qt::StrongFocus);
+ theWidget->installEventFilter(this);
+ myFocusInWidgets.append(theWidget);
+}
+
+bool ModuleBase_ModelWidget::eventFilter(QObject* theObject, QEvent *theEvent)
+{
+ QWidget* aWidget = dynamic_cast<QWidget*>(theObject);
+ if (theEvent->type() == QEvent::MouseButtonRelease &&
+ myFocusInWidgets.contains(aWidget)) {
+ emit focusInWidget(this);
+ }
+ // pass the event on to the parent class
+ return QObject::eventFilter(theObject, theEvent);
+}