diff options
author | Volker Hilsheimer <volker.hilsheimer@qt.io> | 2024-02-29 12:48:31 +0100 |
---|---|---|
committer | Volker Hilsheimer <volker.hilsheimer@qt.io> | 2024-03-01 19:00:33 +0100 |
commit | 83f73df3e0e07242ce355fa12ae818fbb0ed6d03 (patch) | |
tree | 5e836c0e632c8c05b99dc2ef434700b91a5b9890 /src/widgets | |
parent | 402cb510e1d40825d74447af831918f4a2a951f2 (diff) |
QTextEdit::event: refactor into switch statement
Replace if/else snake, made more complex by handling of QT_NO_*
configurations. Move the unconditional cases to the top, which also
fixes the handling of ShortcutOverride and ToolTip events when Qt was
built with QT_NO_CONTEXTMENU.
Pick-to: 6.7
Change-Id: I1e2cc2c39e3cef9fe29a71e48595756cff0d2949
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
Diffstat (limited to 'src/widgets')
-rw-r--r-- | src/widgets/widgets/qtextedit.cpp | 42 |
1 files changed, 26 insertions, 16 deletions
diff --git a/src/widgets/widgets/qtextedit.cpp b/src/widgets/widgets/qtextedit.cpp index 4644801d68..90884dd438 100644 --- a/src/widgets/widgets/qtextedit.cpp +++ b/src/widgets/widgets/qtextedit.cpp @@ -1080,28 +1080,38 @@ void QTextEdit::selectAll() bool QTextEdit::event(QEvent *e) { Q_D(QTextEdit); -#ifndef QT_NO_CONTEXTMENU - if (e->type() == QEvent::ContextMenu - && static_cast<QContextMenuEvent *>(e)->reason() == QContextMenuEvent::Keyboard) { - ensureCursorVisible(); - const QPoint cursorPos = cursorRect().center(); - QContextMenuEvent ce(QContextMenuEvent::Keyboard, cursorPos, d->viewport->mapToGlobal(cursorPos)); - ce.setAccepted(e->isAccepted()); - const bool result = QAbstractScrollArea::event(&ce); - e->setAccepted(ce.isAccepted()); - return result; - } else if (e->type() == QEvent::ShortcutOverride || e->type() == QEvent::ToolTip) { + switch (e->type()) { + case QEvent::ShortcutOverride: + case QEvent::ToolTip: d->sendControlEvent(e); - } else + break; + case QEvent::WindowActivate: + case QEvent::WindowDeactivate: + d->control->setPalette(palette()); + break; +#ifndef QT_NO_CONTEXTMENU + case QEvent::ContextMenu: + if (static_cast<QContextMenuEvent *>(e)->reason() == QContextMenuEvent::Keyboard) { + ensureCursorVisible(); + const QPoint cursorPos = cursorRect().center(); + QContextMenuEvent ce(QContextMenuEvent::Keyboard, cursorPos, d->viewport->mapToGlobal(cursorPos)); + ce.setAccepted(e->isAccepted()); + const bool result = QAbstractScrollArea::event(&ce); + e->setAccepted(ce.isAccepted()); + return result; + } + break; #endif // QT_NO_CONTEXTMENU #ifdef QT_KEYPAD_NAVIGATION - if (e->type() == QEvent::EnterEditFocus || e->type() == QEvent::LeaveEditFocus) { + case QEvent::EnterEditFocus: + case QEvent::LeaveEditFocus: if (QApplicationPrivate::keypadNavigationEnabled()) d->sendControlEvent(e); - } else + break; #endif - if (e->type() == QEvent::WindowActivate || e->type() == QEvent::WindowDeactivate) - d->control->setPalette(palette()); + default: + break; + } return QAbstractScrollArea::event(e); } |