mirror of https://github.com/stenzek/duckstation
Qt: Cancel search when pressing Esc
Add a new SearchBox component to encapsulate the common logic and reduce duplication.pull/3767/head
parent
2cf04c92a6
commit
f216ad3631
@ -0,0 +1,24 @@
|
||||
// SPDX-FileCopyrightText: 2019-2026 Connor McLaughlin <stenzek@gmail.com> and contributors.
|
||||
// SPDX-License-Identifier: CC-BY-NC-ND-4.0
|
||||
|
||||
#include "searchbox.h"
|
||||
|
||||
#include <QtGui/QKeyEvent>
|
||||
|
||||
#include "moc_searchbox.cpp"
|
||||
|
||||
SearchBox::SearchBox(QWidget* parent) : QLineEdit(parent)
|
||||
{
|
||||
setClearButtonEnabled(true);
|
||||
setPlaceholderText(tr("Search..."));
|
||||
}
|
||||
|
||||
SearchBox::~SearchBox() = default;
|
||||
|
||||
void SearchBox::keyPressEvent(QKeyEvent* event)
|
||||
{
|
||||
if (event->key() == Qt::Key_Escape && !text().isEmpty())
|
||||
clear();
|
||||
else
|
||||
QLineEdit::keyPressEvent(event);
|
||||
}
|
||||
@ -0,0 +1,18 @@
|
||||
// SPDX-FileCopyrightText: 2019-2026 Connor McLaughlin <stenzek@gmail.com> and contributors.
|
||||
// SPDX-License-Identifier: CC-BY-NC-ND-4.0
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <QtWidgets/QLineEdit>
|
||||
|
||||
class SearchBox final : public QLineEdit
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit SearchBox(QWidget* parent = nullptr);
|
||||
~SearchBox() override;
|
||||
|
||||
protected:
|
||||
void keyPressEvent(QKeyEvent* event) override;
|
||||
};
|
||||
Loading…
Reference in New Issue