Fix compiler warnings from QKeyCombination

Change lots of code to avoid the deprecated operator+() or implicit
casts to int.

Change-Id: I0c343cd5b28603afdf1214eefb85e928313345e2
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
bb10
Lars Knoll 2020-09-11 13:50:30 +02:00
parent 673da7d460
commit 0902508411
13 changed files with 73 additions and 64 deletions

View File

@ -56,7 +56,7 @@ static guint qt_gdkKey(const QKeySequence &shortcut)
// TODO: proper mapping
Qt::KeyboardModifiers mods = Qt::ShiftModifier | Qt::ControlModifier | Qt::AltModifier | Qt::MetaModifier;
return (shortcut[0] ^ mods) & shortcut[0];
return (shortcut[0].toCombined() ^ mods) & shortcut[0].toCombined();
}
static GdkModifierType qt_gdkModifiers(const QKeySequence &shortcut)
@ -65,7 +65,7 @@ static GdkModifierType qt_gdkModifiers(const QKeySequence &shortcut)
return GdkModifierType(0);
guint mods = 0;
int m = shortcut[0];
Qt::KeyboardModifiers m = shortcut[0].keyboardModifiers();
if (m & Qt::ShiftModifier)
mods |= GDK_SHIFT_MASK;
if (m & Qt::ControlModifier)

View File

@ -353,12 +353,12 @@ void tst_QGuiVariant::toKeySequence_data()
QTest::addColumn<QKeySequence>("result");
QTest::newRow( "int" ) << QVariant( 67108929 ) << QKeySequence( Qt::CTRL + Qt::Key_A );
QTest::newRow( "int" ) << QVariant( 67108929 ) << QKeySequence( Qt::CTRL | Qt::Key_A );
QTest::newRow( "qstring" )
<< QVariant( QString( "Ctrl+A" ) )
<< QKeySequence( Qt::CTRL + Qt::Key_A );
<< QKeySequence( Qt::CTRL | Qt::Key_A );
}
void tst_QGuiVariant::toKeySequence()
@ -376,7 +376,7 @@ void tst_QGuiVariant::toString_data()
QTest::addColumn<QVariant>("value");
QTest::addColumn<QString>("result");
QTest::newRow( "qkeysequence" ) << QVariant::fromValue( QKeySequence( Qt::CTRL + Qt::Key_A ) )
QTest::newRow( "qkeysequence" ) << QVariant::fromValue( QKeySequence( Qt::CTRL | Qt::Key_A ) )
#ifndef Q_OS_MAC
<< QString( "Ctrl+A" );
#else
@ -499,7 +499,7 @@ void tst_QGuiVariant::writeToReadFromDataStream_data()
pixmap.fill( Qt::red );
QTest::newRow( "pixmap_valid" ) << QVariant::fromValue( pixmap ) << false;
QTest::newRow( "image_invalid" ) << QVariant::fromValue( QImage() ) << false;
QTest::newRow( "keysequence_valid" ) << QVariant::fromValue( QKeySequence( Qt::CTRL + Qt::Key_A ) ) << false;
QTest::newRow( "keysequence_valid" ) << QVariant::fromValue( QKeySequence( Qt::CTRL | Qt::Key_A ) ) << false;
QTest::newRow( "palette_valid" ) << QVariant::fromValue(QPalette(QColor("turquoise"))) << false;
QTest::newRow( "pen_valid" ) << QVariant::fromValue( QPen( Qt::red ) ) << false;
QTest::newRow( "pointarray_invalid" ) << QVariant::fromValue( QPolygon() ) << false;

View File

@ -178,12 +178,12 @@ void tst_QKeySequence::initTestCase()
void tst_QKeySequence::swap()
{
QKeySequence ks1(Qt::CTRL+Qt::Key_O);
QKeySequence ks2(Qt::CTRL+Qt::Key_L);
QKeySequence ks1(Qt::CTRL | Qt::Key_O);
QKeySequence ks2(Qt::CTRL | Qt::Key_L);
ks1.swap(ks2);
QCOMPARE(ks1[0], Qt::CTRL+Qt::Key_L);
QCOMPARE(ks2[0], Qt::CTRL+Qt::Key_O);
QCOMPARE(ks1[0], Qt::CTRL | Qt::Key_L);
QCOMPARE(ks2[0], Qt::CTRL | Qt::Key_O);
}
void tst_QKeySequence::operatorQString_data()
@ -549,11 +549,11 @@ void tst_QKeySequence::parseString_data()
// Valid
QTest::newRow("A") << "A" << QKeySequence(Qt::Key_A);
QTest::newRow("a") << "a" << QKeySequence(Qt::Key_A);
QTest::newRow("Ctrl+Left") << "Ctrl+Left" << QKeySequence(Qt::CTRL + Qt::Key_Left);
QTest::newRow("CTRL+LEFT") << "CTRL+LEFT" << QKeySequence(Qt::CTRL + Qt::Key_Left);
QTest::newRow("Meta+A") << "Meta+a" << QKeySequence(Qt::META + Qt::Key_A);
QTest::newRow("mEtA+A") << "mEtA+a" << QKeySequence(Qt::META + Qt::Key_A);
QTest::newRow("Ctrl++") << "Ctrl++" << QKeySequence(Qt::CTRL + Qt::Key_Plus);
QTest::newRow("Ctrl+Left") << "Ctrl+Left" << QKeySequence(Qt::CTRL | Qt::Key_Left);
QTest::newRow("CTRL+LEFT") << "CTRL+LEFT" << QKeySequence(Qt::CTRL | Qt::Key_Left);
QTest::newRow("Meta+A") << "Meta+a" << QKeySequence(Qt::META | Qt::Key_A);
QTest::newRow("mEtA+A") << "mEtA+a" << QKeySequence(Qt::META | Qt::Key_A);
QTest::newRow("Ctrl++") << "Ctrl++" << QKeySequence(Qt::CTRL | Qt::Key_Plus);
// Invalid modifiers
QTest::newRow("Win+A") << "Win+a" << QKeySequence(Qt::Key_unknown);
@ -630,34 +630,34 @@ void tst_QKeySequence::listToString_data()
QList<QKeySequence> sequences;
sequences << QKeySequence(Qt::CTRL + Qt::Key_Left)
<< QKeySequence(Qt::META + Qt::Key_A);
sequences << QKeySequence(Qt::CTRL | Qt::Key_Left)
<< QKeySequence(Qt::META | Qt::Key_A);
QTest::newRow("Ctrl+Left; Meta+A") << "Ctrl+Left; Meta+A" << sequences;
sequences.clear();
sequences << QKeySequence(Qt::CTRL + Qt::Key_Semicolon)
<< QKeySequence(Qt::META + Qt::Key_A);
sequences << QKeySequence(Qt::CTRL | Qt::Key_Semicolon)
<< QKeySequence(Qt::META | Qt::Key_A);
QTest::newRow("Ctrl+;; Meta+A") << "Ctrl+;; Meta+A" << sequences;
sequences.clear();
sequences << QKeySequence(Qt::Key_Semicolon)
<< QKeySequence(Qt::META + Qt::Key_A);
<< QKeySequence(Qt::META | Qt::Key_A);
QTest::newRow(";; Meta+A") << ";; Meta+A" << sequences;
sequences.clear();
sequences << QKeySequence(Qt::CTRL + Qt::Key_Left)
<< QKeySequence(Qt::META + Qt::Key_Semicolon);
sequences << QKeySequence(Qt::CTRL | Qt::Key_Left)
<< QKeySequence(Qt::META | Qt::Key_Semicolon);
QTest::newRow("Ctrl+Left; Meta+;") << "Ctrl+Left; Meta+;" << sequences;
sequences.clear();
sequences << QKeySequence(Qt::CTRL + Qt::Key_Left)
sequences << QKeySequence(Qt::CTRL | Qt::Key_Left)
<< QKeySequence();
QTest::newRow("Ctrl+Left; ") << "Ctrl+Left; " << sequences;
sequences.clear();
sequences << QKeySequence(Qt::CTRL + Qt::Key_Left)
sequences << QKeySequence(Qt::CTRL | Qt::Key_Left)
<< QKeySequence()
<< QKeySequence(Qt::META + Qt::Key_A);
<< QKeySequence(Qt::META | Qt::Key_A);
QTest::newRow("Ctrl+Left; ; Meta+A") << "Ctrl+Left; ; Meta+A" << sequences;
}
@ -676,40 +676,40 @@ void tst_QKeySequence::listFromString_data()
QList<QKeySequence> sequences;
sequences << QKeySequence(Qt::CTRL + Qt::Key_Left)
<< QKeySequence(Qt::META + Qt::Key_A);
sequences << QKeySequence(Qt::CTRL | Qt::Key_Left)
<< QKeySequence(Qt::META | Qt::Key_A);
QTest::newRow("Ctrl+Left; Meta+A") << "Ctrl+Left; Meta+A" << sequences;
sequences.clear();
sequences << QKeySequence(Qt::CTRL + Qt::Key_Semicolon)
<< QKeySequence(Qt::META + Qt::Key_A);
sequences << QKeySequence(Qt::CTRL | Qt::Key_Semicolon)
<< QKeySequence(Qt::META | Qt::Key_A);
QTest::newRow("Ctrl+;; Meta+A") << "Ctrl+;; Meta+A" << sequences;
sequences.clear();
sequences << QKeySequence(Qt::Key_Semicolon)
<< QKeySequence(Qt::META + Qt::Key_A);
<< QKeySequence(Qt::META | Qt::Key_A);
QTest::newRow(";; Meta+A") << ";; Meta+A" << sequences;
sequences.clear();
sequences << QKeySequence(Qt::CTRL + Qt::Key_Left)
<< QKeySequence(Qt::META + Qt::Key_Semicolon);
sequences << QKeySequence(Qt::CTRL | Qt::Key_Left)
<< QKeySequence(Qt::META | Qt::Key_Semicolon);
QTest::newRow("Ctrl+Left; Meta+;") << "Ctrl+Left; Meta+;" << sequences;
sequences.clear();
sequences << QKeySequence(Qt::CTRL + Qt::Key_Left)
sequences << QKeySequence(Qt::CTRL | Qt::Key_Left)
<< QKeySequence();
QTest::newRow("Ctrl+Left; ") << "Ctrl+Left; " << sequences;
sequences.clear();
sequences << QKeySequence(Qt::CTRL + Qt::Key_Left)
sequences << QKeySequence(Qt::CTRL | Qt::Key_Left)
<< QKeySequence()
<< QKeySequence(Qt::META + Qt::Key_A);
<< QKeySequence(Qt::META | Qt::Key_A);
QTest::newRow("Ctrl+Left; ; Meta+A") << "Ctrl+Left; ; Meta+A" << sequences;
sequences.clear();
sequences << QKeySequence(Qt::CTRL + Qt::Key_Left)
sequences << QKeySequence(Qt::CTRL | Qt::Key_Left)
<< QKeySequence(Qt::Key_unknown)
<< QKeySequence(Qt::META + Qt::Key_A);
<< QKeySequence(Qt::META | Qt::Key_A);
QTest::newRow("Ctrl+Left; 4+3=2; Meta+A") << "Ctrl+Left; 4+3=2; Meta+A" << sequences;
}

View File

@ -457,9 +457,9 @@ void tst_QMessageBox::instanceSourceCompat()
QCOMPARE(mb.exec(), int(QMessageBox::Cancel));
#ifndef Q_OS_MAC
// mnemonics are not used on OS X
closeHelper.start(Qt::ALT + Qt::Key_R, &mb);
closeHelper.start(QKeyCombination(Qt::ALT | Qt::Key_R).toCombined(), &mb);
QCOMPARE(mb.exec(), 0);
closeHelper.start(Qt::ALT + Qt::Key_Z, &mb);
closeHelper.start(QKeyCombination(Qt::ALT | Qt::Key_Z).toCombined(), &mb);
QCOMPARE(mb.exec(), 1);
#endif
}

View File

@ -1955,8 +1955,8 @@ void QTest__keySequence(QWidget* widget, const QKeySequence &ks)
{
for (int i = 0; i < ks.count(); ++i)
{
Qt::Key key = Qt::Key(ks[i] & ~Qt::KeyboardModifierMask);
Qt::KeyboardModifiers modifiers = Qt::KeyboardModifiers(ks[i] & Qt::KeyboardModifierMask);
Qt::Key key = ks[i].key();
Qt::KeyboardModifiers modifiers = ks[i].keyboardModifiers();
QTest::keyClick(widget, key, modifiers);
}
}

View File

@ -129,6 +129,8 @@ protected:
static void sendKeyEvents(QWidget *w, int k1, QChar c1 = {}, int k2 = 0, QChar c2 = {},
int k3 = 0, QChar c3 = {}, int k4 = 0, QChar c4 = {});
void sendKeyEvents(QWidget *w, QKeyCombination k1, QChar c1 = {})
{ sendKeyEvents(w, k1.toCombined(), c1); }
void testElement();
@ -287,6 +289,10 @@ void tst_QShortcut::text()
{
testElement();
}
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
// ------------------------------------------------------------------
// Number Elements --------------------------------------------------
// ------------------------------------------------------------------
@ -619,6 +625,8 @@ void tst_QShortcut::text_data()
QTest::newRow("T:end") << TestEnd << NoWidget << QString() << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult;
}
QT_WARNING_POP
class ButtonWidget : public QWidget
{
public:
@ -671,7 +679,7 @@ void tst_QShortcut::disabledItems()
// Setup two identical shortcuts on different pushbuttons
auto pb1 = mainW.pushButton1();
auto pb2 = mainW.pushButton2();
const int shiftM = Qt::SHIFT | Qt::Key_M;
const QKeyCombination shiftM = Qt::SHIFT | Qt::Key_M;
QShortcut *cut1 = setupShortcut(pb1, "shortcut1-pb1", TriggerSlot1,
QKeySequence(Qt::Key_M));
QShortcut *cut2 = setupShortcut(pb1, "shortcut2-pb1", TriggerSlot1,
@ -715,7 +723,7 @@ void tst_QShortcut::disabledItems()
Shift + Qt::Key_F5 on slot2 (disabled)
*/
qDeleteAll(mainW.findChildren<QShortcut *>());
const int shiftF5 = Qt::SHIFT | Qt::Key_F5;
const QKeyCombination shiftF5 = Qt::SHIFT | Qt::Key_F5;
cut1 = setupShortcut(pb1, "shortcut1-pb1", TriggerSlot1, QKeySequence(Qt::Key_F5));
cut4 = setupShortcut(pb2, "shortcut4-pb2", TriggerSlot2, QKeySequence(shiftF5));
@ -754,7 +762,7 @@ void tst_QShortcut::ambiguousRotation()
Ctrl + Qt::Key_A on slot6
Ctrl + Qt::Key_A on slot7 (disabled)
*/
const int ctrlA = Qt::CTRL | Qt::Key_A;
const QKeyCombination ctrlA = Qt::CTRL | Qt::Key_A;
QKeySequence ctrlA_Sequence(ctrlA);
QShortcut *cut1 = setupShortcut(&mainW, name, TriggerSlot1, ctrlA_Sequence);
QShortcut *cut2 = setupShortcut(&mainW, name, TriggerSlot2, ctrlA_Sequence);
@ -968,9 +976,9 @@ void tst_QShortcut::keypressConsumption()
QVERIFY(QTest::qWaitForWindowActive(&mainW));
auto edit = mainW.testEdit();
const int ctrlI = Qt::CTRL | Qt::Key_I;
QShortcut *cut1 = setupShortcut(edit, "shortcut1-line", TriggerSlot1, QKeySequence(ctrlI, Qt::Key_A));
QShortcut *cut2 = setupShortcut(edit, "shortcut1-line", TriggerSlot2, QKeySequence(ctrlI, Qt::Key_B));
QKeyCombination ctrlI = Qt::CTRL | Qt::Key_I;
QShortcut *cut1 = setupShortcut(edit, "shortcut1-line", TriggerSlot1, QKeySequence(ctrlI, QKeyCombination(Qt::Key_A)));
QShortcut *cut2 = setupShortcut(edit, "shortcut1-line", TriggerSlot2, QKeySequence(ctrlI, QKeyCombination(Qt::Key_B)));
currentResult = NoResult;
ambigResult = NoResult;

View File

@ -341,7 +341,7 @@ void tst_QCommandLinkButton::toggled()
void tst_QCommandLinkButton::setAccel()
{
testWidget->setText("&AccelTest");
QKeySequence seq( Qt::ALT + Qt::Key_A );
QKeySequence seq( Qt::ALT | Qt::Key_A );
testWidget->setShortcut( seq );
// The shortcut will not be activated unless the button is in a active

View File

@ -1047,7 +1047,7 @@ void tst_QDoubleSpinBox::undoRedo()
QVERIFY(spin.lineEdit()->isUndoAvailable());
//testing CTRL+Z (undo)
int val = QKeySequence(QKeySequence::Undo)[0];
int val = QKeySequence(QKeySequence::Undo)[0].toCombined();
if (val != 0) {
Qt::KeyboardModifiers mods = (Qt::KeyboardModifiers)(val & Qt::KeyboardModifierMask);
QTest::keyClick(&spin, val & ~mods, mods);
@ -1060,7 +1060,7 @@ void tst_QDoubleSpinBox::undoRedo()
//testing CTRL+Y (redo)
val = QKeySequence(QKeySequence::Redo)[0];
val = QKeySequence(QKeySequence::Redo)[0].toCombined();
if (val != 0) {
Qt::KeyboardModifiers mods = (Qt::KeyboardModifiers)(val & Qt::KeyboardModifierMask);
QTest::keyClick(&spin, val & ~mods, mods);

View File

@ -2009,7 +2009,8 @@ void tst_QLineEdit::addKeySequenceStandardKey(QTestEventList &keys, QKeySequence
{
QKeySequence keyseq = QKeySequence(key);
for (int i = 0; i < keyseq.count(); ++i)
keys.addKeyClick( Qt::Key( keyseq[i] & ~Qt::KeyboardModifierMask), Qt::KeyboardModifier(keyseq[i] & Qt::KeyboardModifierMask) );
keys.addKeyClick( Qt::Key( keyseq[i].toCombined() & ~Qt::KeyboardModifierMask),
Qt::KeyboardModifier(keyseq[i].toCombined() & Qt::KeyboardModifierMask) );
}
#endif // QT_CONFIG(shortcut)
@ -4806,9 +4807,9 @@ void tst_QLineEdit::shortcutOverrideOnReadonlyLineEdit_data()
QTest::newRow("b") << QKeySequence(Qt::Key_B) << false;
QTest::newRow("c") << QKeySequence(Qt::Key_C) << false;
QTest::newRow("x") << QKeySequence(Qt::Key_X) << false;
QTest::newRow("X") << QKeySequence(Qt::ShiftModifier + Qt::Key_X) << false;
QTest::newRow("X") << QKeySequence(Qt::ShiftModifier | Qt::Key_X) << false;
QTest::newRow("Alt+Home") << QKeySequence(Qt::AltModifier + Qt::Key_Home) << false;
QTest::newRow("Alt+Home") << QKeySequence(Qt::AltModifier | Qt::Key_Home) << false;
}
void tst_QLineEdit::shortcutOverrideOnReadonlyLineEdit()
@ -4835,7 +4836,7 @@ void tst_QLineEdit::shortcutOverrideOnReadonlyLineEdit()
const int keySequenceCount = keySequence.count();
for (int i = 0; i < keySequenceCount; ++i) {
const uint key = keySequence[i];
const uint key = keySequence[i].toCombined();
QTest::keyClick(lineEdit,
Qt::Key(key & ~Qt::KeyboardModifierMask),
Qt::KeyboardModifier(key & Qt::KeyboardModifierMask));

View File

@ -299,7 +299,7 @@ void tst_QMenu::addActionsConnect()
menu.addAction(icon, text, testFunction);
menu.addAction(icon, text, &menu, testFunction);
#ifndef QT_NO_SHORTCUT
const QKeySequence keySequence(Qt::CTRL + Qt::Key_C);
const QKeySequence keySequence(Qt::CTRL | Qt::Key_C);
menu.addAction(text, &menu, SLOT(deleteLater()), keySequence);
menu.addAction(text, &menu, &QMenu::deleteLater, keySequence);
menu.addAction(text, testFunction, keySequence);

View File

@ -233,8 +233,8 @@ TestMenu tst_QMenuBar::initSimpleMenuBar(QMenuBar *mb, bool forceNonNative) {
QMenu *menu = mb->addMenu(QStringLiteral("&accel"));
QAction *action = menu->addAction(QStringLiteral("menu1") );
#if QT_CONFIG(shortcut)
action->setShortcut(QKeySequence(Qt::ALT + Qt::Key_A));
action->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_A));
action->setShortcut(QKeySequence(Qt::ALT | Qt::Key_A));
action->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_A));
#endif
connect(menu, SIGNAL(triggered(QAction*)), this, SLOT(onSimpleActivated(QAction*)));
result.menus << menu;
@ -249,7 +249,7 @@ TestMenu tst_QMenuBar::initSimpleMenuBar(QMenuBar *mb, bool forceNonNative) {
action = menu->addAction(QStringLiteral("action"));
#if QT_CONFIG(shortcut)
action->setShortcut(QKeySequence(Qt::ALT + Qt::Key_Z));
action->setShortcut(QKeySequence(Qt::ALT | Qt::Key_Z));
#endif
result.actions << action;
@ -290,7 +290,7 @@ QAction *tst_QMenuBar::createCharacterAction(QMenu *menu, char lowerAscii)
action->setObjectName(text);
action->setData(QVariant(int(lowerAscii)));
#if QT_CONFIG(shortcut)
action->setShortcut(Qt::CTRL + Qt::Key(lowerAscii - 'a' + int(Qt::Key_A)));
action->setShortcut(Qt::CTRL | Qt::Key(lowerAscii - 'a' + int(Qt::Key_A)));
#endif
connect(action, SIGNAL(triggered()), this, SLOT(onComplexActionTriggered()));
return action;
@ -327,7 +327,7 @@ TestMenu tst_QMenuBar::initComplexMenuBar(QMenuBar *mb)
QAction *action = mb->addAction(QStringLiteral("M&enu 3"));
action->setData(QVariant(3));
#if QT_CONFIG(shortcut)
action->setShortcut(Qt::ALT + Qt::Key_J);
action->setShortcut(Qt::ALT | Qt::Key_J);
#endif
connect(action, SIGNAL(triggered()), this, SLOT(onComplexActionTriggered()));
result.actions << action;

View File

@ -338,7 +338,7 @@ void tst_QPushButton::setAccel()
QSKIP("Wayland: This fails. Figure out why.");
testWidget->setText("&AccelTest");
QKeySequence seq( Qt::ALT + Qt::Key_A );
QKeySequence seq( Qt::ALT | Qt::Key_A );
testWidget->setShortcut( seq );
// The shortcut will not be activated unless the button is in a active
@ -610,7 +610,7 @@ void tst_QPushButton::taskQTBUG_20191_shortcutWithKeypadModifer()
// add shortcut 'keypad 5' to button2
spy1.clear();
QSignalSpy spy2(button2, SIGNAL(clicked()));
button2->setShortcut(Qt::Key_5 + Qt::KeypadModifier);
button2->setShortcut(Qt::Key_5 | Qt::KeypadModifier);
QTest::keyClick(&dialog, Qt::Key_5);
QTest::qWait(300);
QTest::keyClick(&dialog, Qt::Key_5, Qt::KeypadModifier);

View File

@ -1047,7 +1047,7 @@ void tst_QSpinBox::undoRedo()
QVERIFY(spin.lineEdit()->isUndoAvailable());
//testing CTRL+Z (undo)
int val = QKeySequence(QKeySequence::Undo)[0];
int val = QKeySequence(QKeySequence::Undo)[0].toCombined();
Qt::KeyboardModifiers mods = (Qt::KeyboardModifiers)(val & Qt::KeyboardModifierMask);
QTest::keyClick(&spin, val & ~mods, mods);
@ -1056,7 +1056,7 @@ void tst_QSpinBox::undoRedo()
QVERIFY(spin.lineEdit()->isRedoAvailable());
//testing CTRL+Y (redo)
val = QKeySequence(QKeySequence::Redo)[0];
val = QKeySequence(QKeySequence::Redo)[0].toCombined();
mods = (Qt::KeyboardModifiers)(val & Qt::KeyboardModifierMask);
QTest::keyClick(&spin, val & ~mods, mods);
QCOMPARE(spin.value(), 1);