forked from qt-creator/qt-creator
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:
@@ -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
|
||||
|
@@ -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());
|
||||
|
@@ -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);
|
||||
|
Reference in New Issue
Block a user