summaryrefslogtreecommitdiffstats
path: root/src/gui/kernel/qkeysequence.cpp
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@nokia.com>2009-11-13 11:42:54 (GMT)
committerOswald Buddenhagen <oswald.buddenhagen@nokia.com>2009-11-13 11:42:54 (GMT)
commit3286c4d489905d27183a9ba18048c11a5af8913c (patch)
tree392cc7137ffd69b305272f672db55a73be4f1dae /src/gui/kernel/qkeysequence.cpp
parent1bc1e5c0b76a92594c5254e72d25165879e753d2 (diff)
parent6b651e5f69b656c6c6fa05b6a81674a4fd56a160 (diff)
downloadQt-3286c4d489905d27183a9ba18048c11a5af8913c.zip
Qt-3286c4d489905d27183a9ba18048c11a5af8913c.tar.gz
Qt-3286c4d489905d27183a9ba18048c11a5af8913c.tar.bz2
Merge remote branch 'mainline/4.6' into 4.6
Diffstat (limited to 'src/gui/kernel/qkeysequence.cpp')
-rw-r--r--src/gui/kernel/qkeysequence.cpp20
1 files changed, 16 insertions, 4 deletions
diff --git a/src/gui/kernel/qkeysequence.cpp b/src/gui/kernel/qkeysequence.cpp
index 1a76083..89c18fb 100644
--- a/src/gui/kernel/qkeysequence.cpp
+++ b/src/gui/kernel/qkeysequence.cpp
@@ -1014,9 +1014,12 @@ bool QKeySequence::isEmpty() const
*/
QKeySequence QKeySequence::mnemonic(const QString &text)
{
+ QKeySequence ret;
+
if(qt_sequence_no_mnemonics)
- return QKeySequence();
+ return ret;
+ bool found = false;
int p = 0;
while (p >= 0) {
p = text.indexOf(QLatin1Char('&'), p) + 1;
@@ -1025,13 +1028,22 @@ QKeySequence QKeySequence::mnemonic(const QString &text)
if (text.at(p) != QLatin1Char('&')) {
QChar c = text.at(p);
if (c.isPrint()) {
- c = c.toUpper();
- return QKeySequence(c.unicode() + Qt::ALT);
+ if (!found) {
+ c = c.toUpper();
+ ret = QKeySequence(c.unicode() + Qt::ALT);
+#ifdef QT_NO_DEBUG
+ return ret;
+#else
+ found = true;
+ } else {
+ qWarning(qPrintable(QString::fromLatin1("QKeySequence::mnemonic: \"%1\" contains multiple occurences of '&'").arg(text)));
+#endif
+ }
}
}
p++;
}
- return QKeySequence();
+ return ret;
}
/*!