diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioControls/SearchBox.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioControls/SearchBox.qml index 3449fda86a6..4891c969aec 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioControls/SearchBox.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioControls/SearchBox.qml @@ -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 diff --git a/src/plugins/qmldesigner/components/navigator/navigatorsearchwidget.cpp b/src/plugins/qmldesigner/components/navigator/navigatorsearchwidget.cpp index 360c893c2d7..01a77b67176 100644 --- a/src/plugins/qmldesigner/components/navigator/navigatorsearchwidget.cpp +++ b/src/plugins/qmldesigner/components/navigator/navigatorsearchwidget.cpp @@ -8,6 +8,7 @@ #include #include +#include #include #include #include @@ -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()); diff --git a/src/plugins/qmldesigner/components/navigator/navigatorsearchwidget.h b/src/plugins/qmldesigner/components/navigator/navigatorsearchwidget.h index 8b6da49cb3f..b8a470c8fc3 100644 --- a/src/plugins/qmldesigner/components/navigator/navigatorsearchwidget.h +++ b/src/plugins/qmldesigner/components/navigator/navigatorsearchwidget.h @@ -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);