From 56b2ee289b0d9fe6c9752010bb5501d0f0137413 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=BCrgen=20Spitzm=C3=BCller?= Date: Sun, 17 Jan 2010 12:27:44 +0000 Subject: [PATCH] * GuiSpellchecker: - implement event filter and allow selection of suggestions with the keyboard (second part of bug 6460). git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33069 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/frontends/qt4/GuiSpellchecker.cpp | 21 +++++++++++++++++++++ src/frontends/qt4/GuiSpellchecker.h | 2 ++ 2 files changed, 23 insertions(+) diff --git a/src/frontends/qt4/GuiSpellchecker.cpp b/src/frontends/qt4/GuiSpellchecker.cpp index c6a4adf20b..10edda4462 100644 --- a/src/frontends/qt4/GuiSpellchecker.cpp +++ b/src/frontends/qt4/GuiSpellchecker.cpp @@ -41,6 +41,7 @@ #include "support/textutils.h" #include +#include #include "SpellChecker.h" @@ -77,6 +78,8 @@ GuiSpellchecker::GuiSpellchecker(GuiView & lv) this, SLOT(on_replacePB_clicked())); d->ui.wordED->setReadOnly(true); + + d->ui.suggestionsLW->installEventFilter(this); } @@ -92,6 +95,24 @@ void GuiSpellchecker::on_closePB_clicked() } +bool GuiSpellchecker::eventFilter(QObject *obj, QEvent *event) +{ + if (obj == d->ui.suggestionsLW && event->type() == QEvent::KeyPress) { + QKeyEvent *e = static_cast (event); + if (e->key() == Qt::Key_Enter || e->key() == Qt::Key_Return) { + on_suggestionsLW_itemClicked(d->ui.suggestionsLW->currentItem()); + on_replacePB_clicked(); + return true; + } else if (e->key() == Qt::Key_Right) { + on_suggestionsLW_itemClicked(d->ui.suggestionsLW->currentItem()); + return true; + } + } + // standard event processing + return QWidget::eventFilter(obj, event); +} + + void GuiSpellchecker::on_suggestionsLW_itemClicked(QListWidgetItem * item) { if (d->ui.replaceCO->count() != 0) diff --git a/src/frontends/qt4/GuiSpellchecker.h b/src/frontends/qt4/GuiSpellchecker.h index 58458e8ec8..937d4f294b 100644 --- a/src/frontends/qt4/GuiSpellchecker.h +++ b/src/frontends/qt4/GuiSpellchecker.h @@ -62,6 +62,8 @@ private: /// show count of checked words at normal exit void showSummary(); + bool eventFilter(QObject *obj, QEvent *event); + struct Private; Private * const d; }; -- 2.39.2