]> git.lyx.org Git - lyx.git/commitdiff
Convert shortcut strings to unicode (required by Qt/Mac); restore
authorJean-Marc Lasgouttes <lasgouttes@lyx.org>
Wed, 13 Dec 2006 14:13:01 +0000 (14:13 +0000)
committerJean-Marc Lasgouttes <lasgouttes@lyx.org>
Wed, 13 Dec 2006 14:13:01 +0000 (14:13 +0000)
shortcuts in menus on the Mac.

* src/frontends/qt4/QLPopupMenu.C (addBinding): remove special
OS X code (and hopefully restore shortcuts for LyX/Mac).

* src/lyxfunc.C (processKeySym, dispatch, sendDispatchMessage,
viewStatusMessage): adapt to changes below.

* src/MenuBackend.C (binding): adapt to changes below.

* src/kbmap.C (printKey, print, printbindings): return a
docstring; adapt to kbsequence changes.

* src/kbsequence.C (print, printOptions): return a docstring.

* src/frontends/LyXKeySym.h (print): return a docstring.

* src/frontends/qt4/QLyXKeySym.C (print): return a docstring.
(qprint): remove.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16265 a592a061-630c-0410-9148-cb99ea01b6c8

src/MenuBackend.C
src/frontends/LyXKeySym.h
src/frontends/qt4/QLPopupMenu.C
src/frontends/qt4/QLyXKeySym.C
src/frontends/qt4/QLyXKeySym.h
src/kbmap.C
src/kbmap.h
src/kbsequence.C
src/kbsequence.h
src/lyxfunc.C

index c2e107f22455c1924a9e824cb3c71fd930d8366b..6313b7842bf03d60085fa24ac4052931dea5e062 100644 (file)
@@ -144,7 +144,7 @@ docstring const MenuItem::binding() const
        kb_keymap::Bindings bindings = theTopLevelKeymap().findbindings(func_);
 
        if (bindings.size()) {
-               return from_utf8(bindings.begin()->print());
+               return bindings.begin()->print();
        } else {
                lyxerr[Debug::KBMAP]
                        << "No binding for "
index 4e1eb406d8e311884c46d66f2eec672e74c9e805..b5b536b8d95dfd7255a5d1ac90a2b8050324e0ef 100644 (file)
@@ -16,6 +16,8 @@
 
 #include "key_state.h"
 
+#include "support/docstring.h"
+
 #include <boost/shared_ptr.hpp>
 
 
@@ -58,7 +60,7 @@ public:
         * Return a string describing the KeySym with modifier mod.
         * This should use the native UI format when applicable
         */
-       virtual std::string const print(key_modifier::state mod) const = 0;
+       virtual docstring const print(key_modifier::state mod) const = 0;
 };
 
 
index 03c221ff507bbf2ee405d1d975087584c3a33996..3acc391ee0adbc699ef9f261b9b4edfe03de65d1 100644 (file)
 #include "debug.h"
 
 
-#ifdef Q_WS_MACX
-#include "kbmap.h"
-#include "QLyXKeySym.h"
-#endif
-
 using std::make_pair;
 using std::string;
 using std::pair;
@@ -146,31 +141,10 @@ docstring const QLPopupMenu::getLabel(MenuItem const & mi)
 /// \todo Mac specific binding handling.
 void QLPopupMenu::addBinding(docstring & label, MenuItem const & mi)
 {
-#ifndef Q_WS_MACX
-
-               docstring const binding(mi.binding());
-               if (!binding.empty()) {
-                       label += char_type('\t') + binding;
-               }
-
-#else
-                       /* There are two constraints on Qt/Mac: (1)
-                          the bindings require a unicode string to be
-                          represented meaningfully and std::string
-                          does not work (2) only 1-key bindings can
-                          be represented in menus.
-
-                          This is why the unpleasant hack bellow is
-                          needed (JMarc)
-                       */
-/*                     pair<LyXKeySym const *, key_modifier::state>
-                               binding = toplevel_keymap->find1keybinding(mi.func());
-                       if (binding.first) {
-                               QLyXKeySym const *key = static_cast<QLyXKeySym const *>(binding.first);
-                               label += '\t' + key->qprint(binding.second);
-                       }
-*/
-#endif
+       docstring const binding(mi.binding());
+       if (!binding.empty()) {
+               label += '\t' + binding;
+       }
 }
 
 /// \todo Fix Mac specific menu hack
index 7580dc2e1128907ffce75d355e782260787770c0..a6450ed1aa64a0c99058a16e39180665691a4634 100644 (file)
@@ -211,7 +211,7 @@ size_t QLyXKeySym::getUCSEncoded() const
 }
 
 
-QString const QLyXKeySym::qprint(key_modifier::state mod) const
+docstring const QLyXKeySym::print(key_modifier::state mod) const
 {
        int tmpkey = key_;
 
@@ -222,13 +222,7 @@ QString const QLyXKeySym::qprint(key_modifier::state mod) const
        if (mod & key_modifier::alt)
                tmpkey += Qt::ALT;
 
-       return QKeySequence(tmpkey).toString();
-}
-
-
-string const QLyXKeySym::print(key_modifier::state mod) const
-{
-       return fromqstr(qprint(mod));
+       return qstring_to_ucs4(QKeySequence(tmpkey).toString());
 }
 
 
index d2427e57d6308c305a750d93dffc78c51109f3e0..6060189b2c322ea249f287d816a12c97188fa74e 100644 (file)
@@ -59,10 +59,7 @@ public:
        virtual size_t getUCSEncoded() const;
 
        /// Return a human-readable version of a key+modifier pair.
-       virtual std::string const print(key_modifier::state mod) const;
-
-       ///
-       QString const qprint(key_modifier::state mod) const;
+       virtual docstring const print(key_modifier::state mod) const;
 
        ///
        int key() const {
index b744f9d88f1771fa187fd2bf154f09c9b4ce8705..fd55a7c5ff5823b3183abe8d24ef08d71e1f4984 100644 (file)
@@ -55,7 +55,7 @@ string const kb_keymap::printKeySym(LyXKeySym const & key,
 }
 
 
-string const kb_keymap::printKey(kb_key const & key) const
+docstring const kb_keymap::printKey(kb_key const & key) const
 {
        return key.code->print(key.mod.first);
 }
@@ -220,9 +220,9 @@ kb_keymap::lookup(LyXKeySymPtr key,
 }
 
 
-string const kb_keymap::print() const
+docstring const kb_keymap::print() const
 {
-       string buf;
+       docstring buf;
        Table::const_iterator end = table.end();
        for (Table::const_iterator cit = table.begin(); cit != end; ++cit) {
                buf += printKey((*cit));
@@ -252,7 +252,7 @@ void kb_keymap::defkey(kb_sequence * seq,
                        if (r + 1 == seq->length()) {
                                lyxerr[Debug::KBMAP]
                                        << "Warning: New binding for '"
-                                       << seq->print()
+                                       << to_utf8(seq->print())
                                        << "' is overriding old binding..."
                                        << endl;
                                if (it->table.get()) {
@@ -262,7 +262,8 @@ void kb_keymap::defkey(kb_sequence * seq,
                                it->func.origin = FuncRequest::KEYBOARD;
                                return;
                        } else if (!it->table.get()) {
-                               lyxerr << "Error: New binding for '" << seq->print()
+                               lyxerr << "Error: New binding for '" 
+                                      << to_utf8(seq->print())
                                       << "' is overriding old binding..."
                                               << endl;
                                return;
@@ -289,9 +290,9 @@ void kb_keymap::defkey(kb_sequence * seq,
 }
 
 
-string const kb_keymap::printbindings(FuncRequest const & func) const
+docstring const kb_keymap::printbindings(FuncRequest const & func) const
 {
-       std::ostringstream res;
+       odocstringstream res;
        Bindings bindings = findbindings(func);
        for (Bindings::const_iterator cit = bindings.begin();
             cit != bindings.end() ; ++cit)
index edadfaa9c641881f5e57f3c4b95f853561b5ed2e..029a4e1b4eafcf406187ddd9b9eb132a77629a3d 100644 (file)
@@ -19,6 +19,8 @@
 #include "frontends/key_state.h"
 #include "frontends/LyXKeySym.h"
 
+#include "support/docstream.h"
+
 #include <boost/shared_ptr.hpp>
 
 #include <vector>
@@ -44,7 +46,7 @@ public:
        bool read(std::string const & bind_file);
 
        /// print all available keysyms
-       std::string const print() const;
+       docstring const print() const;
 
        /**
         * Look up a key press in the keymap.
@@ -64,7 +66,7 @@ public:
        Bindings findbindings(FuncRequest const & func) const;
 
        /// Given an action, print the keybindings.
-       std::string const printbindings(FuncRequest const & func) const;
+       docstring const printbindings(FuncRequest const & func) const;
 
        /**
         *  Given an action, find the first 1-key binding (if it exists).
@@ -109,7 +111,7 @@ private:
                    unsigned int r = 0);
 
        ///  Returns a string of the given key
-       std::string const printKey(kb_key const & key) const;
+       docstring const printKey(kb_key const & key) const;
 
        /**
         * Given an action, find all keybindings
index dc1706dda6939b84980c55bc396ddbecf97b6545..f37afa95767c685d511bd5c58202dd2d11a8be07 100644 (file)
@@ -130,9 +130,9 @@ string::size_type kb_sequence::parse(string const & s)
 }
 
 
-string const kb_sequence::print() const
+docstring const kb_sequence::print() const
 {
-       string buf;
+       docstring buf;
 
        //if (deleted_)
        //      return buf;
@@ -151,16 +151,16 @@ string const kb_sequence::print() const
 }
 
 
-string const kb_sequence::printOptions() const
+docstring const kb_sequence::printOptions() const
 {
-       string buf;
+       docstring buf;
 
        buf += print();
 
        if (!curmap)
                return buf;
 
-       buf += to_utf8(_("   options: "));
+       buf += _("   options: ");
        buf += curmap->print();
        return buf;
 }
index 036cdcf43bce7efd56e79b0d170cdce8b1d7170f..6fa089880cfcf86f852d0b440f0fd79e8d5a7b28 100644 (file)
@@ -65,13 +65,13 @@ public:
         * Return the current sequence as a string.
         * @see parse()
         */
-       std::string const print() const;
+       docstring const print() const;
 
        /**
         * Return the current sequence and available options as
         * a string. No options are added if no curmap kb map exists.
         */
-       std::string const printOptions() const;
+       docstring const printOptions() const;
 
        /// Mark the sequence as deleted.
        void mark_deleted();
index 1ece1addda7cd565d9c24aee084a518f9ffe4c68..35edfe2e1bc7ef27f324a84583660ede2f8eebcc 100644 (file)
@@ -293,7 +293,7 @@ void LyXFunc::processKeySym(LyXKeySymPtr keysym, key_modifier::state state)
                lyxerr << BOOST_CURRENT_FUNCTION
                       << " Key [action="
                       << func.action << "]["
-                      << keyseq->print() << ']'
+                      << to_utf8(keyseq->print()) << ']'
                       << endl;
        }
 
@@ -302,7 +302,7 @@ void LyXFunc::processKeySym(LyXKeySymPtr keysym, key_modifier::state state)
        // num_bytes == 0? (Lgb)
 
        if (keyseq->length() > 1) {
-               lyx_view_->message(from_utf8(keyseq->print()));
+               lyx_view_->message(keyseq->print());
        }
 
 
@@ -786,7 +786,7 @@ void LyXFunc::dispatch(FuncRequest const & cmd)
 
                case LFUN_COMMAND_PREFIX:
                        BOOST_ASSERT(lyx_view_);
-                       lyx_view_->message(from_utf8(keyseq->printOptions()));
+                       lyx_view_->message(keyseq->printOptions());
                        break;
 
                case LFUN_COMMAND_EXECUTE:
@@ -807,7 +807,7 @@ void LyXFunc::dispatch(FuncRequest const & cmd)
 
                case LFUN_META_PREFIX:
                        meta_fake_bit = key_modifier::alt;
-                       setMessage(from_utf8(keyseq->print()));
+                       setMessage(keyseq->print());
                        break;
 
                case LFUN_BUFFER_TOGGLE_READ_ONLY:
@@ -1167,7 +1167,7 @@ void LyXFunc::dispatch(FuncRequest const & cmd)
                        break;
 
                case LFUN_SERVER_NOTIFY:
-                       dispatch_buffer = from_utf8(keyseq->print());
+                       dispatch_buffer = keyseq->print();
                        theLyXServer().notifyClient(to_utf8(dispatch_buffer));
                        break;
 
@@ -1763,7 +1763,7 @@ void LyXFunc::sendDispatchMessage(docstring const & msg, FuncRequest const & cmd
                }
        }
 
-       string const shortcuts = theTopLevelKeymap().printbindings(cmd);
+       string const shortcuts = to_utf8(theTopLevelKeymap().printbindings(cmd));
 
        if (!shortcuts.empty())
                comname += ": " + shortcuts;
@@ -2028,12 +2028,12 @@ string const LyXFunc::viewStatusMessage()
 {
        // When meta-fake key is pressed, show the key sequence so far + "M-".
        if (wasMetaKey())
-               return keyseq->print() + "M-";
+               return to_utf8(keyseq->print() + "M-");
 
        // Else, when a non-complete key sequence is pressed,
        // show the available options.
        if (keyseq->length() > 0 && !keyseq->deleted())
-               return keyseq->printOptions();
+               return to_utf8(keyseq->printOptions());
 
        if (!view()->buffer())
                return to_utf8(_("Welcome to LyX!"));