gui: Add GUIUtil::ItemDelegate with keyEscapePressed signal

This commit is contained in:
João Barbosa 2018-07-30 22:44:18 +01:00
parent 84d5a6210c
commit f7a553177d
2 changed files with 24 additions and 0 deletions

View file

@ -49,6 +49,7 @@
#include <QDoubleValidator>
#include <QFileDialog>
#include <QFont>
#include <QKeyEvent>
#include <QLineEdit>
#include <QSettings>
#include <QTextDocument> // for Qt::mightBeRichText
@ -927,4 +928,14 @@ void ClickableProgressBar::mouseReleaseEvent(QMouseEvent *event)
Q_EMIT clicked(event->pos());
}
bool ItemDelegate::eventFilter(QObject *object, QEvent *event)
{
if (event->type() == QEvent::KeyPress) {
if (static_cast<QKeyEvent*>(event)->key() == Qt::Key_Escape) {
Q_EMIT keyEscapePressed();
}
}
return QItemDelegate::eventFilter(object, event);
}
} // namespace GUIUtil

View file

@ -10,6 +10,7 @@
#include <QEvent>
#include <QHeaderView>
#include <QItemDelegate>
#include <QMessageBox>
#include <QObject>
#include <QProgressBar>
@ -232,6 +233,18 @@ namespace GUIUtil
typedef ClickableProgressBar ProgressBar;
class ItemDelegate : public QItemDelegate
{
Q_OBJECT
public:
ItemDelegate(QObject* parent) : QItemDelegate(parent) {}
Q_SIGNALS:
void keyEscapePressed();
private:
bool eventFilter(QObject *object, QEvent *event);
};
} // namespace GUIUtil
#endif // BITCOIN_QT_GUIUTIL_H