]> git.lyx.org Git - features.git/commitdiff
Rewrite FindAndReplace::eventFilter() and make it more human-readable.
authorVincent van Ravesteijn <vfr@lyx.org>
Wed, 27 Jan 2010 19:17:18 +0000 (19:17 +0000)
committerVincent van Ravesteijn <vfr@lyx.org>
Wed, 27 Jan 2010 19:17:18 +0000 (19:17 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33238 a592a061-630c-0410-9148-cb99ea01b6c8

src/frontends/qt4/FindAndReplace.cpp

index e91c3af639586754b48dca149c617a1fa63cf23a..fd36f45f4cd1872e3284c5acf830cd4d784bc08f 100644 (file)
@@ -82,57 +82,64 @@ FindAndReplaceWidget::FindAndReplaceWidget(GuiView & view)
 }
 
 
-bool FindAndReplaceWidget::eventFilter(QObject *obj, QEvent *event)
+bool FindAndReplaceWidget::eventFilter(QObject * obj, QEvent * event)
 {
-       if (obj == find_work_area_
-           && event->type() == QEvent::KeyPress) {
-               QKeyEvent *e = static_cast<QKeyEvent *> (event);
-               if (e->key() == Qt::Key_Escape
-                   && e->modifiers() == Qt::NoModifier) {
+       if (event->type() != QEvent::KeyPress
+                 || (obj != find_work_area_ && obj != replace_work_area_))
+               return QWidget::eventFilter(obj, event);
+
+       QKeyEvent * e = static_cast<QKeyEvent *> (event);
+       switch (e->key()) {
+       case Qt::Key_Escape:
+               if (e->modifiers() == Qt::NoModifier) {
                        hideDialog();
                        return true;
-               } else if (e->key() == Qt::Key_Enter
-                          || e->key() == Qt::Key_Return) {
-                       if (e->modifiers() == Qt::ShiftModifier) {
+               }
+               break;
+
+       case Qt::Key_Enter:
+       case Qt::Key_Return:
+               if (e->modifiers() == Qt::ShiftModifier) {
+                       if (obj == find_work_area_)
                                on_findPrevPB_clicked();
-                               return true;
-                       } else if (e->modifiers() == Qt::NoModifier) {
+                       else
+                               on_replacePrevPB_clicked();
+                       return true;
+               } else if (e->modifiers() == Qt::NoModifier) {
+                       if (obj == find_work_area_)
                                on_findNextPB_clicked();
-                               return true;
-                       }
-               } else if (e->key() == Qt::Key_Tab
-                          && e->modifiers() == Qt::NoModifier) {
-                       LYXERR(Debug::FIND, "Focusing replace WA");
-                       replace_work_area_->setFocus();
+                       else
+                               on_replaceNextPB_clicked();
                        return true;
                }
-       }
-       if (obj == replace_work_area_
-           && event->type() == QEvent::KeyPress) {
-               QKeyEvent *e = static_cast<QKeyEvent *> (event);
-               if (e->key() == Qt::Key_Escape
-                   && e->modifiers() == Qt::NoModifier) {
-                       hideDialog();
-                       return true;
-               } else if (e->key() == Qt::Key_Enter
-                          || e->key() == Qt::Key_Return) {
-                       if (e->modifiers() == Qt::ShiftModifier) {
-                               on_replacePrevPB_clicked();
-                               return true;
-                       } else if (e->modifiers() == Qt::NoModifier) {
-                               on_replaceNextPB_clicked();
+               break;
+
+       case Qt::Key_Tab:
+               if (e->modifiers() == Qt::NoModifier) {
+                       if (obj == find_work_area_){
+                               LYXERR(Debug::FIND, "Focusing replace WA");
+                               replace_work_area_->setFocus();
                                return true;
                        }
-               } else if (e->key() == Qt::Key_Backtab) {
+               }
+               break;
+
+       case Qt::Key_Backtab:
+               if (obj == replace_work_area_) {
                        LYXERR(Debug::FIND, "Focusing find WA");
                        find_work_area_->setFocus();
                        return true;
                }
+               break;
+
+       default:
+               break;
        }
        // standard event processing
        return QWidget::eventFilter(obj, event);
 }
 
+
 static docstring buffer_to_latex(Buffer & buffer) {
        OutputParams runparams(&buffer.params().encoding());
        odocstringstream os;