MiniProjectTargetSelector: Implement Esc shortcut override

Task-number: QTCREATORBUG-9366

Change-Id: Ic70f3dc63046aafd7de0951395d80c5d7206ef43
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
This commit is contained in:
Daniel Teske
2013-05-24 16:24:04 +02:00
parent acf72893c4
commit 8f58aaf94e

View File

@@ -615,10 +615,17 @@ MiniProjectTargetSelector::MiniProjectTargetSelector(QAction *targetSelectorActi
bool MiniProjectTargetSelector::event(QEvent *event) bool MiniProjectTargetSelector::event(QEvent *event)
{ {
if (event->type() != QEvent::LayoutRequest) if (event->type() == QEvent::LayoutRequest) {
return QWidget::event(event);
doLayout(true); doLayout(true);
return true; return true;
} else if (event->type() == QEvent::ShortcutOverride) {
if (static_cast<QKeyEvent *>(event)->key() == Qt::Key_Escape) {
event->accept();
return true;
}
}
return QWidget::event(event);
} }
class IndexSorter class IndexSorter
@@ -1319,7 +1326,8 @@ void MiniProjectTargetSelector::keyPressEvent(QKeyEvent *ke)
{ {
if (ke->key() == Qt::Key_Return if (ke->key() == Qt::Key_Return
|| ke->key() == Qt::Key_Enter || ke->key() == Qt::Key_Enter
|| ke->key() == Qt::Key_Space) || ke->key() == Qt::Key_Space
|| ke->key() == Qt::Key_Escape)
hide(); hide();
QWidget::keyPressEvent(ke); QWidget::keyPressEvent(ke);
} }
@@ -1337,7 +1345,8 @@ void MiniProjectTargetSelector::keyReleaseEvent(QKeyEvent *ke)
} }
if (ke->key() == Qt::Key_Return if (ke->key() == Qt::Key_Return
|| ke->key() == Qt::Key_Enter || ke->key() == Qt::Key_Enter
|| ke->key() == Qt::Key_Space) || ke->key() == Qt::Key_Space
|| ke->key() == Qt::Key_Escape)
return; return;
QWidget::keyReleaseEvent(ke); QWidget::keyReleaseEvent(ke);
} }