summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRick Stockton <rickstockton@reno-computerhelp.com>2012-12-13 22:46:54 -0800
committerThe Qt Project <gerrit-noreply@qt-project.org>2012-12-14 11:02:47 +0100
commit4d6bf271c799e0d31b674c76fda54c493ce641a8 (patch)
treedc8c205e2e9a82217c2baef424a5b6385be8b51f
parentfa7661d8b25fa338649a301010e1b5a2b63da731 (diff)
Enhance example qtbase/examples/widgets/widgets/mousebuttons
Add Display and QDebug() of Qt::MouseButtons values. (I.e., Buttons believed to be in 'Pressed' State by Qt.) Assists in platform plugin mouse software debug. Task-number: QTBUG-28603 Change-Id: I4a7a3ac44a8cc7eb1eceb9f348493b58b12dbd69 Reviewed-by: Oliver Wolff <oliver.wolff@digia.com> Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
-rw-r--r--examples/widgets/widgets/mousebuttons/buttontester.cpp56
-rw-r--r--examples/widgets/widgets/mousebuttons/buttontester.h1
-rw-r--r--examples/widgets/widgets/mousebuttons/main.cpp4
3 files changed, 55 insertions, 6 deletions
diff --git a/examples/widgets/widgets/mousebuttons/buttontester.cpp b/examples/widgets/widgets/mousebuttons/buttontester.cpp
index 9a631b9fa2..c64bf76211 100644
--- a/examples/widgets/widgets/mousebuttons/buttontester.cpp
+++ b/examples/widgets/widgets/mousebuttons/buttontester.cpp
@@ -44,26 +44,35 @@
void ButtonTester::mousePressEvent(QMouseEvent *e)
{
int j = ButtonTester::buttonByNumber (e->button());
- QString result = "Mouse Press: raw button=" + QString::number(j) + " Qt=" + enumNameFromValue(e->button());
+ QString result = "Mouse Press: raw button=" + QString::number(j)
+ + " Qt=" + enumNameFromValue(e->button());
+ QString buttonsString = ButtonTester::enumNamesFromMouseButtons(e->buttons());
+ result += "\n heldbuttons " + buttonsString;
qDebug() << result;
this->setText(result);
- if (j == 2) {
- this->repaint();
- }
+ this->repaint();
}
void ButtonTester::mouseReleaseEvent(QMouseEvent *e)
{
int j = ButtonTester::buttonByNumber (e->button());
- QString result = "Mouse Release: raw button=" + QString::number(j) + " Qt=" + enumNameFromValue(e->button());
+ QString result = "Mouse Release: raw button=" + QString::number(j)
+ + " Qt=" + enumNameFromValue(e->button());
+ QString buttonsString = ButtonTester::enumNamesFromMouseButtons(e->buttons());
+ result += "\n heldbuttons " + buttonsString;
qDebug() << result;
this->setText(result);
+ this->repaint();
+
}
void ButtonTester::mouseDoubleClickEvent(QMouseEvent *e)
{
int j = ButtonTester::buttonByNumber (e->button());
- QString result = "Mouse DoubleClick: raw button=" + QString::number(j) + " Qt=" + enumNameFromValue(e->button());
+ QString result = "Mouse DoubleClick: raw button=" + QString::number(j)
+ + " Qt=" + enumNameFromValue(e->button());
+ QString buttonsString = ButtonTester::enumNamesFromMouseButtons(e->buttons());
+ result += "\n heldbuttons" + buttonsString;
qDebug() << result;
this->setText(result);
}
@@ -172,3 +181,38 @@ QString ButtonTester::enumNameFromValue(const Qt::MouseButton button)
qDebug("QMouseShortcutEntry::addShortcut contained Invalid Qt::MouseButton value");
return "NoButton";
}
+
+QString ButtonTester::enumNamesFromMouseButtons(const Qt::MouseButtons buttons)
+{
+ QString returnText = "";
+ if (buttons == Qt::NoButton) return "NoButton";
+ if (buttons & Qt::LeftButton) returnText += "LeftButton ";
+ if (buttons & Qt::RightButton) returnText += "RightButton ";
+ if (buttons & Qt::MiddleButton) returnText += "MiddleButton ";
+ if (buttons & Qt::BackButton) returnText += "BackButton ";
+ if (buttons & Qt::ForwardButton) returnText += "ForwardButton ";
+ if (buttons & Qt::TaskButton) returnText += "TaskButton ";
+ if (buttons & Qt::ExtraButton4) returnText += "ExtraButton4 ";
+ if (buttons & Qt::ExtraButton5) returnText += "ExtraButton5 ";
+ if (buttons & Qt::ExtraButton6) returnText += "ExtraButton6 ";
+ if (buttons & Qt::ExtraButton7) returnText += "ExtraButton7 ";
+ if (buttons & Qt::ExtraButton8) returnText += "ExtraButton8 ";
+ if (buttons & Qt::ExtraButton9) returnText += "ExtraButton9 ";
+ if (buttons & Qt::ExtraButton10) returnText += "ExtraButton10 ";
+ if (buttons & Qt::ExtraButton11) returnText += "ExtraButton11 ";
+ if (buttons & Qt::ExtraButton12) returnText += "ExtraButton12 ";
+ if (buttons & Qt::ExtraButton13) returnText += "ExtraButton13 ";
+ if (buttons & Qt::ExtraButton14) returnText += "ExtraButton14 ";
+ if (buttons & Qt::ExtraButton15) returnText += "ExtraButton15 ";
+ if (buttons & Qt::ExtraButton16) returnText += "ExtraButton16 ";
+ if (buttons & Qt::ExtraButton17) returnText += "ExtraButton17 ";
+ if (buttons & Qt::ExtraButton18) returnText += "ExtraButton18 ";
+ if (buttons & Qt::ExtraButton19) returnText += "ExtraButton19 ";
+ if (buttons & Qt::ExtraButton20) returnText += "ExtraButton20 ";
+ if (buttons & Qt::ExtraButton21) returnText += "ExtraButton21 ";
+ if (buttons & Qt::ExtraButton22) returnText += "ExtraButton22 ";
+ if (buttons & Qt::ExtraButton23) returnText += "ExtraButton23 ";
+ if (buttons & Qt::ExtraButton24) returnText += "ExtraButton24 ";
+ return returnText;
+}
+
diff --git a/examples/widgets/widgets/mousebuttons/buttontester.h b/examples/widgets/widgets/mousebuttons/buttontester.h
index 2f8db560f4..6db8993486 100644
--- a/examples/widgets/widgets/mousebuttons/buttontester.h
+++ b/examples/widgets/widgets/mousebuttons/buttontester.h
@@ -61,6 +61,7 @@ protected:
#endif
int buttonByNumber(const Qt::MouseButton button);
QString enumNameFromValue(const Qt::MouseButton button);
+ QString enumNamesFromMouseButtons(const Qt::MouseButtons buttons);
};
#endif // BUTTONTESTER_H
diff --git a/examples/widgets/widgets/mousebuttons/main.cpp b/examples/widgets/widgets/mousebuttons/main.cpp
index 67bbbb8896..1692ac5432 100644
--- a/examples/widgets/widgets/mousebuttons/main.cpp
+++ b/examples/widgets/widgets/mousebuttons/main.cpp
@@ -48,6 +48,10 @@ int main(int argv, char **args)
ButtonTester *testArea = new ButtonTester;
testArea->setMinimumSize(500, 350);
+
+// For this test, Qt::RightButton behaves like any other button.
+ testArea->setContextMenuPolicy(Qt::NoContextMenu);
+ testArea->setTextInteractionFlags(Qt::TextSelectableByMouse);
testArea->setText("To test your mouse with Qt, press buttons in this area.\nYou may also scroll or tilt your mouse wheel.");
QPushButton *quitButton = new QPushButton("Quit");