forked from qt-creator/qt-creator
Workaround QCompleter issue with closing its popup on escape
QCompleter doesn't close its popup if there's a application wide 'escape' shortcut. This commit adds the necessary shortcut overrides for CompletingTextEdit and FancyLineEdit, which fixes the issue at least for find tool bar, advanced search, gerrit dialog and description field of submit editor. Task-number: QTCREATORBUG-9453 Change-Id: Ib1df218ab6b9a54fbf19d6132c6edd8e83ace46c Reviewed-by: Orgad Shaneh <orgads@gmail.com> Reviewed-by: Eike Ziller <eike.ziller@digia.com>
This commit is contained in:
@@ -31,13 +31,15 @@
|
||||
#include "historycompleter.h"
|
||||
#include "qtcassert.h"
|
||||
|
||||
#include <QDebug>
|
||||
#include <QPropertyAnimation>
|
||||
#include <QAbstractItemView>
|
||||
#include <QApplication>
|
||||
#include <QDebug>
|
||||
#include <QDesktopWidget>
|
||||
#include <QKeyEvent>
|
||||
#include <QMenu>
|
||||
#include <QPainter>
|
||||
#include <QPropertyAnimation>
|
||||
#include <QStyle>
|
||||
#include <QDesktopWidget>
|
||||
|
||||
/*! Opens a menu at the specified widget position.
|
||||
* This functions computes the position where to show the menu, and opens it with
|
||||
@@ -251,6 +253,20 @@ void FancyLineEdit::resizeEvent(QResizeEvent *)
|
||||
updateButtonPositions();
|
||||
}
|
||||
|
||||
bool FancyLineEdit::event(QEvent *e)
|
||||
{
|
||||
// workaround for QTCREATORBUG-9453
|
||||
if (e->type() == QEvent::ShortcutOverride && completer()
|
||||
&& completer()->popup() && completer()->popup()->isVisible()) {
|
||||
QKeyEvent *ke = static_cast<QKeyEvent *>(e);
|
||||
if (ke->key() == Qt::Key_Escape && !ke->modifiers()) {
|
||||
ke->accept();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return QLineEdit::event(e);
|
||||
}
|
||||
|
||||
void FancyLineEdit::setButtonPixmap(Side side, const QPixmap &buttonPixmap)
|
||||
{
|
||||
d->m_iconbutton[side]->setPixmap(buttonPixmap);
|
||||
|
||||
Reference in New Issue
Block a user