swift
src
gui
eventfilter.cpp
1
// SPDX-FileCopyrightText: Copyright (C) 2019 swift Project Community / Contributors
2
// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1
3
4
#include "
eventfilter.h
"
5
6
#include <QKeyEvent>
7
#include <QPlainTextEdit>
8
9
#include "
misc/stringutils.h
"
10
11
namespace
swift::gui
12
{
13
bool
CUpperCaseEventFilter::eventFilter
(
QObject
*
object
,
QEvent
*event)
14
{
15
if
(
event
->type() ==
QEvent::KeyPress
)
16
{
17
if
(
QKeyEvent
*e =
dynamic_cast<
QKeyEvent
*
>
(
event
))
18
{
19
// If QKeyEvent::text() returns an empty QString then let normal
20
// processing proceed as it may be a control (e.g. cursor movement)
21
// key. Otherwise convert the text to upper case and insert it at
22
// the current cursor position.
23
QPlainTextEdit
*pte = qobject_cast<QPlainTextEdit *>(
object
);
24
if
(!pte) {
return
false
; }
25
if
(pte->
isReadOnly
()) {
return
false
; }
26
27
if
(e->text().length() == 1)
28
{
29
const
QChar
c = e->text().front();
30
if
(c.
isLetter
())
31
{
32
const
ushort unicode = c.
unicode
();
33
if
(unicode > 127) {
return
true
; }
34
35
pte->
insertPlainText
(e->text().toUpper());
36
// return true to prevent further processing
37
return
true
;
38
}
39
// all codes like backspace etc.
40
return
false
;
41
}
// length
42
}
// key event
43
}
44
return
false
;
45
}
46
}
// namespace swift::gui
swift::gui::CUpperCaseEventFilter::eventFilter
bool eventFilter(QObject *object, QEvent *event)
Filter.
Definition:
eventfilter.cpp:13
eventfilter.h
swift::gui
GUI related classes.
Definition:
altitudeedit.cpp:13
QChar
QChar::isLetter
bool isLetter(char32_t ucs4)
QChar::unicode
char16_t & unicode()
QEvent
QEvent::KeyPress
KeyPress
QKeyEvent
QObject
QObject::event
virtual bool event(QEvent *e)
QPlainTextEdit
QPlainTextEdit::insertPlainText
void insertPlainText(const QString &text)
QPlainTextEdit::isReadOnly
bool isReadOnly() const const
stringutils.h
Generated on Wed Sep 3 2025 21:41:19 for swift by
1.9.1