summaryrefslogtreecommitdiffstats
path: root/tests/manual
diff options
context:
space:
mode:
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