]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt4/GuiApplication.cpp
Don't load bibtopic with Biblatex
[lyx.git] / src / frontends / qt4 / GuiApplication.cpp
index ef945c9e8c6b091da84e2044973a409e7bb4d339..2f6f8f202b0ea328607650bdbca8cba023cb55ec 100644 (file)
@@ -2119,19 +2119,43 @@ void GuiApplication::handleKeyFunc(FuncCode action)
 }
 
 
+//Keep this in sync with GuiApplication::processKeySym below
+bool GuiApplication::queryKeySym(KeySymbol const & keysym,
+                                 KeyModifier state) const
+{
+       // Do nothing if we have nothing
+       if (!keysym.isOK() || keysym.isModifier())
+               return false;
+       // Do a one-deep top-level lookup for cancel and meta-fake keys.
+       KeySequence seq;
+       FuncRequest func = seq.addkey(keysym, state);
+       // When not cancel or meta-fake, do the normal lookup.
+       if ((func.action() != LFUN_CANCEL) && (func.action() != LFUN_META_PREFIX)) {
+               seq = d->keyseq;
+               func = seq.addkey(keysym, (state | d->meta_fake_bit));
+       }
+       // Maybe user can only reach the key via holding down shift.
+       // Let's see. But only if shift is the only modifier
+       if (func.action() == LFUN_UNKNOWN_ACTION && state == ShiftModifier)
+               // If addkey looked up a command and did not find further commands then
+               // seq has been reset at this point
+               func = seq.addkey(keysym, NoModifier);
+
+       LYXERR(Debug::KEY, " Key (queried) [action=" << func.action() << "]["
+              << seq.print(KeySequence::Portable) << ']');
+       return func.action() != LFUN_UNKNOWN_ACTION;
+}
+
+
+//Keep this in sync with GuiApplication::queryKeySym above
 void GuiApplication::processKeySym(KeySymbol const & keysym, KeyModifier state)
 {
        LYXERR(Debug::KEY, "KeySym is " << keysym.getSymbolName());
 
        // Do nothing if we have nothing (JMarc)
-       if (!keysym.isOK()) {
-               LYXERR(Debug::KEY, "Empty kbd action (probably composing)");
-               if (current_view_)
-                       current_view_->restartCursor();
-               return;
-       }
-
-       if (keysym.isModifier()) {
+       if (!keysym.isOK() || keysym.isModifier()) {
+               if (!keysym.isOK())
+                       LYXERR(Debug::KEY, "Empty kbd action (probably composing)");
                if (current_view_)
                        current_view_->restartCursor();
                return;
@@ -2177,6 +2201,8 @@ void GuiApplication::processKeySym(KeySymbol const & keysym, KeyModifier state)
        // Let's see. But only if shift is the only modifier
        if (func.action() == LFUN_UNKNOWN_ACTION && state == ShiftModifier) {
                LYXERR(Debug::KEY, "Trying without shift");
+               // If addkey looked up a command and did not find further commands then
+               // seq has been reset at this point
                func = d->keyseq.addkey(keysym, NoModifier);
                LYXERR(Debug::KEY, "Action now " << func.action());
        }
@@ -2952,7 +2978,7 @@ GuiApplication::ReturnValues GuiApplication::readUIFile(FileName ui_path)
                        QString const file = toqstr(lex.getString());
                        bool const success = readUIFile(file, true);
                        if (!success) {
-                               LYXERR0("Failed to read inlcuded file: " << fromqstr(file));
+                               LYXERR0("Failed to read included file: " << fromqstr(file));
                                return ReadError;
                        }
                        break;