summaryrefslogtreecommitdiffstats
path: root/tests/manual
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2020-09-27 11:30:43 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2020-09-27 12:25:54 +0200
commit38a5b6212db33700804b83802ef9f0b1423b29cd (patch)
tree1f7dcf87a0c585bb889ebfd5802f5b4c749cc553 /tests/manual
parent03c12974bbaf6f5f394d846099c7a67b058d65e2 (diff)
qtabletevent/regular_widget manual test: Add a toggle for WinTab
Task-number: QTBUG-83218 Change-Id: I179f53c051c92dbb86fbac710d4a514c4e5d3c49 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Diffstat (limited to 'tests/manual')
-rw-r--r--tests/manual/qtabletevent/regular_widgets/CMakeLists.txt4
-rw-r--r--tests/manual/qtabletevent/regular_widgets/main.cpp62
-rw-r--r--tests/manual/qtabletevent/regular_widgets/regular_widgets.pro2
3 files changed, 56 insertions, 12 deletions
diff --git a/tests/manual/qtabletevent/regular_widgets/CMakeLists.txt b/tests/manual/qtabletevent/regular_widgets/CMakeLists.txt
index 340510fc6b..b606fcabc2 100644
--- a/tests/manual/qtabletevent/regular_widgets/CMakeLists.txt
+++ b/tests/manual/qtabletevent/regular_widgets/CMakeLists.txt
@@ -4,12 +4,14 @@
## regular_widgets Binary:
#####################################################################
-qt_internal_add_manual_test(regular_widgets
+qt_internal_add_executable(regular_widgets
GUI
SOURCES
main.cpp
PUBLIC_LIBRARIES
+ Qt::CorePrivate
Qt::Gui
+ Qt::GuiPrivate
Qt::Widgets
)
diff --git a/tests/manual/qtabletevent/regular_widgets/main.cpp b/tests/manual/qtabletevent/regular_widgets/main.cpp
index decfc3af74..9f20f5412f 100644
--- a/tests/manual/qtabletevent/regular_widgets/main.cpp
+++ b/tests/manual/qtabletevent/regular_widgets/main.cpp
@@ -40,12 +40,33 @@
#include <QStatusBar>
#include <QTabletEvent>
+#ifdef Q_OS_WIN
+# include <QtGui/private/qguiapplication_p.h>
+# include <QtGui/qpa/qplatformintegration.h>
+#endif
+
enum TabletPointType {
TabletButtonPress,
TabletButtonRelease,
TabletMove
};
+#ifdef Q_OS_WIN
+using QWindowsApplication = QPlatformInterface::Private::QWindowsApplication;
+
+static void setWinTabEnabled(bool e)
+{
+ if (auto nativeWindowsApp = dynamic_cast<QWindowsApplication *>(QGuiApplicationPrivate::platformIntegration()))
+ nativeWindowsApp->setWinTabEnabled(e);
+}
+
+static bool isWinTabEnabled()
+{
+ auto nativeWindowsApp = dynamic_cast<QWindowsApplication *>(QGuiApplicationPrivate::platformIntegration());
+ return nativeWindowsApp && nativeWindowsApp->isWinTabEnabled();
+}
+#endif // Q_OS_WIN
+
struct TabletPoint
{
TabletPoint(const QPointF &p = QPointF(), TabletPointType t = TabletMove, Qt::MouseButton b = Qt::LeftButton,
@@ -275,25 +296,46 @@ void EventReportWidget::timerEvent(QTimerEvent *)
m_paintEventCount = 0;
}
-int main(int argc, char *argv[])
+class MainWindow : public QMainWindow
{
- QApplication app(argc, argv);
+public:
+ explicit MainWindow(ProximityEventFilter *proximityEventFilter);
+};
- ProximityEventFilter *proximityEventFilter = new ProximityEventFilter(&app);
- app.installEventFilter(proximityEventFilter);
- QMainWindow mainWindow;
- mainWindow.setWindowTitle(QString::fromLatin1("Tablet Test %1").arg(QT_VERSION_STR));
- EventReportWidget *widget = new EventReportWidget;
+MainWindow::MainWindow(ProximityEventFilter *proximityEventFilter)
+{
+ setWindowTitle(QString::fromLatin1("Tablet Test %1").arg(QT_VERSION_STR));
+ auto widget = new EventReportWidget;
QObject::connect(proximityEventFilter, &ProximityEventFilter::proximityChanged,
widget, QOverload<>::of(&QWidget::update));
widget->setMinimumSize(640, 480);
- QMenu *fileMenu = mainWindow.menuBar()->addMenu("File");
+ auto fileMenu = menuBar()->addMenu("File");
fileMenu->addAction("Clear", widget, &EventReportWidget::clearPoints);
QObject::connect(widget, &EventReportWidget::stats,
- mainWindow.statusBar(), &QStatusBar::showMessage);
+ statusBar(), &QStatusBar::showMessage);
QAction *quitAction = fileMenu->addAction("Quit", qApp, &QCoreApplication::quit);
quitAction->setShortcut(Qt::CTRL | Qt::Key_Q);
- mainWindow.setCentralWidget(widget);
+
+ auto settingsMenu = menuBar()->addMenu("Settings");
+ auto winTabAction = settingsMenu->addAction("WinTab");
+ winTabAction->setCheckable(true);
+#ifdef Q_OS_WIN
+ winTabAction->setChecked(isWinTabEnabled());
+ connect(winTabAction, &QAction::toggled, this, setWinTabEnabled);
+#else
+ winTabAction->setEnabled(false);
+#endif
+
+ setCentralWidget(widget);
+}
+
+int main(int argc, char *argv[])
+{
+ QApplication app(argc, argv);
+
+ ProximityEventFilter *proximityEventFilter = new ProximityEventFilter(&app);
+ app.installEventFilter(proximityEventFilter);
+ MainWindow mainWindow(proximityEventFilter);
mainWindow.show();
return app.exec();
}
diff --git a/tests/manual/qtabletevent/regular_widgets/regular_widgets.pro b/tests/manual/qtabletevent/regular_widgets/regular_widgets.pro
index 8f1f4342ee..1428d10a04 100644
--- a/tests/manual/qtabletevent/regular_widgets/regular_widgets.pro
+++ b/tests/manual/qtabletevent/regular_widgets/regular_widgets.pro
@@ -1,4 +1,4 @@
TEMPLATE = app
-QT += widgets
+QT += widgets gui-private core-private
SOURCES += main.cpp