From 2e26ed38bff1d1c919df5ebb35000acecd4bd736 Mon Sep 17 00:00:00 2001 From: Robert Knight Date: Mon, 14 Jul 2008 16:31:18 +0000 Subject: [PATCH] Fix accelerator removal for non-Western languages which use "(&Letter)" to represent accelerators in menu items rather than just '&' in front of one letter. MainWindow::removeMenuAccelerators() Use a regexp to match "(&Letters)" as well as '&' CCBUG: 165949 svn path=/trunk/KDE/kdebase/apps/konsole/; revision=832422 --- src/MainWindow.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index 498df089a..617dbaad1 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -110,10 +110,14 @@ MainWindow::MainWindow() } void MainWindow::removeMenuAccelerators() { + // regular expression to find accelerators in menu items. + // Matches the '&' character anywhere in the text (for Western languages) + // or " (&Letters)" (for many non-Western languages) + static QRegExp acceleratorPattern("\\s\\(\\s*\\&.*\\)|\\&"); foreach(QAction* menuItem, menuBar()->actions()) { QString itemText = menuItem->text(); - itemText.remove('&'); + itemText.remove(acceleratorPattern); menuItem->setText(itemText); } }