From: Jürgen Spitzmüller Date: Thu, 25 Feb 2010 12:56:12 +0000 (+0000) Subject: Menus.cpp: priorize capitals as language accelerators. X-Git-Tag: 2.0.0~3951 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=9f67cede589444dd9a8b0c4af1b86b2d69ba26da;p=features.git Menus.cpp: priorize capitals as language accelerators. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33566 a592a061-630c-0410-9148-cb99ea01b6c8 --- 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);