]> git.lyx.org Git - features.git/blobdiff - src/KeyMap.cpp
Clean up a bit.
[features.git] / src / KeyMap.cpp
index 966b4e235ed55bd6580865f4c5f89ab1fa1f42f6..7cc25765ab04470a55feff6b4803ef910591f4cd 100644 (file)
@@ -3,10 +3,10 @@
  * This file is part of LyX, the document processor.
  * Licence details can be found in the file COPYING.
  *
- * \author Lars Gullik Bjønnes
+ * \author Lars Gullik Bjønnes
  * \author Jean-Marc Lasgouttes
  * \author John Levon
- * \author André Pönitz
+ * \author André Pönitz
  *
  * Full author contact details are available in file CREDITS.
  */
@@ -85,12 +85,11 @@ size_t KeyMap::unbind(string const & seq, FuncRequest const & func)
 }
 
 
-bool KeyMap::hasBinding(KeySequence const & seq, FuncRequest const & func,
-               unsigned int r)
+FuncRequest KeyMap::getBinding(KeySequence const & seq, unsigned int r)
 {
        KeySymbol code = seq.sequence[r];
        if (!code.isOK())
-               return false;
+               return FuncRequest::unknown;
 
        KeyModifier const mod1 = seq.modifiers[r].first;
        KeyModifier const mod2 = seq.modifiers[r].second;
@@ -102,12 +101,12 @@ bool KeyMap::hasBinding(KeySequence const & seq, FuncRequest const & func,
                    && mod1 == it->mod.first
                    && mod2 == it->mod.second) {
                        if (r + 1 == seq.length())
-                               return it->func == func;
+                               return it->func;
                        else if (it->table.get())
-                               return it->table->hasBinding(seq, func, r + 1);
+                               return it->table->getBinding(seq, r + 1);
                }
        }
-       return false;
+       return FuncRequest::unknown;
 }
 
 
@@ -263,8 +262,7 @@ FuncRequest const & KeyMap::lookup(KeySymbol const &key,
                  KeyModifier mod, KeySequence * seq) const
 {
        if (table.empty()) {
-               seq->curmap = seq->stdmap;
-               seq->mark_deleted();
+               seq->reset();
                return FuncRequest::unknown;
        }
 
@@ -282,16 +280,14 @@ FuncRequest const & KeyMap::lookup(KeySymbol const &key,
                                return prefix;
                        } else {
                                // final key - reset map
-                               seq->curmap = seq->stdmap;
-                               seq->mark_deleted();
+                               seq->reset();
                                return cit->func;
                        }
                }
        }
 
        // error - key not found:
-       seq->curmap = seq->stdmap;
-       seq->mark_deleted();
+       seq->reset();
 
        return FuncRequest::unknown;
 }
@@ -398,7 +394,8 @@ void KeyMap::unbind(KeySequence * seq, FuncRequest const & func, unsigned int r)
 }
 
 
-docstring KeyMap::printBindings(FuncRequest const & func) const
+docstring KeyMap::printBindings(FuncRequest const & func,
+                               KeySequence::outputFormat format) const
 {
        Bindings bindings = findBindings(func);
        if (bindings.empty())
@@ -407,11 +404,11 @@ docstring KeyMap::printBindings(FuncRequest const & func) const
        odocstringstream res;
        Bindings::const_iterator cit = bindings.begin();
        Bindings::const_iterator cit_end = bindings.end();
-       // prin the first item
-       res << cit->print(KeySequence::ForGui);
+       // print the first item
+       res << cit->print(format);
        // more than one shortcuts?
        for (++cit; cit != cit_end; ++cit)
-               res << ", " << cit->print(KeySequence::ForGui);
+               res << ", " << cit->print(format);
        return res.str();
 }