summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/ios
diff options
context:
space:
mode:
authorRichard Moe Gustavsen <richard.gustavsen@theqtcompany.com>2015-10-27 12:35:15 +0100
committerRichard Moe Gustavsen <richard.gustavsen@theqtcompany.com>2015-11-04 14:00:54 +0000
commitb63160b079a124ce45fb5741c65e9a4393aaa560 (patch)
treec3f359f4e76a1aff89eb7c147a49cee51e8e6358 /src/plugins/platforms/ios
parentc5239ec12d6aca0aa081ea61a3adad715d45d65c (diff)
iOS: refactor removeMnemonics(const QString &) to QPlatformTheme
This function is needed across several OS', so refactor it out to a common place. Change-Id: I35b957029c965672739d03cd2db3e87f5bd0acdf Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
Diffstat (limited to 'src/plugins/platforms/ios')
-rw-r--r--src/plugins/platforms/ios/qiosmenu.h3
-rw-r--r--src/plugins/platforms/ios/qiosmenu.mm38
2 files changed, 2 insertions, 39 deletions
diff --git a/src/plugins/platforms/ios/qiosmenu.h b/src/plugins/platforms/ios/qiosmenu.h
index ec23b55507..3beb58b503 100644
--- a/src/plugins/platforms/ios/qiosmenu.h
+++ b/src/plugins/platforms/ios/qiosmenu.h
@@ -74,9 +74,6 @@ public:
bool m_separator;
QIOSMenu *m_menu;
QKeySequence m_shortcut;
-
-private:
- QString removeMnemonics(const QString &original);
};
typedef QList<QIOSMenuItem *> QIOSMenuItemList;
diff --git a/src/plugins/platforms/ios/qiosmenu.mm b/src/plugins/platforms/ios/qiosmenu.mm
index 7aea3729fd..f68321fb3b 100644
--- a/src/plugins/platforms/ios/qiosmenu.mm
+++ b/src/plugins/platforms/ios/qiosmenu.mm
@@ -33,6 +33,7 @@
#include <qglobal.h>
#include <qguiapplication.h>
+#include <qpa/qplatformtheme.h>
#include "qiosglobal.h"
#include "qiosmenu.h"
@@ -254,7 +255,7 @@ quintptr QIOSMenuItem::tag() const
void QIOSMenuItem::setText(const QString &text)
{
- m_text = removeMnemonics(text);
+ m_text = QPlatformTheme::removeMnemonics(text);
}
void QIOSMenuItem::setMenu(QPlatformMenu *menu)
@@ -287,41 +288,6 @@ void QIOSMenuItem::setEnabled(bool enabled)
m_enabled = enabled;
}
-QString QIOSMenuItem::removeMnemonics(const QString &original)
-{
- // Copied from qcocoahelpers
- QString returnText(original.size(), 0);
- int finalDest = 0;
- int currPos = 0;
- int l = original.length();
- while (l) {
- if (original.at(currPos) == QLatin1Char('&')
- && (l == 1 || original.at(currPos + 1) != QLatin1Char('&'))) {
- ++currPos;
- --l;
- if (l == 0)
- break;
- } else if (original.at(currPos) == QLatin1Char('(') && l >= 4 &&
- original.at(currPos + 1) == QLatin1Char('&') &&
- original.at(currPos + 2) != QLatin1Char('&') &&
- original.at(currPos + 3) == QLatin1Char(')')) {
- /* remove mnemonics its format is "\s*(&X)" */
- int n = 0;
- while (finalDest > n && returnText.at(finalDest - n - 1).isSpace())
- ++n;
- finalDest -= n;
- currPos += 4;
- l -= 4;
- continue;
- }
- returnText[finalDest] = original.at(currPos);
- ++currPos;
- ++finalDest;
- --l;
- }
- returnText.truncate(finalDest);
- return returnText;
-}
QIOSMenu::QIOSMenu()
: QPlatformMenu()