summaryrefslogtreecommitdiffstats
path: root/tests/auto/gui
diff options
context:
space:
mode:
authorDebao Zhang <dbzhang800@gmail.com>2012-03-09 18:28:12 -0800
committerQt by Nokia <qt-info@nokia.com>2012-03-12 21:38:51 +0100
commitdf19bffbd9a3a8bd69acf1ff6f3ba9c4649d13be (patch)
treed839a3bd7ae5e294721628ccc9ad2f48152e7616 /tests/auto/gui
parent702b4cb5d464ac5abb97a3e75601b6a946673ee4 (diff)
Move tst_qshortcut.cpp to QtWidgets
QShortcut belongs to QtWidgets instead of QtGui. Change-Id: I9715399bb372a6ea4bd76109f87ba31a1e30a7e6 Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Diffstat (limited to 'tests/auto/gui')
-rw-r--r--tests/auto/gui/kernel/kernel.pro1
-rw-r--r--tests/auto/gui/kernel/qshortcut/.gitignore1
-rw-r--r--tests/auto/gui/kernel/qshortcut/qshortcut.pro12
-rw-r--r--tests/auto/gui/kernel/qshortcut/tst_qshortcut.cpp1259
4 files changed, 0 insertions, 1273 deletions
diff --git a/tests/auto/gui/kernel/kernel.pro b/tests/auto/gui/kernel/kernel.pro
index 116e9dd1f1..48d94b9bf8 100644
--- a/tests/auto/gui/kernel/kernel.pro
+++ b/tests/auto/gui/kernel/kernel.pro
@@ -13,7 +13,6 @@ SUBDIRS=\
qmouseevent_modal \
qpalette \
qscreen \
- qshortcut \
qtouchevent \
qwindow \
qguiapplication \
diff --git a/tests/auto/gui/kernel/qshortcut/.gitignore b/tests/auto/gui/kernel/qshortcut/.gitignore
deleted file mode 100644
index 3a17eb18e3..0000000000
--- a/tests/auto/gui/kernel/qshortcut/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-tst_qshortcut
diff --git a/tests/auto/gui/kernel/qshortcut/qshortcut.pro b/tests/auto/gui/kernel/qshortcut/qshortcut.pro
deleted file mode 100644
index 7ac1dd2c9d..0000000000
--- a/tests/auto/gui/kernel/qshortcut/qshortcut.pro
+++ /dev/null
@@ -1,12 +0,0 @@
-CONFIG += testcase
-TARGET = tst_qshortcut
-
-# Project Configuration ----------------------------------------------
-INCLUDEPATH += ../
-
-# Normal Test Files --------------------------------------------------
-QT += widgets testlib
-HEADERS +=
-SOURCES += tst_qshortcut.cpp
-
-
diff --git a/tests/auto/gui/kernel/qshortcut/tst_qshortcut.cpp b/tests/auto/gui/kernel/qshortcut/tst_qshortcut.cpp
deleted file mode 100644
index 61efb6e3f3..0000000000
--- a/tests/auto/gui/kernel/qshortcut/tst_qshortcut.cpp
+++ /dev/null
@@ -1,1259 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-
-#include <QtTest/QtTest>
-#include <qapplication.h>
-#include <qtextedit.h>
-#include <qpushbutton.h>
-#include <qmainwindow.h>
-#include <qstatusbar.h>
-#include <qboxlayout.h>
-#include <qdebug.h>
-#include <qstring.h>
-#include <qshortcut.h>
-
-class AccelForm;
-QT_BEGIN_NAMESPACE
-class QMainWindow;
-class QTextEdit;
-QT_END_NAMESPACE
-
-class tst_QShortcut : public QObject
-{
- Q_OBJECT
-public:
- tst_QShortcut();
- virtual ~tst_QShortcut();
-
-
- enum Action {
- SetupAccel,
- TestAccel,
- ClearAll
- } currentAction;
-
- enum Widget {
- NoWidget,
- TriggerSlot1,
- TriggerSlot2,
- TriggerSlot3,
- TriggerSlot4,
- TriggerSlot5,
- TriggerSlot6,
- TriggerSlot7
- };
-
- enum Result {
- NoResult,
- Slot1Triggered,
- Slot2Triggered,
- Slot3Triggered,
- Slot4Triggered,
- Slot5Triggered,
- Slot6Triggered,
- Slot7Triggered,
- Ambiguous
- } currentResult;
-
-public slots:
- void slotTrig1() { currentResult = Slot1Triggered; }
- void slotTrig2() { currentResult = Slot2Triggered; }
- void slotTrig3() { currentResult = Slot3Triggered; }
- void slotTrig4() { currentResult = Slot4Triggered; }
- void slotTrig5() { currentResult = Slot5Triggered; }
- void slotTrig6() { currentResult = Slot6Triggered; }
- void slotTrig7() { currentResult = Slot7Triggered; }
- void ambigSlot1() { currentResult = Ambiguous; ambigResult = Slot1Triggered; }
- void ambigSlot2() { currentResult = Ambiguous; ambigResult = Slot2Triggered; }
- void ambigSlot3() { currentResult = Ambiguous; ambigResult = Slot3Triggered; }
- void ambigSlot4() { currentResult = Ambiguous; ambigResult = Slot4Triggered; }
- void ambigSlot5() { currentResult = Ambiguous; ambigResult = Slot5Triggered; }
- void ambigSlot6() { currentResult = Ambiguous; ambigResult = Slot6Triggered; }
- void ambigSlot7() { currentResult = Ambiguous; ambigResult = Slot7Triggered; }
- void statusMessage( const QString& message ) { sbText = message; }
- void shortcutDestroyed(QObject* obj);
-
-public slots:
- void initTestCase();
- void cleanupTestCase();
-
-private slots:
- void number_data();
- void number();
- void text_data();
- void text();
- void disabledItems();
- void ambiguousItems();
- void ambiguousRotation();
- void keypressConsumption();
- void unicodeCompare();
- void context();
-
-protected:
- static Qt::KeyboardModifiers toButtons( int key );
- void defElements();
-
- void clearAllShortcuts();
- QShortcut *setupShortcut(int testWidget, const QKeySequence &ks);
- QShortcut *setupShortcut(int testWidget, const QString &txt, int k1 = 0, int k2 = 0, int k3 = 0, int k4 = 0);
-
- QShortcut *setupShortcut(QWidget *parent, const char *name, int testWidget, const QString &txt, int k1 = 0, int k2 = 0, int k3 = 0, int k4 = 0);
- QShortcut *setupShortcut(QWidget *parent, const char *name, int testWidget, const QKeySequence &ks, Qt::ShortcutContext context = Qt::WindowShortcut);
-
- void sendKeyEvents(QWidget *w, int k1, QChar c1 = 0, int k2 = 0, QChar c2 = 0, int k3 = 0, QChar c3 = 0, int k4 = 0, QChar c4 = 0);
- void sendKeyEvents(int k1, QChar c1 = 0, int k2 = 0, QChar c2 = 0, int k3 = 0, QChar c3 = 0, int k4 = 0, QChar c4 = 0);
-
- void testElement();
-
- QMainWindow *mainW;
- QList<QShortcut*> shortcuts;
- QTextEdit *edit;
- QString sbText;
- Result ambigResult;
-};
-
-Q_DECLARE_METATYPE(tst_QShortcut::Widget);
-Q_DECLARE_METATYPE(tst_QShortcut::Result);
-Q_DECLARE_METATYPE(tst_QShortcut::Action);
-
-class TestEdit : public QTextEdit
-{
- Q_OBJECT
-public:
- TestEdit(QWidget *parent, const char *name)
- : QTextEdit(parent)
- {
- setObjectName(name);
- }
-
-protected:
- bool event(QEvent *e) {
- // Make testedit allow any Ctrl+Key as shortcut
- if (e->type() == QEvent::ShortcutOverride) {
- QKeyEvent *ke = static_cast<QKeyEvent*>(e);
- if (ke->modifiers() == Qt::ControlModifier
- && ke->key() > Qt::Key_Any
- && ke->key() < Qt::Key_ydiaeresis) {
- ke->ignore();
- return true;
- }
- }
-
- // If keypress not processed as normal, check for
- // Ctrl+Key event, and input custom string for
- // result comparison.
- if (e->type() == QEvent::KeyPress) {
- QKeyEvent *ke = static_cast<QKeyEvent*>(e);
- if (ke->modifiers() && ke->key() > Qt::Key_Any
- && ke->key() < Qt::Key_ydiaeresis) {
- if (ke->modifiers() == Qt::ControlModifier)
- insertPlainText(QString("<Ctrl+%1>").arg(char(ke->key())));
- else if (ke->modifiers() == Qt::AltModifier)
- insertPlainText(QString("<Alt+%1>").arg(char(ke->key())));
- else if (ke->modifiers() == Qt::ShiftModifier)
- insertPlainText(QString("<Shift+%1>").arg(char(ke->key())));
- return true;
- }
- }
- return QTextEdit::event(e);
- }
-};
-
-tst_QShortcut::tst_QShortcut(): mainW( 0 )
-{
-}
-
-tst_QShortcut::~tst_QShortcut()
-{
- clearAllShortcuts();
-}
-
-void tst_QShortcut::initTestCase()
-{
- currentResult = NoResult;
- mainW = new QMainWindow(0);
- mainW->setWindowFlags(Qt::X11BypassWindowManagerHint);
- edit = new TestEdit(mainW, "test_edit");
- mainW->setFixedSize( 100, 100 );
- mainW->setCentralWidget( edit );
- mainW->show();
- QTest::qWaitForWindowShown(mainW);
- mainW->activateWindow();
- QTest::qWait(100);
- connect( mainW->statusBar(), SIGNAL(messageChanged(const QString&)),
- this, SLOT(statusMessage(const QString&)) );
-}
-
-void tst_QShortcut::cleanupTestCase()
-{
- delete mainW;
-}
-
-Qt::KeyboardModifiers tst_QShortcut::toButtons( int key )
-{
- Qt::KeyboardModifiers result = Qt::NoModifier;
- if ( key & Qt::SHIFT )
- result |= Qt::ShiftModifier;
- if ( key & Qt::CTRL )
- result |= Qt::ControlModifier;
- if ( key & Qt::META )
- result |= Qt::MetaModifier;
- if ( key & Qt::ALT )
- result |= Qt::AltModifier;
- return result;
-}
-
-void tst_QShortcut::defElements()
-{
- QTest::addColumn<tst_QShortcut::Action>("action");
- QTest::addColumn<tst_QShortcut::Widget>("testWidget");
- QTest::addColumn<QString>("txt");
- QTest::addColumn<int>("k1");
- QTest::addColumn<int>("c1");
- QTest::addColumn<int>("k2");
- QTest::addColumn<int>("c2");
- QTest::addColumn<int>("k3");
- QTest::addColumn<int>("c3");
- QTest::addColumn<int>("k4");
- QTest::addColumn<int>("c4");
- QTest::addColumn<tst_QShortcut::Result>("result");
-}
-
-void tst_QShortcut::number()
-{
- // We expect a failure on these tests, until QtTestKeyboard is
- // fixed to do real platform dependent keyboard simulations
- if (QTest::currentDataTag() == QString("N006a:Shift+Tab - [BackTab]")
- || QTest::currentDataTag() == QString("N006b:Shift+Tab - [Shift+BackTab]"))
- QEXPECT_FAIL("", "FLAW IN QTESTKEYBOARD: Keyboard events not passed through "
- "platform dependent key handling code", Continue);
- testElement();
-}
-void tst_QShortcut::text()
-{
- testElement();
-}
-// ------------------------------------------------------------------
-// Number Elements --------------------------------------------------
-// ------------------------------------------------------------------
-void tst_QShortcut::number_data()
-{
- defElements();
-
- // Clear all
- QTest::newRow("N00 - clear") << ClearAll << NoWidget <<QString("")<<0<<0<<0<<0<<0<<0<<0<<0<<NoResult;
-
- //===========================================
- // [Shift + key] on non-shift shortcuts testing
- //===========================================
-
- /* Testing Single Sequences
- Shift + Qt::Key_M on Qt::Key_M
- Qt::Key_M on Qt::Key_M
- Shift + Qt::Key_Plus on Qt::Key_Pluss
- Qt::Key_Plus on Qt::Key_Pluss
- */
- QTest::newRow("N001 - slot1") << SetupAccel << TriggerSlot1 << QString("") << int(Qt::Key_M) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult;
- //commented out because the behaviour changed, those tests should be updated
- //QTest::newRow("N001:Shift + M - [M]") << TestAccel << NoWidget << QString("") << int(Qt::SHIFT + Qt::Key_M) << int('M') << 0 << 0 << 0 << 0 << 0 << 0 << Slot1Triggered;
- QTest::newRow("N001:M - [M]") << TestAccel << NoWidget << QString("") << int(Qt::Key_M) << int('m') << 0 << 0 << 0 << 0 << 0 << 0 << Slot1Triggered;
- QTest::newRow("N001 - slot2") << SetupAccel << TriggerSlot2 << QString("") << int(Qt::Key_Plus) << int('+') << 0 << 0 << 0 << 0 << 0 << 0 << NoResult;
- //commented out because the behaviour changed, those tests should be updated
- //QTest::newRow("N001:Shift++ [+]") << TestAccel << NoWidget << QString("") << int(Qt::SHIFT + Qt::Key_Plus) << int('+') << 0 << 0 << 0 << 0 << 0 << 0 << Slot2Triggered;
- QTest::newRow("N001:+ [+]") << TestAccel << NoWidget << QString("") << int(Qt::Key_Plus) << int('+') << 0 << 0 << 0 << 0 << 0 << 0 << Slot2Triggered;
- QTest::newRow("N001 - clear") << ClearAll << NoWidget << QString("") << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult; // Clear all
-
- /* Testing Single Sequences
- Shift + Qt::Key_M on Shift + Qt::Key_M
- Qt::Key_M on Shift + Qt::Key_M
- Shift + Qt::Key_Plus on Shift + Qt::Key_Pluss
- Qt::Key_Plus on Shift + Qt::Key_Pluss
- */
- QTest::newRow("N002 - slot1") << SetupAccel << TriggerSlot1 << QString("") << int(Qt::SHIFT + Qt::Key_M) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult;
- QTest::newRow("N002:Shift+M - [Shift+M]") << TestAccel << NoWidget << QString("") << int(Qt::SHIFT + Qt::Key_M) << int('M') << 0 << 0 << 0 << 0 << 0 << 0 << Slot1Triggered;
- QTest::newRow("N002:M - [Shift+M]") << TestAccel << NoWidget << QString("") << int(Qt::Key_M) << int('m') << 0 << 0 << 0 << 0 << 0 << 0 << NoResult;
- QTest::newRow("N002 - slot2") << SetupAccel << TriggerSlot2 << QString("") << int(Qt::SHIFT + Qt::Key_Plus) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult;
- QTest::newRow("N002:Shift++ [Shift++]") << TestAccel << NoWidget << QString("") << int(Qt::SHIFT + Qt::Key_Plus) << int('+') << 0 << 0 << 0 << 0 << 0 << 0 << Slot2Triggered;
- QTest::newRow("N002:+ [Shift++]") << TestAccel << NoWidget << QString("") << int(Qt::Key_Plus) << int('+') << 0 << 0 << 0 << 0 << 0 << 0 << NoResult;
- QTest::newRow("N002 - clear") << ClearAll << NoWidget << QString("") << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult; // Clear all
-
- /* Testing Single Sequences
- Shift + Qt::Key_F1 on Qt::Key_F1
- Qt::Key_F1 on Qt::Key_F1
- */
- QTest::newRow("N003 - slot1") << SetupAccel << TriggerSlot1 << QString("") << int(Qt::Key_F1) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult;
- //commented out because the behaviour changed, those tests should be updated
- //QTest::newRow("N003:Shift+F1 - [F1]") << TestAccel << NoWidget << QString("") << int(Qt::SHIFT + Qt::Key_F1) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << Slot1Triggered;
- QTest::newRow("N003:F1 - [F1]") << TestAccel << NoWidget << QString("") << int(Qt::Key_F1) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << Slot1Triggered;
- QTest::newRow("N003 - clear") << ClearAll << NoWidget << QString("") << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult; // Clear all
- /* Testing Single Sequences
- Shift + Qt::Key_F1 on Shift + Qt::Key_F1
- Qt::Key_F1 on Shift + Qt::Key_F1
- */
-
- QTest::newRow("N004 - slot1") << SetupAccel << TriggerSlot1 << QString("") << int(Qt::SHIFT + Qt::Key_F1) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult;
- QTest::newRow("N004:Shift+F1 - [Shift+F1]")<< TestAccel << NoWidget << QString("") << int(Qt::SHIFT + Qt::Key_F1) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << Slot1Triggered;
- QTest::newRow("N004:F1 - [Shift+F1]") << TestAccel << NoWidget << QString("") << int(Qt::Key_F1) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult;
- QTest::newRow("N004 - clear") << ClearAll << NoWidget << QString("") << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult; // Clear all
-
- /* Testing Single Sequences
- Qt::Key_Tab on Qt::Key_Tab
- Shift + Qt::Key_Tab on Qt::Key_Tab
- Qt::Key_Backtab on Qt::Key_Tab
- Shift + Qt::Key_Backtab on Qt::Key_Tab
- */
- QTest::newRow("N005a - slot1") << SetupAccel << TriggerSlot1 << QString("")<< int(Qt::Key_Tab) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult;
- QTest::newRow("N005a:Tab - [Tab]") << TestAccel << NoWidget << QString("") << int(Qt::Key_Tab) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << Slot1Triggered;
- //commented out because the behaviour changed, those tests should be updated
- //QTest::newRow("N005a:Shift+Tab - [Tab]") << TestAccel << NoWidget << QString("") << int(Qt::SHIFT + Qt::Key_Tab) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << Slot1Triggered;
- // (Shift+)BackTab != Tab, but Shift+BackTab == Shift+Tab
- QTest::newRow("N005a:Backtab - [Tab]") << TestAccel << NoWidget << QString("") << int(Qt::Key_Backtab) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult;
- QTest::newRow("N005a:Shift+Backtab - [Tab]") << TestAccel << NoWidget << QString("") << int(Qt::SHIFT + Qt::Key_Backtab) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult;
- QTest::newRow("N005a - clear") << ClearAll << NoWidget << QString("") << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult; // Clear all
-
- /* Testing Single Sequences
- Qt::Key_Tab on Shift + Qt::Key_Tab
- Shift + Qt::Key_Tab on Shift + Qt::Key_Tab
- Qt::Key_Backtab on Shift + Qt::Key_Tab
- Shift + Qt::Key_Backtab on Shift + Qt::Key_Tab
- */
- QTest::newRow("N005b - slot1") << SetupAccel << TriggerSlot1 << QString("")<< int(Qt::SHIFT + Qt::Key_Tab) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult;
- QTest::newRow("N005b:Tab - [Shift+Tab]") << TestAccel << NoWidget << QString("") << int(Qt::Key_Tab) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult;
- QTest::newRow("N005b:Shift+Tab - [Shift+Tab]") << TestAccel << NoWidget << QString("") << int(Qt::SHIFT + Qt::Key_Tab) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << Slot1Triggered;
- QTest::newRow("N005b:BackTab - [Shift+Tab]") << TestAccel << NoWidget << QString("") << int(Qt::Key_Backtab) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult;
- QTest::newRow("N005b:Shift+BackTab - [Shift+Tab]")<< TestAccel << NoWidget << QString("") << int(Qt::SHIFT + Qt::Key_Backtab) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << Slot1Triggered;
- QTest::newRow("N005b - clear") << ClearAll << NoWidget << QString("") << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult; // Clear all
-
- /* Testing Single Sequences
- Qt::Key_Tab on Qt::Key_Backtab
- Shift + Qt::Key_Tab on Qt::Key_Backtab
- Qt::Key_Backtab on Qt::Key_Backtab
- Shift + Qt::Key_Backtab on Qt::Key_Backtab
- */
- QTest::newRow("N006a - slot1") << SetupAccel << TriggerSlot1 << QString("")<< int(Qt::Key_Backtab) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult;
- QTest::newRow("N006a:Tab - [BackTab]") << TestAccel << NoWidget << QString("") << int(Qt::Key_Tab) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult;
- // This should work, since platform dependent code will transform the
- // Shift+Tab into a Shift+BackTab, which should trigger the shortcut
- QTest::newRow("N006a:Shift+Tab - [BackTab]") << TestAccel << NoWidget << QString("") << int(Qt::SHIFT + Qt::Key_Tab) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << Slot1Triggered; //XFAIL
- QTest::newRow("N006a:BackTab - [BackTab]") << TestAccel << NoWidget << QString("") << int(Qt::Key_Backtab) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << Slot1Triggered;
- //commented out because the behaviour changed, those tests should be updated
- //QTest::newRow("N006a:Shift+BackTab - [BackTab]") << TestAccel << NoWidget << QString("") << int(Qt::SHIFT + Qt::Key_Backtab) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << Slot1Triggered;
- QTest::newRow("N006a - clear") << ClearAll << NoWidget<< QString("") << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult; // Clear all
-
- /* Testing Single Sequences
- Qt::Key_Tab on Shift + Qt::Key_Backtab
- Shift + Qt::Key_Tab on Shift + Qt::Key_Backtab
- Qt::Key_Backtab on Shift + Qt::Key_Backtab
- Shift + Qt::Key_Backtab on Shift + Qt::Key_Backtab
- */
- QTest::newRow("N006b - slot1") << SetupAccel << TriggerSlot1 << QString("")<< int(Qt::SHIFT + Qt::Key_Backtab) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult;
- QTest::newRow("N006b:Tab - [Shift+BackTab]") << TestAccel << NoWidget << QString("") << int(Qt::Key_Tab) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult;
- QTest::newRow("N006b:Shift+Tab - [Shift+BackTab]")<< TestAccel << NoWidget << QString("") << int(Qt::SHIFT + Qt::Key_Tab) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << Slot1Triggered;
- QTest::newRow("N006b:BackTab - [Shift+BackTab]") << TestAccel << NoWidget << QString("") << int(Qt::Key_Backtab) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult;
- QTest::newRow("N006b:Shift+BackTab - [Shift+BackTab]")<< TestAccel << NoWidget << QString("") << int(Qt::SHIFT + Qt::Key_Backtab) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << Slot1Triggered; //XFAIL
- QTest::newRow("N006b - clear") << ClearAll << NoWidget << QString("") << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult; // Clear all
-
- //===========================================
- // [Shift + key] and [key] on shortcuts with
- // and without modifiers
- //===========================================
-
- /* Testing Single Sequences
- Qt::Key_F1
- Shift + Qt::Key_F1
- */
- QTest::newRow("N007 - slot1") << SetupAccel << TriggerSlot1 << QString("") << int(Qt::Key_F1) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult;
- QTest::newRow("N007 - slot2") << SetupAccel << TriggerSlot2 << QString("") << int(Qt::SHIFT + Qt::Key_F1) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult;
- QTest::newRow("N007:F1") << TestAccel << NoWidget << QString("") << int(Qt::Key_F1) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << Slot1Triggered;
- QTest::newRow("N007:Shift + F1") << TestAccel << NoWidget << QString("") << int(Qt::SHIFT + Qt::Key_F1) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << Slot2Triggered;
- QTest::newRow("N007 - clear") << ClearAll << NoWidget << QString("") << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult; // Clear all
-
- /* Testing Single Sequences
- Qt::Key_M
- Shift + Qt::Key_M
- Ctrl + Qt::Key_M
- Alt + Qt::Key_M
- */
- QTest::newRow("N01 - slot1") << SetupAccel << TriggerSlot1 << QString("") << int(Qt::Key_M) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult;
- QTest::newRow("N02 - slot2") << SetupAccel << TriggerSlot2 << QString("") << int(Qt::SHIFT + Qt::Key_M) << int('M') << 0 << 0 << 0 << 0 << 0 << 0 << NoResult;
- QTest::newRow("N03 - slot1") << SetupAccel << TriggerSlot1 << QString("") << int(Qt::CTRL + Qt::Key_M) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult;
- QTest::newRow("N04 - slot2") << SetupAccel << TriggerSlot2 << QString("") << int(Qt::ALT + Qt::Key_M) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult;
- QTest::newRow("N:Qt::Key_M") << TestAccel << NoWidget << QString("") << int(Qt::Key_M) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << Slot1Triggered;
- QTest::newRow("N:Shift+Qt::Key_M") << TestAccel << NoWidget << QString("") << int(Qt::SHIFT + Qt::Key_M) << int('M') << 0 << 0 << 0 << 0 << 0 << 0 << Slot2Triggered;
- QTest::newRow("N:Ctrl+Qt::Key_M") << TestAccel << NoWidget << QString("") << int(Qt::CTRL + Qt::Key_M) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << Slot1Triggered;
- QTest::newRow("N:Alt+Qt::Key_M") << TestAccel << NoWidget << QString("") << int(Qt::ALT + Qt::Key_M) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << Slot2Triggered;
-
- /* Testing Single Sequence Ambiguity
- Qt::Key_M on shortcut2
- */
- QTest::newRow("N05 - slot2") << SetupAccel << TriggerSlot2 << QString("") << int(Qt::Key_M) << int('m') << 0 << 0 << 0 << 0 << 0 << 0 << NoResult;
- QTest::newRow("N:Qt::Key_M on slot") << TestAccel << NoWidget << QString("") << int(Qt::Key_M) << int('m') << 0 << 0 << 0 << 0 << 0 << 0 << Ambiguous;
- QTest::newRow("N05 - clear") << ClearAll << NoWidget << QString("") << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult; // Clear all
-
- /* Testing Single Specialkeys
- Qt::Key_aring
- Qt::Key_Aring
- Qt::UNICODE_ACCEL + Qt::Key_K
- */
- QTest::newRow("N06 - slot1") << SetupAccel << TriggerSlot1 << QString("") << int(Qt::Key_Aring) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult;
- QTest::newRow("N07 - slot2") << SetupAccel << TriggerSlot2 << QString("") << int(Qt::SHIFT+Qt::Key_Aring) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult;
- QTest::newRow("N08 - slot2") << SetupAccel << TriggerSlot1 << QString("") << int(Qt::UNICODE_ACCEL + Qt::Key_K) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult;
-
- QTest::newRow("N:Qt::Key_aring") << TestAccel << NoWidget << QString("") << int(Qt::Key_Aring) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << Slot1Triggered;
- QTest::newRow("N:Qt::Key_Aring") << TestAccel << NoWidget << QString("") << int(Qt::SHIFT+Qt::Key_Aring) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << Slot2Triggered;
- QTest::newRow("N:Qt::Key_aring - Text Form") << TestAccel << NoWidget << QString("") << 0 << 0xC5 << 0 << 0 << 0 << 0 << 0 << 0 << Slot1Triggered;
- QTest::newRow("N:Qt::Key_Aring - Text Form") << TestAccel << NoWidget << QString("") << int(Qt::SHIFT+0) << 0xC5 << 0 << 0 << 0 << 0 << 0 << 0 << Slot2Triggered;
- QTest::newRow("N:Qt::UNICODE_ACCEL + Qt::Key_K") << TestAccel << NoWidget << QString("") << int(Qt::UNICODE_ACCEL + Qt::Key_K) << int('k') << 0 << 0 << 0 << 0 << 0 << 0 << Slot1Triggered;
- QTest::newRow("N09 - clear") << ClearAll << NoWidget << QString("") << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult; // Clear all
-
- /* Testing Multiple Sequences
- Qt::Key_M
- Qt::Key_I, Qt::Key_M
- Shift+Qt::Key_I, Qt::Key_M
- */
- QTest::newRow("N10 - slot1") << SetupAccel << TriggerSlot1 << QString("") << int(Qt::Key_M) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult;
- QTest::newRow("N11 - slot2") << SetupAccel << TriggerSlot2 << QString("") << int(Qt::Key_I) << 0 << int(Qt::Key_M) << 0 << 0 << 0 << 0 << 0 << NoResult;
- QTest::newRow("N12 - slot1") << SetupAccel << TriggerSlot1 << QString("") << int(Qt::SHIFT + Qt::Key_I) << 0 << int(Qt::Key_M) << 0 << 0 << 0 << 0 << 0 << NoResult;
-
- QTest::newRow("N:Qt::Key_M (2)") << TestAccel << NoWidget << QString("") << int(Qt::Key_M) << int('m') << 0 << 0 << 0 << 0 << 0 << 0 << Slot1Triggered;
- QTest::newRow("N:Qt::Key_I, Qt::Key_M") << TestAccel << NoWidget << QString("") << int(Qt::Key_I) << int('i') << int(Qt::Key_M) << int('m') << 0 << 0 << 0 << 0 << Slot2Triggered;
- QTest::newRow("N:Shift+Qt::Key_I, Qt::Key_M") << TestAccel << NoWidget << QString("") << int(Qt::SHIFT + Qt::Key_I) << int('I') << int(Qt::Key_M) << int('m') << 0 << 0 << 0 << 0 << Slot1Triggered;
- QTest::newRow("N13 - clear") << ClearAll << NoWidget << QString("") << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult; // Clear all
-}
-
-// ------------------------------------------------------------------
-// Text Elements ----------------------------------------------------
-// ------------------------------------------------------------------
-void tst_QShortcut::text_data()
-{
- defElements();
- // Clear all
- QTest::newRow("T00 - clear") << ClearAll << NoWidget <<QString("")<<0<<0<<0<<0<<0<<0<<0<<0<< NoResult;
-
- //===========================================
- // [Shift + key] on non-shift shortcuts testing
- //===========================================
-
- /* Testing Single Sequences
- Shift + Qt::Key_M on Qt::Key_M
- Qt::Key_M on Qt::Key_M
- Shift + Qt::Key_Plus on Qt::Key_Pluss
- Qt::Key_Plus on Qt::Key_Pluss
- */
- QTest::newRow("T001 - slot1") << SetupAccel << TriggerSlot1 << QString("M") << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult;
- //commented out because the behaviour changed, those tests should be updated
- //QTest::newRow("T001:Shift+M - [M]") << TestAccel << NoWidget << QString("") << int(Qt::SHIFT + Qt::Key_M) << int('M') << 0 << 0 << 0 << 0 << 0 << 0 << Slot1Triggered;
- QTest::newRow("T001:M - [M]") << TestAccel << NoWidget << QString("") << int(Qt::Key_M) << int('m') << 0 << 0 << 0 << 0 << 0 << 0 << Slot1Triggered;
- QTest::newRow("T001 - slot2") << SetupAccel << TriggerSlot2 << QString("+") << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult;
- //commented out because the behaviour changed, those tests should be updated
- //QTest::newRow("T001:Shift++ [+]") << TestAccel << NoWidget << QString("") << int(Qt::SHIFT + Qt::Key_Plus) << int('+') << 0 << 0 << 0 << 0 << 0 << 0 << Slot2Triggered;
- QTest::newRow("T001:+ [+]") << TestAccel << NoWidget << QString("") << int(Qt::Key_Plus) << int('+') << 0 << 0 << 0 << 0 << 0 << 0 << Slot2Triggered;
- QTest::newRow("T001 - clear") << ClearAll << NoWidget << QString("") << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult; // Clear all
-
- /* Testing Single Sequences
- Shift + Qt::Key_M on Shift + Qt::Key_M
- Qt::Key_M on Shift + Qt::Key_M
- Shift + Qt::Key_Plus on Shift + Qt::Key_Pluss
- Qt::Key_Plus on Shift + Qt::Key_Pluss
- Shift + Ctrl + Qt::Key_Plus on Ctrl + Qt::Key_Pluss
- Ctrl + Qt::Key_Plus on Ctrl + Qt::Key_Pluss
- */
- QTest::newRow("T002 - slot1") << SetupAccel << TriggerSlot1 << QString("Shift+M") << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult;
- QTest::newRow("T002:Shift+M - [Shift+M]") << TestAccel << NoWidget << QString("") << int(Qt::SHIFT + Qt::Key_M) << int('M') << 0 << 0 << 0 << 0 << 0 << 0 << Slot1Triggered;
- QTest::newRow("T002:M - [Shift+M]") << TestAccel << NoWidget << QString("") << int(Qt::Key_M) << int('m') << 0 << 0 << 0 << 0 << 0 << 0 << NoResult;
- QTest::newRow("T002 - slot2") << SetupAccel << TriggerSlot2 << QString("Shift++") << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult;
- QTest::newRow("T002:Shift++ [Shift++]") << TestAccel << NoWidget << QString("") << int(Qt::SHIFT + Qt::Key_Plus) << int('+') << 0 << 0 << 0 << 0 << 0 << 0 << Slot2Triggered;
- QTest::newRow("T002:+ [Shift++]") << TestAccel << NoWidget << QString("") << int(Qt::Key_Plus) << int('+') << 0 << 0 << 0 << 0 << 0 << 0 << NoResult;
- QTest::newRow("T002 - clear") << ClearAll << NoWidget << QString("") << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult; // Clear all
-
- /* Testing Single Sequences
- Shift + Ctrl + Qt::Key_Plus on Ctrl + Qt::Key_Plus
- Ctrl + Qt::Key_Plus on Ctrl + Qt::Key_Plus
- Qt::Key_Plus on Ctrl + Qt::Key_Plus
- */
- QTest::newRow("T002b - slot1") << SetupAccel << TriggerSlot1 << QString("Ctrl++") << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult;
- //commented out because the behaviour changed, those tests should be updated
- //QTest::newRow("T002b:Shift+Ctrl++ [Ctrl++]")<< TestAccel << NoWidget << QString("") << int(Qt::SHIFT + Qt::CTRL + Qt::Key_Plus) << int('+') << 0 << 0 << 0 << 0 << 0 << 0 << Slot1Triggered;
- QTest::newRow("T002b:Ctrl++ [Ctrl++]") << TestAccel << NoWidget << QString("") << int(Qt::CTRL + Qt::Key_Plus) << int('+') << 0 << 0 << 0 << 0 << 0 << 0 << Slot1Triggered;
- QTest::newRow("T002b:+ [Ctrl++]") << TestAccel << NoWidget << QString("") << int(Qt::Key_Plus) << int('+') << 0 << 0 << 0 << 0 << 0 << 0 << NoResult;
- QTest::newRow("T002b - clear") << ClearAll << NoWidget << QString("") << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult; // Clear all
-
- /* Testing Single Sequences
- Shift + Qt::Key_F1 on Qt::Key_F1
- Qt::Key_F1 on Qt::Key_F1
- */
- QTest::newRow("T003 - slot1") << SetupAccel << TriggerSlot1 << QString("F1") << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult;
- //commented out because the behaviour changed, those tests should be updated
- //QTest::newRow("T003:Shift+F1 - [F1]") << TestAccel << NoWidget << QString("") << int(Qt::SHIFT + Qt::Key_F1) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << Slot1Triggered;
- QTest::newRow("T003:F1 - [F1]") << TestAccel << NoWidget << QString("") << int(Qt::Key_F1) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << Slot1Triggered;
- QTest::newRow("T003 - clear") << ClearAll << NoWidget << QString("") << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult; // Clear all
-
- /* Testing Single Sequences
- Shift + Qt::Key_F1 on Shift + Qt::Key_F1
- Qt::Key_F1 on Shift + Qt::Key_F1
- */
- QTest::newRow("T004 - slot1") << SetupAccel << TriggerSlot1 << QString("Shift+F1") << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult;
- QTest::newRow("T004:Shift+F1 - [Shift+F1]")<< TestAccel << NoWidget << QString("") << int(Qt::SHIFT + Qt::Key_F1) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << Slot1Triggered;
- QTest::newRow("T004:F1 - [Shift+F1]") << TestAccel << NoWidget << QString("") << int(Qt::Key_F1) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult;
- QTest::newRow("T004 - clear") << ClearAll << NoWidget << QString("") << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult; // Clear all
-
- //===========================================
- // [Shift + key] and [key] on shortcuts with
- // and without modifiers
- //===========================================
-
- /* Testing Single Sequences
- Qt::Key_F1
- Shift + Qt::Key_F1
- */
- QTest::newRow("T007 - slot1") << SetupAccel << TriggerSlot1 << QString("F1") << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult;
- QTest::newRow("T007 - slot2") << SetupAccel << TriggerSlot2 << QString("Shift+F1") << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult;
- QTest::newRow("T007:F1") << TestAccel << NoWidget << QString("") << int(Qt::Key_F1) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << Slot1Triggered;
- QTest::newRow("T007:Shift + F1") << TestAccel << NoWidget << QString("") << int(Qt::SHIFT + Qt::Key_F1) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << Slot2Triggered;
- QTest::newRow("T007 - clear") << ClearAll << NoWidget << QString("") << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult; // Clear all
-
- /* Testing Single Sequences
- Qt::Key_M
- Shift + Qt::Key_M
- Ctrl + Qt::Key_M
- Alt + Qt::Key_M
- */
- QTest::newRow("T01 - slot1") << SetupAccel << TriggerSlot1 << QString("M") << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult;
- QTest::newRow("T02 - slot2") << SetupAccel << TriggerSlot2 << QString("Shift+M") << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult;
- QTest::newRow("T03 - slot1") << SetupAccel << TriggerSlot1 << QString("Ctrl+M") << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult;
- QTest::newRow("T04 - slot2") << SetupAccel << TriggerSlot2 << QString("Alt+M") << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult;
-
- QTest::newRow("T:Qt::Key_M") << TestAccel << NoWidget << QString("") << int(Qt::Key_M) << int('m') << 0 << 0 << 0 << 0 << 0 << 0 << Slot1Triggered;
- QTest::newRow("T:Shift + Qt::Key_M") << TestAccel << NoWidget << QString("") << int(Qt::SHIFT + Qt::Key_M) << int('M') << 0 << 0 << 0 << 0 << 0 << 0 << Slot2Triggered;
- QTest::newRow("T:Ctrl + Qt::Key_M") << TestAccel << NoWidget << QString("") << int(Qt::CTRL + Qt::Key_M) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << Slot1Triggered;
- QTest::newRow("T:Alt + Qt::Key_M") << TestAccel << NoWidget << QString("") << int(Qt::ALT + Qt::Key_M) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << Slot2Triggered;
-
- /* Testing Single Sequence Ambiguity
- Qt::Key_M on shortcut2
- */
- QTest::newRow("T05 - slot2") << SetupAccel << TriggerSlot2 << QString("M") << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult;
- QTest::newRow("T:Qt::Key_M on TriggerSlot2") << TestAccel << NoWidget << QString("") << int(Qt::Key_M) << int('m') << 0 << 0 << 0 << 0 << 0 << 0 << Ambiguous;
- QTest::newRow("T06 - clear") << ClearAll << NoWidget << QString("") << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult; // Clear all
-
- /* Testing Single Specialkeys
- Qt::Key_aring
- Qt::Key_Aring
- Qt::UNICODE_ACCEL + Qt::Key_K
- */
- /* see comments above on the #ifdef'ery */
- QTest::newRow("T06 - slot1") << SetupAccel << TriggerSlot1 << QString("\x0C5")<< 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult;
- QTest::newRow("T07 - slot2") << SetupAccel << TriggerSlot2 << QString("Shift+\x0C5")<< 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult;
- QTest::newRow("T08 - slot2") << SetupAccel << TriggerSlot1 << QString("K") << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult;
- QTest::newRow("T:Qt::Key_aring") << TestAccel << NoWidget << QString("") << int(Qt::Key_Aring) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << Slot1Triggered;
- QTest::newRow("T:Qt::Key_Aring") << TestAccel << NoWidget << QString("") << int(Qt::SHIFT+Qt::Key_Aring) << 0 << 0 << 0 << 0 << 0 << 0 << 0 << Slot2Triggered;
- QTest::newRow("T:Qt::Key_aring - Text Form") << TestAccel << NoWidget << QString("") << 0 << 0xC5 << 0 << 0 << 0 << 0 << 0 << 0 << Slot1Triggered;
- QTest::newRow("T:Qt::Key_Aring - Text Form") << TestAccel << NoWidget << QString("") << int(Qt::SHIFT+0) << 0xC5 << 0 << 0 << 0 << 0 << 0 << 0 << Slot2Triggered;
- QTest::newRow("T:Qt::UNICODE_ACCEL + Qt::Key_K") << TestAccel << NoWidget << QString("") << int(Qt::UNICODE_ACCEL + Qt::Key_K) << int('k') << 0 << 0 << 0 << 0 << 0 << 0 << Slot1Triggered;
- QTest::newRow("T09 - clear") << ClearAll << NoWidget << QString("") << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult; // Clear all
-
- /* Testing Multiple Sequences
- Qt::Key_M
- Qt::Key_I, Qt::Key_M
- Shift+Qt::Key_I, Qt::Key_M
- */
- QTest::newRow("T10 - slot1") << SetupAccel << TriggerSlot1 << QString("M") << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult;
- QTest::newRow("T11 - slot2") << SetupAccel << TriggerSlot2 << QString("I, M")<< 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult;
- QTest::newRow("T12 - slot1") << SetupAccel << TriggerSlot1 << QString("Shift+I, M")<< 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult;
- QTest::newRow("T:Qt::Key_M (2)") << TestAccel << NoWidget << QString("") << int(Qt::Key_M) << int('m') << 0 << 0 << 0 << 0 << 0 << 0 << Slot1Triggered;
- QTest::newRow("T:Qt::Key_I, Qt::Key_M") << TestAccel << NoWidget << QString("") << int(Qt::Key_I) << int('i') << int(Qt::Key_M) << int('m') << 0 << 0 << 0 << 0 << Slot2Triggered;
- QTest::newRow("T:Shift+Qt::Key_I, Qt::Key_M") << TestAccel << NoWidget << QString("") << int(Qt::SHIFT + Qt::Key_I) << int('I') << int(Qt::Key_M) << int('m') << 0 << 0 << 0 << 0 << Slot1Triggered;
- QTest::newRow("T13 - clear") << ClearAll << NoWidget << QString("") << 0 << 0 << 0 << 0 << 0 << 0 << 0 << 0 << NoResult; // Clear all
-}
-
-// ------------------------------------------------------------------
-// Disabled Elements ------------------------------------------------
-// ------------------------------------------------------------------
-void tst_QShortcut::disabledItems()
-{
- clearAllShortcuts();
- mainW->activateWindow();
- qApp->syncX();
- QTest::qWait(100);
-
- /* Testing Disabled Shortcuts
- Qt::Key_M on slot1
- Shift + Qt::Key_M on slot1
- Qt::Key_M on slot2 (disabled)
- Shift + Qt::Key_M on slot2 (disabled)
- */
-
- // Setup two identical shortcuts on different pushbuttons
- QPushButton pb1(mainW);
- QPushButton pb2(mainW);
- pb1.setObjectName("pushbutton-1");
- pb2.setObjectName("pushbutton-2");
- pb1.show(); // Must be show for QShortcutMap::correctSubWindow to trigger
- pb2.show();
-
- QShortcut *cut1 = setupShortcut(&pb1, "shortcut1-pb1", TriggerSlot1, "M");
- QShortcut *cut2 = setupShortcut(&pb1, "shortcut2-pb1", TriggerSlot1, "Shift+M");
- QShortcut *cut3 = setupShortcut(&pb2, "shortcut3-pb2", TriggerSlot2, "M");
- QShortcut *cut4 = setupShortcut(&pb2, "shortcut4-pb2", TriggerSlot2, "Shift+M");
-
- cut3->setEnabled(false);
- cut4->setEnabled(false);
-
- currentResult = NoResult;
- sendKeyEvents(Qt::Key_M, 'm');
- QCOMPARE(currentResult, Slot1Triggered);
-
- currentResult = NoResult;
- sendKeyEvents(Qt::SHIFT+Qt::Key_M, 'M');
- QCOMPARE(currentResult, Slot1Triggered);
-
- cut2->setEnabled(false);
- cut4->setEnabled(true);
-
- /* Testing Disabled Shortcuts
- Qt::Key_M on slot1
- Shift + Qt::Key_M on slot1 (disabled)
- Qt::Key_M on slot2 (disabled)
- Shift + Qt::Key_M on slot2
- */
- currentResult = NoResult;
- sendKeyEvents( Qt::Key_M, 'm' );
- QCOMPARE( currentResult, Slot1Triggered );
-
- currentResult = NoResult;
- sendKeyEvents( Qt::SHIFT+Qt::Key_M, 'M' );
- QCOMPARE( currentResult, Slot2Triggered );
-
-
- /* Testing Disabled Accel
- Qt::Key_F5 on slot1
- Shift + Qt::Key_F5 on slot2 (disabled)
- */
- clearAllShortcuts();
- cut1 = setupShortcut(&pb1, "shortcut1-pb1", TriggerSlot1, "F5");
- cut4 = setupShortcut(&pb2, "shortcut4-pb2", TriggerSlot2, "Shift+F5");
-
- cut1->setKey(QKeySequence("F5"));
- cut4->setKey(QKeySequence("Shift+F5"));
-
- cut1->setEnabled(true);
- cut4->setEnabled(false);
-
- currentResult = NoResult;
- sendKeyEvents( Qt::Key_F5, 0 );
- QCOMPARE( currentResult, Slot1Triggered );
-
- currentResult = NoResult;
- sendKeyEvents( Qt::SHIFT+Qt::Key_F5, 0 );
- QCOMPARE( currentResult, NoResult );
-
-#if 0
- qFatal("Not testing statusbar text feedback yet, since not implemented");
- /* Testing Disabled Accel, and the corresponding statusbar feedback
- Ctrl + Qt::Key_K, Ctrl + Qt::Key_L on slot1
- Ctrl + Qt::Key_K, Ctrl + Qt::Key_M on slot2 (disabled)
- */
- cut1->setKey(QKeySequence("Ctrl+K, Ctrl+L"));
- cut4->setKey(QKeySequence("Ctrl+K, Ctrl+M"));
-
- cut1->setEnabled(true);
- cut4->setEnabled(false);
-
- currentResult = NoResult;
- sendKeyEvents( Qt::CTRL+Qt::Key_K, 0 );
- sendKeyEvents( Qt::CTRL+Qt::Key_Q, 0 );
- QCOMPARE( currentResult, NoResult );
- if (over_330)
- QCOMPARE( sbText, QString("Ctrl+K, Ctrl+Q not defined") );
-
- currentResult = NoResult;
- sendKeyEvents( Qt::CTRL+Qt::Key_K, 0 );
- sendKeyEvents( Qt::CTRL+Qt::Key_M, 0 );
- QCOMPARE( currentResult, NoResult );
- if (over_330)
- QCOMPARE( sbText, QString::null );
-
- currentResult = NoResult;
- sendKeyEvents( Qt::CTRL+Qt::Key_K, 0 );
- sendKeyEvents( Qt::CTRL+Qt::Key_L, 0 );
- QCOMPARE( currentResult, Slot1Triggered );
- if (over_330)
- QCOMPARE( sbText, QString::null );
-#endif
- clearAllShortcuts();
- cut1 = 0;
- cut4 = 0;
-}
-// ------------------------------------------------------------------
-// Ambiguous Elements -----------------------------------------------
-// ------------------------------------------------------------------
-void tst_QShortcut::ambiguousRotation()
-{
- clearAllShortcuts();
- /* Testing Shortcut rotation scheme
- Ctrl + Qt::Key_A on slot1 (disabled)
- Ctrl + Qt::Key_A on slot2 (disabled)
- Ctrl + Qt::Key_A on slot3
- Ctrl + Qt::Key_A on slot4
- Ctrl + Qt::Key_A on slot5 (disabled)
- Ctrl + Qt::Key_A on slot6
- Ctrl + Qt::Key_A on slot7 (disabled)
- */
- QShortcut *cut1 = setupShortcut(TriggerSlot1, "Ctrl+A");
- QShortcut *cut2 = setupShortcut(TriggerSlot2, "Ctrl+A");
- QShortcut *cut3 = setupShortcut(TriggerSlot3, "Ctrl+A");
- QShortcut *cut4 = setupShortcut(TriggerSlot4, "Ctrl+A");
- QShortcut *cut5 = setupShortcut(TriggerSlot5, "Ctrl+A");
- QShortcut *cut6 = setupShortcut(TriggerSlot6, "Ctrl+A");
- QShortcut *cut7 = setupShortcut(TriggerSlot7, "Ctrl+A");
-
- cut1->setEnabled(false);
- cut2->setEnabled(false);
- cut5->setEnabled(false);
- cut7->setEnabled(false);
-
- // Test proper rotation
- // Start on first
- // Go to last
- // Go back to first
- // Continue...
- currentResult = NoResult;
- ambigResult = NoResult;
- sendKeyEvents(Qt::CTRL+Qt::Key_A);
- QCOMPARE(currentResult, Ambiguous);
- QCOMPARE(ambigResult, Slot3Triggered);
-
- currentResult = NoResult;
- ambigResult = NoResult;
- sendKeyEvents(Qt::CTRL+Qt::Key_A);
- QCOMPARE(currentResult, Ambiguous);
- QCOMPARE(ambigResult, Slot4Triggered);
-
- currentResult = NoResult;
- ambigResult = NoResult;
- sendKeyEvents(Qt::CTRL+Qt::Key_A);
- QCOMPARE(currentResult, Ambiguous);
- QCOMPARE(ambigResult, Slot6Triggered);
-
- currentResult = NoResult;
- ambigResult = NoResult;
- sendKeyEvents(Qt::CTRL+Qt::Key_A);
- QCOMPARE(currentResult, Ambiguous);
- QCOMPARE(ambigResult, Slot3Triggered);
-
- currentResult = NoResult;
- ambigResult = NoResult;
- sendKeyEvents(Qt::CTRL+Qt::Key_A);
- QCOMPARE(currentResult, Ambiguous);
- QCOMPARE(ambigResult, Slot4Triggered);
-
- currentResult = NoResult;
- ambigResult = NoResult;
- sendKeyEvents(Qt::CTRL+Qt::Key_A);
- QCOMPARE(currentResult, Ambiguous);
- QCOMPARE(ambigResult, Slot6Triggered);
-
- /* Testing Shortcut rotation scheme
- Ctrl + Qt::Key_A on slot1
- Ctrl + Qt::Key_A on slot2
- Ctrl + Qt::Key_A on slot3 (disabled)
- Ctrl + Qt::Key_A on slot4 (disabled)
- Ctrl + Qt::Key_A on slot5
- Ctrl + Qt::Key_A on slot6 (disabled)
- Ctrl + Qt::Key_A on slot7
- */
-
- cut1->setEnabled(true);
- cut2->setEnabled(true);
- cut5->setEnabled(true);
- cut7->setEnabled(true);
-
- cut3->setEnabled(false);
- cut4->setEnabled(false);
- cut6->setEnabled(false);
-
- currentResult = NoResult;
- ambigResult = NoResult;
- sendKeyEvents(Qt::CTRL+Qt::Key_A);
- QCOMPARE(currentResult, Ambiguous);
- QCOMPARE(ambigResult, Slot1Triggered);
-
- currentResult = NoResult;
- ambigResult = NoResult;
- sendKeyEvents(Qt::CTRL+Qt::Key_A);
- QCOMPARE(currentResult, Ambiguous);
- QCOMPARE(ambigResult, Slot2Triggered);
-
- currentResult = NoResult;
- ambigResult = NoResult;
- sendKeyEvents(Qt::CTRL+Qt::Key_A);
- QCOMPARE(currentResult, Ambiguous);
- QCOMPARE(ambigResult, Slot5Triggered);
-
- currentResult = NoResult;
- ambigResult = NoResult;
- sendKeyEvents(Qt::CTRL+Qt::Key_A);
- QCOMPARE(currentResult, Ambiguous);
- QCOMPARE(ambigResult, Slot7Triggered);
-
- currentResult = NoResult;
- ambigResult = NoResult;
- sendKeyEvents(Qt::CTRL+Qt::Key_A);
- QCOMPARE(currentResult, Ambiguous);
- QCOMPARE(ambigResult, Slot1Triggered);
-
- currentResult = NoResult;
- ambigResult = NoResult;
- sendKeyEvents(Qt::CTRL+Qt::Key_A);
- QCOMPARE(currentResult, Ambiguous);
- QCOMPARE(ambigResult, Slot2Triggered);
-
- currentResult = NoResult;
- ambigResult = NoResult;
- sendKeyEvents(Qt::CTRL+Qt::Key_A);
- QCOMPARE(currentResult, Ambiguous);
- QCOMPARE(ambigResult, Slot5Triggered);
-
- currentResult = NoResult;
- ambigResult = NoResult;
- sendKeyEvents(Qt::CTRL+Qt::Key_A);
- QCOMPARE(currentResult, Ambiguous);
- QCOMPARE(ambigResult, Slot7Triggered);
-
- clearAllShortcuts();
- cut1 = 0; cut2 = 0;
- cut3 = 0; cut4 = 0;
- cut5 = 0; cut6 = 0;
- cut7 = 0;
-}
-
-void tst_QShortcut::ambiguousItems()
-{
- clearAllShortcuts();
- /* Testing Ambiguous Shortcuts
- Qt::Key_M on Pushbutton 1
- Qt::Key_M on Pushbutton 2
- */
-
- // Setup two identical shortcuts on different pushbuttons
- QPushButton pb1(mainW);
- QPushButton pb2(mainW);
- pb1.setObjectName("pushbutton-1");
- pb2.setObjectName("pushbutton-2");
- pb1.show(); // Must be show for QShortcutMap::correctSubWindow to trigger
- pb2.show();
-
- setupShortcut(&pb1, "shortcut1-pb1", TriggerSlot1, "M");
- setupShortcut(&pb1, "shortcut2-pb2", TriggerSlot2, "M");
-
- currentResult = NoResult;
- sendKeyEvents( Qt::Key_M, 'm' );
- QCOMPARE( currentResult, Ambiguous );
- QCOMPARE( ambigResult, Slot1Triggered );
-
- currentResult = NoResult;
- sendKeyEvents( Qt::Key_M, 'm' );
- QCOMPARE( currentResult, Ambiguous );
- QCOMPARE( ambigResult, Slot2Triggered );
-
- currentResult = NoResult;
- sendKeyEvents( Qt::Key_M, 'm' );
- QCOMPARE( currentResult, Ambiguous );
- QCOMPARE( ambigResult, Slot1Triggered );
-
- clearAllShortcuts();
-}
-
-
-// ------------------------------------------------------------------
-// Unicode and non-unicode Elements ---------------------------------
-// ------------------------------------------------------------------
-void tst_QShortcut::unicodeCompare()
-{
- clearAllShortcuts();
- /* Testing Unicode/non-Unicode Shortcuts
- Qt::Key_M on Pushbutton 1
- Qt::Key_M on Pushbutton 2
- */
- QPushButton pb1(mainW);
- QPushButton pb2(mainW);
- pb1.setObjectName("pushbutton-1");
- pb2.setObjectName("pushbutton-2");
- pb1.show(); // Must be show for QShortcutMap::correctSubWindow to trigger
- pb2.show();
-
- QKeySequence ks1("Ctrl+M"); // Unicode
- QKeySequence ks2(Qt::CTRL+Qt::Key_M); // non-Unicode
- setupShortcut(&pb1, "shortcut1-pb1", TriggerSlot1, ks1);
- setupShortcut(&pb1, "shortcut2-pb2", TriggerSlot2, ks2);
-
- currentResult = NoResult;
- sendKeyEvents( Qt::CTRL+Qt::Key_M, 0 );
- QCOMPARE( currentResult, Ambiguous );
- // They _are_ ambiguous, so the QKeySequence operator==
- // should indicate the same
- QVERIFY( ks1 == ks2 );
- QVERIFY( !(ks1 != ks2) );
-
- clearAllShortcuts();
-}
-
-// ------------------------------------------------------------------
-// Keypress consumption verification --------------------------------
-// ------------------------------------------------------------------
-void tst_QShortcut::keypressConsumption()
-{
- clearAllShortcuts();
- edit->clear();
- QCOMPARE(edit->toPlainText().size(), 0);
-
- QShortcut *cut1 = setupShortcut(edit, "shortcut1-line", TriggerSlot1, "Ctrl+I, A");
- QShortcut *cut2 = setupShortcut(edit, "shortcut1-line", TriggerSlot2, "Ctrl+I, B");
-
- currentResult = NoResult;
- ambigResult = NoResult;
- sendKeyEvents(edit, Qt::CTRL + Qt::Key_I, 0); // Send key to edit
- QCOMPARE( currentResult, NoResult );
- QCOMPARE( ambigResult, NoResult );
- QCOMPARE(edit->toPlainText(), QString(""));
-
- // Make sure next keypress is eaten (failing multiple keysequence)
- sendKeyEvents(edit, Qt::Key_C, 'c'); // Send key to edit
- QCOMPARE( currentResult, NoResult );
- QCOMPARE( ambigResult, NoResult );
- QCOMPARE(edit->toPlainText(), QString(""));
-
- // Next keypress should be normal
- sendKeyEvents(edit, Qt::Key_C, 'c'); // Send key to edit
- QCOMPARE( currentResult, NoResult );
- QCOMPARE( ambigResult, NoResult );
- QCOMPARE(edit->toPlainText(), QString("c"));
-
- currentResult = NoResult;
- ambigResult = NoResult;
- edit->clear();
- QCOMPARE(edit->toPlainText().size(), 0);
-
- cut1->setEnabled(false);
- cut2->setEnabled(false);
-
- // Make sure keypresses is passed on, since all multiple keysequences
- // with Ctrl+I are disabled
- sendKeyEvents(edit, Qt::CTRL + Qt::Key_I, 0); // Send key to edit
- QCOMPARE( currentResult, NoResult );
- QCOMPARE( ambigResult, NoResult );
- QVERIFY(edit->toPlainText().endsWith("<Ctrl+I>"));
-
- sendKeyEvents(edit, Qt::Key_A, 'a'); // Send key to edit
- QCOMPARE( currentResult, NoResult );
- QCOMPARE( ambigResult, NoResult );
- QVERIFY(edit->toPlainText().endsWith("<Ctrl+I>a"));
-
- clearAllShortcuts();
-}
-
-// ------------------------------------------------------------------
-// Context Validation -----------------------------------------------
-// ------------------------------------------------------------------
-void tst_QShortcut::context()
-{
- clearAllShortcuts();
-
- QWidget myBox;
- TestEdit *other1 = new TestEdit(&myBox, "test_edit_other1");
- TestEdit *other2 = new TestEdit(&myBox, "test_edit_other2");
- QHBoxLayout *layout = new QHBoxLayout(&myBox);
- layout->addWidget(other1);
- layout->addWidget(other2);
- myBox.show();
-#ifdef Q_WS_X11
- qt_x11_wait_for_window_manager(&myBox);
-#endif
-
- setupShortcut(other1, "ActiveWindow", TriggerSlot1, QKeySequence("Alt+1"), Qt::WindowShortcut);
- setupShortcut(other2, "Focus", TriggerSlot2, QKeySequence("Alt+2"), Qt::WidgetShortcut);
- setupShortcut(edit, "Application", TriggerSlot3, QKeySequence("Alt+3"), Qt::ApplicationShortcut);
-
- currentResult = NoResult;
- ambigResult = NoResult;
- edit->clear();
- other1->clear();
- other2->clear();
-
- // edit doesn't have focus, so ActiveWindow context should work
- // ..but Focus context shouldn't..
- // Changing focus to edit should make focus context work
- // Application context should always work
-
-
- // Focus on 'other1' edit, so Active Window context should trigger
- other1->activateWindow(); // <---
- QApplication::setActiveWindow(other1);
- QCOMPARE(qApp->activeWindow(), other1->window());
- QCOMPARE(qApp->focusWidget(), (QWidget *)other1);
-
- currentResult = NoResult;
- ambigResult = NoResult;
- edit->clear();
- other1->clear();
- other2->clear();
-
- QCOMPARE(qApp->focusWidget(), (QWidget *)other1);
- sendKeyEvents(other1, Qt::ALT+Qt::Key_1);
- QCOMPARE(currentResult, Slot1Triggered);
- QCOMPARE(ambigResult, NoResult);
- QCOMPARE(edit->toPlainText(), QString(""));
- QCOMPARE(other1->toPlainText(), QString(""));
- QCOMPARE(other2->toPlainText(), QString(""));
-
- // ..but not Focus context on 'other2'..
- currentResult = NoResult;
- ambigResult = NoResult;
- edit->clear();
- other1->clear();
- other2->clear();
-
- sendKeyEvents(other1, Qt::ALT+Qt::Key_2);
- QCOMPARE(currentResult, NoResult);
- QCOMPARE(ambigResult, NoResult);
- QCOMPARE(edit->toPlainText(), QString(""));
- QCOMPARE(other1->toPlainText(), QString("<Alt+2>"));
- QCOMPARE(other2->toPlainText(), QString(""));
-
- // ..however, application global context on 'edit' should..
- currentResult = NoResult;
- ambigResult = NoResult;
- edit->clear();
- other1->clear();
- other2->clear();
-
- sendKeyEvents(other1, Qt::ALT+Qt::Key_3);
- QCOMPARE(currentResult, Slot3Triggered);
- QCOMPARE(ambigResult, NoResult);
- QCOMPARE(edit->toPlainText(), QString(""));
- QCOMPARE(other1->toPlainText(), QString(""));
- QCOMPARE(other2->toPlainText(), QString(""));
-
- // Changing focus to 'other2' should make the Focus context there work
- other2->activateWindow();
- other2->setFocus(); // ###
- qApp->syncX();
-#ifdef Q_WS_X11
- qt_x11_wait_for_window_manager(other2);
-#endif
- QTest::qWait(100);
- QCOMPARE(qApp->activeWindow(), other2->window());
- QCOMPARE(qApp->focusWidget(), (QWidget *)other2);
-
- currentResult = NoResult;
- ambigResult = NoResult;
- edit->clear();
- other1->clear();
- other2->clear();
-
- sendKeyEvents(other2, Qt::ALT+Qt::Key_2);
- QCOMPARE(currentResult, Slot2Triggered);
- QCOMPARE(ambigResult, NoResult);
- QCOMPARE(edit->toPlainText(), QString(""));
- QCOMPARE(other1->toPlainText(), QString(""));
- QCOMPARE(other2->toPlainText(), QString(""));
-
- clearAllShortcuts();
- delete other1;
- delete other2;
- edit->activateWindow();
- qApp->syncX();
-#ifdef Q_WS_X11
- qt_x11_wait_for_window_manager(edit);
-#endif
- QTest::qWait(100);
-}
-
-// ------------------------------------------------------------------
-// Element Testing helper functions ---------------------------------
-// ------------------------------------------------------------------
-void tst_QShortcut::clearAllShortcuts()
-{
- QList<QShortcut *> shortcutsCpy = shortcuts;
- qDeleteAll(shortcutsCpy);
- shortcuts.clear();
-}
-
-QShortcut *tst_QShortcut::setupShortcut(int testWidget, const QKeySequence &ks)
-{
- return setupShortcut(mainW, QTest::currentDataTag() ? QTest::currentDataTag() : "", testWidget, ks);
-}
-
-QShortcut *tst_QShortcut::setupShortcut(int testWidget, const QString &txt, int k1, int k2, int k3, int k4)
-{
- return setupShortcut(mainW, QTest::currentDataTag() ? QTest::currentDataTag() : "", testWidget,
- (txt.isEmpty() ? QKeySequence(k1, k2, k3, k4) : QKeySequence(txt)));
-}
-
-QShortcut *tst_QShortcut::setupShortcut(QWidget *parent, const char *name, int testWidget, const QString &txt, int k1, int k2, int k3, int k4)
-{
- return setupShortcut(parent, name, testWidget,
- (txt.isEmpty() ? QKeySequence(k1, k2, k3, k4) : QKeySequence(txt)));
-}
-
-QShortcut *tst_QShortcut::setupShortcut(QWidget *parent, const char *name, int testWidget,
- const QKeySequence &ks, Qt::ShortcutContext context)
-{
- // Set up shortcut for next test
- QShortcut *cut = new QShortcut(QKeySequence(), parent, 0, 0, context);
- cut->setObjectName(name);
- cut->setKey(ks);
-
- const char *normal = 0;
- const char *ambig = 0;
- switch(testWidget)
- {
- case TriggerSlot1:
- normal = SLOT(slotTrig1());
- ambig = SLOT(ambigSlot1());
- break;
- case TriggerSlot2:
- normal = SLOT(slotTrig2());
- ambig = SLOT(ambigSlot2());
- break;
- case TriggerSlot3:
- normal = SLOT(slotTrig3());
- ambig = SLOT(ambigSlot3());
- break;
- case TriggerSlot4:
- normal = SLOT(slotTrig4());
- ambig = SLOT(ambigSlot4());
- break;
- case TriggerSlot5:
- normal = SLOT(slotTrig5());
- ambig = SLOT(ambigSlot5());
- break;
- case TriggerSlot6:
- normal = SLOT(slotTrig6());
- ambig = SLOT(ambigSlot6());
- break;
- case TriggerSlot7:
- normal = SLOT(slotTrig7());
- ambig = SLOT(ambigSlot7());
- break;
- }
- connect(cut, SIGNAL(activated()), this, normal);
- connect(cut, SIGNAL(activatedAmbiguously()), this, ambig);
- connect(cut, SIGNAL(destroyed(QObject*)), this, SLOT(shortcutDestroyed(QObject*)));
- shortcuts.append(cut);
- return cut;
-}
-
-void tst_QShortcut::shortcutDestroyed(QObject* obj)
-{
- shortcuts.removeAll(static_cast<QShortcut *>(obj));
-}
-
-void tst_QShortcut::sendKeyEvents(int k1, QChar c1, int k2, QChar c2, int k3, QChar c3, int k4, QChar c4)
-{
- sendKeyEvents(mainW, k1, c1, k2, c2, k3, c3, k4, c4);
-}
-
-void tst_QShortcut::sendKeyEvents(QWidget *w, int k1, QChar c1, int k2, QChar c2, int k3, QChar c3, int k4, QChar c4)
-{
- Qt::KeyboardModifiers b1 = toButtons( k1 );
- Qt::KeyboardModifiers b2 = toButtons( k2 );
- Qt::KeyboardModifiers b3 = toButtons( k3 );
- Qt::KeyboardModifiers b4 = toButtons( k4 );
- k1 &= ~Qt::MODIFIER_MASK;
- k2 &= ~Qt::MODIFIER_MASK;
- k3 &= ~Qt::MODIFIER_MASK;
- k4 &= ~Qt::MODIFIER_MASK;
-
-
- if (k1 || c1.toAscii()) {
- QString c(c1.unicode() == QChar::Null ? QString() : QString(c1));
- QTest::sendKeyEvent(QTest::Press, w, static_cast<Qt::Key>(k1), c, b1);
- QTest::sendKeyEvent(QTest::Release, w, static_cast<Qt::Key>(k1), c, b1);
- }
-
- if (k2 || c2.toAscii()) {
- QString c(c2.unicode() == QChar::Null ? QString() : QString(c2));
- QTest::sendKeyEvent(QTest::Press, w, static_cast<Qt::Key>(k2), c, b2);
- QTest::sendKeyEvent(QTest::Release, w, static_cast<Qt::Key>(k2), c, b2);
- }
-
- if (k3 || c3.toAscii()) {
- QString c(c3.unicode() == QChar::Null ? QString() : QString(c3));
- QTest::sendKeyEvent(QTest::Press, w, static_cast<Qt::Key>(k3), c, b3);
- QTest::sendKeyEvent(QTest::Release, w, static_cast<Qt::Key>(k3), c, b3);
- }
-
- if (k4 || c4.toAscii()) {
- QString c(c4.unicode() == QChar::Null ? QString() : QString(c4));
- QTest::sendKeyEvent(QTest::Press, w, static_cast<Qt::Key>(k4), c, b4);
- QTest::sendKeyEvent(QTest::Release, w, static_cast<Qt::Key>(k4), c, b4);
- }
-}
-
-void tst_QShortcut::testElement()
-{
- currentResult = NoResult;
- QFETCH(tst_QShortcut::Action, action);
- QFETCH(tst_QShortcut::Widget, testWidget);
- QFETCH(QString, txt);
- QFETCH(int, k1);
- QFETCH(int, c1);
- QFETCH(int, k2);
- QFETCH(int, c2);
- QFETCH(int, k3);
- QFETCH(int, c3);
- QFETCH(int, k4);
- QFETCH(int, c4);
- QFETCH(tst_QShortcut::Result, result);
-
- if (action == ClearAll) {
- clearAllShortcuts();
- } else if (action == SetupAccel) {
- setupShortcut(testWidget, txt, k1, k2, k3, k4);
- } else {
- sendKeyEvents(k1, c1, k2, c2, k3, c3, k4, c4);
- QCOMPARE(currentResult, result);
- }
-}
-
-QTEST_MAIN(tst_QShortcut)
-#include "tst_qshortcut.moc"