return isDone;
}
-ModuleBase_ModelWidget::ValueState ModuleBase_ModelWidget::setValueState(const ValueState& theState)
+ModuleBase_ModelWidget::ValueState ModuleBase_ModelWidget::setValueState(const ModuleBase_ModelWidget::ValueState& theState)
{
ValueState aState = myState;
if (myState != theState && !myIsValueStateBlocked) {
myState = theState;
- emit valueStateChanged();
+ emit valueStateChanged(aState);
}
return aState;
}
return isDone;
}
-void ModuleBase_ModelWidget::storeValueByApply()
-{
- // do not emit signal about update the currenty feature object
- // in order to do not perform additional redisplay in the viewer.
- // It should happens by finish operation of the apply action
- storeValueCustom();
-}
-
void ModuleBase_ModelWidget::updateObject(ObjectPtr theObj)
{
blockUpdateViewer(true);
emit focusInWidget(this);
}
}
+ else if (theEvent->type() == QEvent::FocusOut) {
+ QFocusEvent* aFocusEvent = dynamic_cast<QFocusEvent*>(theEvent);
+
+ Qt::FocusReason aReason = aFocusEvent->reason();
+ bool aMouseOrKey = aReason == Qt::MouseFocusReason ||
+ aReason == Qt::TabFocusReason ||
+ aReason == Qt::BacktabFocusReason ||
+ aReason == Qt::OtherFocusReason; // to process widget->setFocus()
+ if (aMouseOrKey && getControls().contains(aWidget) && getValueState() == ModifiedInPP)
+ storeValue();
+ }
// pass the event on to the parent class
return QObject::eventFilter(theObject, theEvent);