QKeySequence: constexpr ALL the things

Constexpr acts as a static assertion that these objects don't incur
runtime initialization overhead.

Also mark some functions constexpr that can be.

As a drive-by, rename relational operator arguments to the usual lhs,
rhs.

Task-number: QTBUG-100485
Change-Id: I73d2595ccb123f28459edf79ae8dc208f26cc364
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
This commit is contained in:
Marc Mutz 2022-05-19 10:23:28 +02:00
parent f6685a2716
commit 562f1387cb

View File

@ -32,12 +32,12 @@ struct MacSpecialKey {
// Unicode code points for the glyphs associated with these keys // Unicode code points for the glyphs associated with these keys
// Defined by Carbon headers but not anywhere in Cocoa // Defined by Carbon headers but not anywhere in Cocoa
static const int kShiftUnicode = 0x21E7; static constexpr int kShiftUnicode = 0x21E7;
static const int kControlUnicode = 0x2303; static constexpr int kControlUnicode = 0x2303;
static const int kOptionUnicode = 0x2325; static constexpr int kOptionUnicode = 0x2325;
static const int kCommandUnicode = 0x2318; static constexpr int kCommandUnicode = 0x2318;
static const MacSpecialKey entries[] = { static constexpr MacSpecialKey entries[] = {
{ Qt::Key_Escape, 0x238B }, { Qt::Key_Escape, 0x238B },
{ Qt::Key_Tab, 0x21E5 }, { Qt::Key_Tab, 0x21E5 },
{ Qt::Key_Backtab, 0x21E4 }, { Qt::Key_Backtab, 0x21E4 },
@ -62,14 +62,14 @@ static const MacSpecialKey entries[] = {
{ Qt::Key_Eject, 0x23CF }, { Qt::Key_Eject, 0x23CF },
}; };
static bool operator<(const MacSpecialKey &entry, int key) static constexpr bool operator<(const MacSpecialKey &lhs, int rhs)
{ {
return entry.key < key; return lhs.key < rhs;
} }
static bool operator<(int key, const MacSpecialKey &entry) static constexpr bool operator<(int lhs, const MacSpecialKey &rhs)
{ {
return key < entry.key; return lhs < rhs.key;
} }
@ -375,7 +375,7 @@ void Q_GUI_EXPORT qt_set_sequence_auto_mnemonic(bool b) { qt_sequence_no_mnemoni
similar to the native text on Windows and X11. similar to the native text on Windows and X11.
*/ */
static const struct { static constexpr struct {
int key; int key;
const char name[25]; const char name[25];
} keyname[] = { } keyname[] = {
@ -1226,10 +1226,10 @@ QString QKeySequencePrivate::encodeString(int key, QKeySequence::SequenceFormat
// for us, which means that we have to adjust our order here. // for us, which means that we have to adjust our order here.
// The upshot is a lot more infrastructure to keep the number of // The upshot is a lot more infrastructure to keep the number of
// if tests down and the code relatively clean. // if tests down and the code relatively clean.
static const int ModifierOrder[] = { Qt::META, Qt::ALT, Qt::SHIFT, Qt::CTRL, 0 }; static constexpr int ModifierOrder[] = { Qt::META, Qt::ALT, Qt::SHIFT, Qt::CTRL, 0 };
static const int QtKeyOrder[] = { Qt::Key_Meta, Qt::Key_Alt, Qt::Key_Shift, Qt::Key_Control, 0 }; static constexpr int QtKeyOrder[] = { Qt::Key_Meta, Qt::Key_Alt, Qt::Key_Shift, Qt::Key_Control, 0 };
static const int DontSwapModifierOrder[] = { Qt::CTRL, Qt::ALT, Qt::SHIFT, Qt::META, 0 }; static constexpr int DontSwapModifierOrder[] = { Qt::CTRL, Qt::ALT, Qt::SHIFT, Qt::META, 0 };
static const int DontSwapQtKeyOrder[] = { Qt::Key_Control, Qt::Key_Alt, Qt::Key_Shift, Qt::Key_Meta, 0 }; static constexpr int DontSwapQtKeyOrder[] = { Qt::Key_Control, Qt::Key_Alt, Qt::Key_Shift, Qt::Key_Meta, 0 };
const int *modifierOrder; const int *modifierOrder;
const int *qtkeyOrder; const int *qtkeyOrder;
if (qApp->testAttribute(Qt::AA_MacDontSwapCtrlAndMeta)) { if (qApp->testAttribute(Qt::AA_MacDontSwapCtrlAndMeta)) {