VariableChooser: Fix closing with Escape key

Change-Id: Ibf0f344d50941255a28c19cf6914521c1c7b0cf6
Reviewed-by: hjk <hjk121@nokiamail.com>
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
This commit is contained in:
Eike Ziller
2014-11-05 14:32:56 +01:00
parent 222be8f2ee
commit d8edeb1e38
2 changed files with 9 additions and 4 deletions

View File

@@ -545,9 +545,14 @@ static bool handleEscapePressed(QKeyEvent *ke, QWidget *widget)
/*! /*!
* \internal * \internal
*/ */
void VariableChooser::keyPressEvent(QKeyEvent *ev) bool VariableChooser::event(QEvent *ev)
{ {
handleEscapePressed(ev, this); if (ev->type() == QEvent::KeyPress || ev->type() == QEvent::ShortcutOverride) {
QKeyEvent *ke = static_cast<QKeyEvent *>(ev);
if (handleEscapePressed(ke, this))
return true;
}
return QWidget::event(ev);
} }
/*! /*!
@@ -557,7 +562,7 @@ bool VariableChooser::eventFilter(QObject *obj, QEvent *event)
{ {
if (obj != d->currentWidget()) if (obj != d->currentWidget())
return false; return false;
if (event->type() == QEvent::KeyPress && isVisible()) { if ((event->type() == QEvent::KeyPress || event->type() == QEvent::ShortcutOverride) && isVisible()) {
QKeyEvent *ke = static_cast<QKeyEvent *>(event); QKeyEvent *ke = static_cast<QKeyEvent *>(event);
return handleEscapePressed(ke, this); return handleEscapePressed(ke, this);
} else if (event->type() == QEvent::Resize) { } else if (event->type() == QEvent::Resize) {

View File

@@ -58,7 +58,7 @@ public:
static void addSupportForChildWidgets(QWidget *parent, Utils::MacroExpander *expander); static void addSupportForChildWidgets(QWidget *parent, Utils::MacroExpander *expander);
protected: protected:
void keyPressEvent(QKeyEvent *ev); bool event(QEvent *ev);
bool eventFilter(QObject *, QEvent *event); bool eventFilter(QObject *, QEvent *event);
private: private: