From dc03ac15b074716cd1afdda2442c78c7583cf730 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Mon, 16 Oct 2017 15:23:05 +0200 Subject: QTabletEvent/manual widgets test: Port to C++ 11 Change-Id: If5ebb45ce286d6a96c9f8bfe1fac70661d065460 Reviewed-by: Shawn Rutledge --- tests/manual/qtabletevent/regular_widgets/main.cpp | 48 +++++++++------------- 1 file changed, 19 insertions(+), 29 deletions(-) (limited to 'tests/manual') diff --git a/tests/manual/qtabletevent/regular_widgets/main.cpp b/tests/manual/qtabletevent/regular_widgets/main.cpp index fd3c385b97..a43ea22b0f 100644 --- a/tests/manual/qtabletevent/regular_widgets/main.cpp +++ b/tests/manual/qtabletevent/regular_widgets/main.cpp @@ -63,46 +63,36 @@ class EventReportWidget : public QWidget { Q_OBJECT public: - EventReportWidget(); + EventReportWidget() { startTimer(1000); } public slots: void clearPoints() { m_points.clear(); update(); } signals: - void stats(QString s); + void stats(QString s, int timeOut = 0); protected: - void mouseDoubleClickEvent(QMouseEvent *event) { outputMouseEvent(event); } - void mouseMoveEvent(QMouseEvent *event) { outputMouseEvent(event); } - void mousePressEvent(QMouseEvent *event) { outputMouseEvent(event); } - void mouseReleaseEvent(QMouseEvent *event) { outputMouseEvent(event); } + void mouseDoubleClickEvent(QMouseEvent *event) override { outputMouseEvent(event); } + void mouseMoveEvent(QMouseEvent *event) override { outputMouseEvent(event); } + void mousePressEvent(QMouseEvent *event) override { outputMouseEvent(event); } + void mouseReleaseEvent(QMouseEvent *event) override { outputMouseEvent(event); } - void tabletEvent(QTabletEvent *); + void tabletEvent(QTabletEvent *) override; - void paintEvent(QPaintEvent *); - void timerEvent(QTimerEvent *); + void paintEvent(QPaintEvent *) override; + void timerEvent(QTimerEvent *) override; private: void outputMouseEvent(QMouseEvent *event); - bool m_lastIsMouseMove; - bool m_lastIsTabletMove; - Qt::MouseButton m_lastButton; + bool m_lastIsMouseMove = false; + bool m_lastIsTabletMove = false; + Qt::MouseButton m_lastButton = Qt::NoButton; QVector m_points; - int m_tabletMoveCount; - int m_paintEventCount; + int m_tabletMoveCount = 0; + int m_paintEventCount = 0; }; -EventReportWidget::EventReportWidget() - : m_lastIsMouseMove(false) - , m_lastIsTabletMove(false) - , m_lastButton(Qt::NoButton) - , m_tabletMoveCount(0) - , m_paintEventCount(0) -{ - startTimer(1000); -} - void EventReportWidget::paintEvent(QPaintEvent *) { QPainter p(this); @@ -114,7 +104,7 @@ void EventReportWidget::paintEvent(QPaintEvent *) p.setPen(Qt::white); QPainterPath ellipse; ellipse.addEllipse(0, 0, halfLineSpacing * 5, halfLineSpacing); - foreach (const TabletPoint &t, m_points) { + for (const TabletPoint &t : qAsConst(m_points)) { if (geom.contains(t.pos)) { QPainterPath pp; pp.addEllipse(t.pos, halfLineSpacing, halfLineSpacing); @@ -218,10 +208,10 @@ int main(int argc, char *argv[]) EventReportWidget *widget = new EventReportWidget; widget->setMinimumSize(640, 480); QMenu *fileMenu = mainWindow.menuBar()->addMenu("File"); - QObject::connect(fileMenu->addAction("Clear"), SIGNAL(triggered()), widget, SLOT(clearPoints())); - QObject::connect(widget, SIGNAL(stats(QString)), mainWindow.statusBar(), SLOT(showMessage(QString))); - QAction *quitAction = fileMenu->addAction("Quit"); - QObject::connect(quitAction, SIGNAL(triggered()), qApp, SLOT(quit())); + fileMenu->addAction("Clear", widget, &EventReportWidget::clearPoints); + QObject::connect(widget, &EventReportWidget::stats, + mainWindow.statusBar(), &QStatusBar::showMessage); + QAction *quitAction = fileMenu->addAction("Quit", qApp, &QCoreApplication::quit); quitAction->setShortcut(Qt::CTRL + Qt::Key_Q); mainWindow.setCentralWidget(widget); mainWindow.show(); -- cgit v1.2.3 From 3760bc759045c58c548b8f6b8a0a9c1efaa90cd4 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Mon, 16 Oct 2017 15:24:00 +0200 Subject: QTabletEvent/manual widgets test: Fix reporting of proximity events Proximit events are sent to the QGuiApplication, catch them via event filter. Change-Id: I7f896e7d9f5c90347b9e3c708feb69abd1c5fc95 Reviewed-by: Shawn Rutledge --- tests/manual/qtabletevent/regular_widgets/main.cpp | 24 ++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) (limited to 'tests/manual') diff --git a/tests/manual/qtabletevent/regular_widgets/main.cpp b/tests/manual/qtabletevent/regular_widgets/main.cpp index a43ea22b0f..339d1d3633 100644 --- a/tests/manual/qtabletevent/regular_widgets/main.cpp +++ b/tests/manual/qtabletevent/regular_widgets/main.cpp @@ -59,6 +59,25 @@ struct TabletPoint qreal angle; }; +class ProximityEventFilter : public QObject +{ +public: + explicit ProximityEventFilter(QObject *parent) : QObject(parent) { } + + bool eventFilter(QObject *, QEvent *event) override + { + switch (event->type()) { + case QEvent::TabletEnterProximity: + case QEvent::TabletLeaveProximity: + qDebug() << event; + break; + default: + break; + } + return false; + } +}; + class EventReportWidget : public QWidget { Q_OBJECT @@ -149,10 +168,6 @@ void EventReportWidget::tabletEvent(QTabletEvent *event) QWidget::tabletEvent(event); bool isMove = false; switch (event->type()) { - case QEvent::TabletEnterProximity: - case QEvent::TabletLeaveProximity: - qDebug() << "proximity" << event; - break; case QEvent::TabletMove: m_points.push_back(TabletPoint(event->pos(), TabletMove, m_lastButton, event->pointerType(), event->pressure(), event->rotation())); update(); @@ -203,6 +218,7 @@ void EventReportWidget::timerEvent(QTimerEvent *) int main(int argc, char *argv[]) { QApplication app(argc, argv); + app.installEventFilter(new ProximityEventFilter(&app)); QMainWindow mainWindow; mainWindow.setWindowTitle(QString::fromLatin1("Tablet Test %1").arg(QT_VERSION_STR)); EventReportWidget *widget = new EventReportWidget; -- cgit v1.2.3 From 3fe74b76fd0eaf39d4c6681e2edca5adbf107883 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Mon, 7 Aug 2017 20:52:11 -0700 Subject: QHostInfo: Make getaddrinfo() mandatory All systems must implement it by now. If there's any system still without it, that means it has no IPv6 support, so they can disable QtNetwork entirely. [ChangeLog][Deprecation Notice] Starting with Qt 5.10, IPv6 support is mandatory for all platforms. Systems without proper IPv6 support, such as the getaddrinfo() function or the proper socket address structures, will not be able to build QtNetwork anymore. Change-Id: I3868166e5efc45538544fffd14d8c28046f9191b Reviewed-by: Edward Welbourne --- .../manual/network_remote_stresstest/tst_network_remote_stresstest.cpp | 2 +- tests/manual/network_stresstest/tst_network_stresstest.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'tests/manual') diff --git a/tests/manual/network_remote_stresstest/tst_network_remote_stresstest.cpp b/tests/manual/network_remote_stresstest/tst_network_remote_stresstest.cpp index 99e3d148df..f5c3bfde34 100644 --- a/tests/manual/network_remote_stresstest/tst_network_remote_stresstest.cpp +++ b/tests/manual/network_remote_stresstest/tst_network_remote_stresstest.cpp @@ -156,7 +156,7 @@ void tst_NetworkRemoteStressTest::clearManager() bool nativeLookup(const char *hostname, int port, QByteArray &buf) { -#if !defined(QT_NO_GETADDRINFO) && 0 +#if 0 addrinfo *res = 0; struct addrinfo hints; memset(&hints, 0, sizeof(hints)); diff --git a/tests/manual/network_stresstest/tst_network_stresstest.cpp b/tests/manual/network_stresstest/tst_network_stresstest.cpp index d46703c671..03df1633d5 100644 --- a/tests/manual/network_stresstest/tst_network_stresstest.cpp +++ b/tests/manual/network_stresstest/tst_network_stresstest.cpp @@ -147,7 +147,7 @@ void tst_NetworkStressTest::clearManager() bool nativeLookup(const char *hostname, int port, QByteArray &buf) { -#if !defined(QT_NO_GETADDRINFO) && 0 +#if 0 addrinfo *res = 0; struct addrinfo hints; memset(&hints, 0, sizeof(hints)); -- cgit v1.2.3 From a1c985c10bf2212e911777568c6e344456293a65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thorbj=C3=B8rn=20Lund=20Martsum?= Date: Thu, 12 Oct 2017 10:58:06 +0200 Subject: QAbstractItemView: Make it easier to drop above and below items Before this patch a very accurate drop position below or above an index was needed. Therefore it was not that easy to do. This patch increases the above/below area to be about 18% of the item (still leaving the most space for the item). An average user will likely be 2-3x faster with dropping below or above (while not losing much when dropping on items). [ChangeLog][QtWidgets][ItemViews] Made it easier to drop above and below items. Change-Id: I47f0f80c76878c17ebf3f93d0a0cc82755971c2a Reviewed-by: Andy Shaw Reviewed-by: Richard Moe Gustavsen --- tests/manual/widgets/itemviews/qtreewidget/main.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'tests/manual') diff --git a/tests/manual/widgets/itemviews/qtreewidget/main.cpp b/tests/manual/widgets/itemviews/qtreewidget/main.cpp index 5d129101fd..fb72c404a5 100644 --- a/tests/manual/widgets/itemviews/qtreewidget/main.cpp +++ b/tests/manual/widgets/itemviews/qtreewidget/main.cpp @@ -95,6 +95,18 @@ public: item5sl.append("Approver"); /* QTreeWidgetItem *item4 =*/ new QTreeWidgetItem(item4, item5sl); + treeWidget->setDragEnabled(true); + treeWidget->viewport()->setAcceptDrops(true); + treeWidget->setDragDropMode(QAbstractItemView::InternalMove); + + for (int u = 0; u < 12; ++u) { + const QString username = QString("Anonymous User %1").arg(u + 1); + QStringList info; + info << username << username << QString::number(u + 1) << QStringLiteral("Test user"); + new QTreeWidgetItem(item4, info); + } + + treeWidget->expandAll(); treeWidget->setColumnCount(item2sl.size()); QStringList itemInfo("First Name"); itemInfo.append("Last Name"); @@ -133,6 +145,7 @@ int main(int argc, char *argv[]) { QApplication app(argc, argv); ExampleDlg d; + d.resize(d.sizeHint() * 3); d.show(); app.exec(); } -- cgit v1.2.3