QKeySequenceEdit: Finish editing when losing focus

Do not wait for the timer to time out. When losing the focus, finish
editing immediately since we cannot really edit it further without
focus.

Pick-to: 6.4
Change-Id: If42926ef9b06fbea7592a294f48ea5e99ef57ef8
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
bb10
Laszlo Papp 2022-06-24 11:27:13 +01:00 committed by Volker Hilsheimer
parent ef94aeef64
commit b6a953bb93
2 changed files with 11 additions and 0 deletions

View File

@ -371,6 +371,16 @@ void QKeySequenceEdit::timerEvent(QTimerEvent *e)
QWidget::timerEvent(e);
}
/*!
\reimp
*/
void QKeySequenceEdit::focusOutEvent(QFocusEvent *e)
{
Q_D(QKeySequenceEdit);
d->finishEditing();
QWidget::focusOutEvent(e);
}
QT_END_NAMESPACE
#include "moc_qkeysequenceedit.cpp"

View File

@ -48,6 +48,7 @@ protected:
void keyPressEvent(QKeyEvent *) override;
void keyReleaseEvent(QKeyEvent *) override;
void timerEvent(QTimerEvent *) override;
void focusOutEvent(QFocusEvent *) override;
private:
Q_DISABLE_COPY(QKeySequenceEdit)