SVN commit 1028050 by ivan: fixed bug 208400 M +2 -2 app/src/models/Applications.cpp M +9 -7 libs/lancelot/widgets/BasicWidget.cpp --- branches/KDE/4.3/kdeplasma-addons/applets/lancelot/app/src/models/Applications.cpp #1028049:1028050 @@ -89,7 +89,7 @@ continue; data.icon = KIcon(service->icon()); - data.name = service->name(); + data.name = service->name().replace("&", "&&"); data.description = service->genericName(); data.desktopFile = service->entryPath(); @@ -112,7 +112,7 @@ if (!found) { m_submodels.append(new Applications( serviceGroup->relPath(), - serviceGroup->caption(), + serviceGroup->caption().replace("&", "&&"), KIcon(serviceGroup->icon()) )); } else { --- branches/KDE/4.3/kdeplasma-addons/applets/lancelot/libs/lancelot/widgets/BasicWidget.cpp #1028049:1028050 @@ -68,21 +68,22 @@ parent->setGroupByName("BasicWidget"); } - int shortcutPosition(const QString & text) + int shortcutPosition(QString & text) { Q_UNUSED(text); int index = 0; - while ((index = title.indexOf('&', index)) != -1) { - if (index == title.size() - 1) { + while ((index = text.indexOf('&', index)) != -1) { + if (index == text.size() - 1) { return -1; } - if (title.at(index + 1) != '&') { + if (text.at(index + 1) != '&') { return index + 1; } - index += 2; + index++; + text.remove(index, 1); } return -1; } @@ -415,10 +416,11 @@ return d->iconInSvg; } -void BasicWidget::setTitle(const QString & title) +void BasicWidget::setTitle(const QString & value) { - d->title = title; + d->title = value; + QString title(value); int pos = d->shortcutPosition(title); if (pos > -1) { setShortcutKey(title.at(pos));