diff options
author | Bradley T. Hughes <bradley.hughes@nokia.com> | 2009-11-13 09:56:33 (GMT) |
---|---|---|
committer | Bradley T. Hughes <bradley.hughes@nokia.com> | 2009-11-13 09:56:33 (GMT) |
commit | c66dfc7bf1ae04bdcee9675db95a4787ba4ede69 (patch) | |
tree | d4b24286d03e396bdf89bd8d14f021b02b6bbfdb /src/gui/kernel/qkeysequence.cpp | |
parent | 226ce3651265bf68a8058d59277d63fb0df43076 (diff) | |
parent | edede3b20aa6ffdb16c790f7e537f5b8e9c96e68 (diff) | |
download | Qt-c66dfc7bf1ae04bdcee9675db95a4787ba4ede69.zip Qt-c66dfc7bf1ae04bdcee9675db95a4787ba4ede69.tar.gz Qt-c66dfc7bf1ae04bdcee9675db95a4787ba4ede69.tar.bz2 |
Merge commit 'upstream/4.6' into 4.6
Diffstat (limited to 'src/gui/kernel/qkeysequence.cpp')
-rw-r--r-- | src/gui/kernel/qkeysequence.cpp | 20 |
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; } /*! |