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 hoverEnabled: true
clip: true clip: true
Keys.onPressed: (event) => {
if (event.key === Qt.Key_Escape && event.modifiers === Qt.NoModifier) {
control.clear()
event.accepted = true
}
}
Text { Text {
id: placeholder id: placeholder
x: control.leftPadding x: control.leftPadding

View File

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

View File

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