diff options
author | Oswald Buddenhagen <oswald.buddenhagen@nokia.com> | 2009-11-13 11:42:54 (GMT) |
---|---|---|
committer | Oswald Buddenhagen <oswald.buddenhagen@nokia.com> | 2009-11-13 11:42:54 (GMT) |
commit | 3286c4d489905d27183a9ba18048c11a5af8913c (patch) | |
tree | 392cc7137ffd69b305272f672db55a73be4f1dae /src/gui/kernel/qkeysequence.cpp | |
parent | 1bc1e5c0b76a92594c5254e72d25165879e753d2 (diff) | |
parent | 6b651e5f69b656c6c6fa05b6a81674a4fd56a160 (diff) | |
download | Qt-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.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; } /*! |