]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt4/CustomizedWidgets.cpp
Disable CheckTeX while buffer is processed
[lyx.git] / src / frontends / qt4 / CustomizedWidgets.cpp
index 4ae2fe6f94daedb9ac13d2a987edda37239049c0..59ebad9cc86078ecd25af4e48db9822486515528 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * \file GuiPrefs.cpp
+ * \file CustomizedWidgets.cpp
  * This file is part of LyX, the document processor.
  * Licence details can be found in the file COPYING.
  *
@@ -45,7 +45,6 @@ namespace frontend {
 ShortcutWidget::ShortcutWidget(QWidget * parent)
        : QLabel(parent), keysequence_()
 {
-       QApplication::instance()->installEventFilter(this);
        has_cursor_ = false;
        setFrameShape(QFrame::Panel);
        setFrameShadow(QFrame::Raised);
@@ -62,31 +61,13 @@ void ShortcutWidget::reset()
 }
 
 
-bool ShortcutWidget::eventFilter(QObject * obj, QEvent * e)
-{
-       if (!has_cursor_)
-               return false;
-
-       switch (e->type()) {
-               // swallow these if we have focus and they come from elsewhere
-               case QEvent::Shortcut:
-               case QEvent::ShortcutOverride:
-                       if (obj != this)
-                               return true;
-               default: 
-                       break;
-       }
-       return false;
-}
-
-
 KeySequence const ShortcutWidget::getKeySequence() const
 {
        return keysequence_;
 }
 
 
-void ShortcutWidget::setKeySequence(lyx::KeySequence const s)
+void ShortcutWidget::setKeySequence(lyx::KeySequence const s)
 {
        keysequence_ = s;
 }
@@ -124,13 +105,17 @@ bool ShortcutWidget::event(QEvent * e)
                        setFrameShadow(QFrame::Sunken);
                        break;
                case QEvent::ShortcutOverride:
+                       // accepting the ShortcutOverride event lets us override shortcuts
+                       // and capture them as keypress events instead
+                       e->accept();
+                       return true;
+               case QEvent::KeyPress:
                        keyPressEvent(static_cast<QKeyEvent *>(e));
                        return true;
                case QEvent::KeyRelease:
                case QEvent::Shortcut:
-               case QEvent::KeyPress:
                        return true;
-               default: 
+               default:
                        break;
        }
        return QLabel::event(e);
@@ -142,9 +127,10 @@ void ShortcutWidget::appendToSequence(QKeyEvent * e)
        KeySymbol sym;
        setKeySymbol(&sym, e);
 
-       KeyModifier mod = lyx::q_key_state(e->modifiers());
-       
-       keysequence_.addkey(sym, mod, lyx::NoModifier);
+       if (sym.isOK()) {
+               KeyModifier mod = lyx::q_key_state(e->modifiers());
+               keysequence_.addkey(sym, mod, lyx::NoModifier);
+       }
 }