From 9f67cede589444dd9a8b0c4af1b86b2d69ba26da Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=BCrgen=20Spitzm=C3=BCller?= Date: Thu, 25 Feb 2010 12:56:12 +0000 Subject: [PATCH] Menus.cpp: priorize capitals as language accelerators. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33566 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/frontends/qt4/Menus.cpp | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/frontends/qt4/Menus.cpp b/src/frontends/qt4/Menus.cpp index b2a887d06e..11f59fbe6d 100644 --- a/src/frontends/qt4/Menus.cpp +++ b/src/frontends/qt4/Menus.cpp @@ -780,16 +780,32 @@ void MenuDefinition::expandLanguageSelector(Buffer const * buf) cit != languages.end(); ++cit) { QString label = qt_((*cit)->display()); // try to add an accelerator + bool success = false; + // try capitals first for (int i = 0; i < label.size(); ++i) { - if (label[i].isSpace()) + if (!label[i].isUpper()) continue; QString const ch = QString(label[i]); if (!accelerators.contains(ch, Qt::CaseInsensitive)) { label = label + toqstr("|") + ch; accelerators.append(ch); + success = true; break; } } + // if all capitals are taken, try the rest + if (!success) { + for (int i = 0; i < label.size(); ++i) { + if (label[i].isSpace()) + continue; + QString const ch = QString(label[i]); + if (!accelerators.contains(ch, Qt::CaseInsensitive)) { + label = label + toqstr("|") + ch; + accelerators.append(ch); + break; + } + } + } MenuItem w(MenuItem::Command, label, FuncRequest(LFUN_LANGUAGE, (*cit)->lang())); item.submenu().addWithStatusCheck(w); -- 2.39.2