QmlDesigner: Escape button press clears the search boxes

Task-number: QDS-7838
Change-Id: I1ed283846ba87eb2dbd786a560aaf940cb6f8132
Reviewed-by: Henning Gründl <henning.gruendl@qt.io>
This commit is contained in:
Ali Kianian
2023-06-13 10:18:21 +03:00
parent a88db905e3
commit 8f3fd958ef
3 changed files with 21 additions and 2 deletions

View File

@@ -40,6 +40,13 @@ T.TextField {
hoverEnabled: true
clip: true
Keys.onPressed: (event) => {
if (event.key === Qt.Key_Escape && event.modifiers === Qt.NoModifier) {
control.clear()
event.accepted = true
}
}
Text {
id: placeholder
x: control.leftPadding

View File

@@ -8,6 +8,7 @@
#include <QAction>
#include <QBoxLayout>
#include <QKeyEvent>
#include <QLabel>
#include <QStyle>
#include <QToolButton>
@@ -71,7 +72,7 @@ LineEdit::LineEdit(QWidget *parent)
setFixedHeight(29);
}
void LineEdit::resizeEvent(QResizeEvent *)
void LineEdit::resizeEvent([[maybe_unused]] QResizeEvent *event)
{
QSize hint = clearButton->sizeHint();
int frameWidth = style()->pixelMetric(QStyle::PM_DefaultFrameWidth);
@@ -80,6 +81,16 @@ void LineEdit::resizeEvent(QResizeEvent *)
(rect().bottom() + 1 - hint.height()) / 2);
}
void LineEdit::keyPressEvent(QKeyEvent *event)
{
if (event->key() == Qt::Key_Escape && event->modifiers() == Qt::NoModifier) {
clear();
event->accept();
return;
}
QLineEdit::keyPressEvent(event);
}
void LineEdit::updateClearButton(const QString& text)
{
clearButton->setVisible(!text.isEmpty());

View File

@@ -19,7 +19,8 @@ public:
LineEdit(QWidget *parent = nullptr);
protected:
void resizeEvent(QResizeEvent *);
void resizeEvent(QResizeEvent *event) override;
void keyPressEvent(QKeyEvent *event) override;
private slots:
void updateClearButton(const QString &text);