changeset 27012:4bcd8b9954ed

Avoid QTimer::singleShot compile error with Qt 5.3.2 Construct QTimer object directly, instead of relying on QTimer::singleShot overloads accepting lambdas, which weren't introduced until Qt 5.4. Avoids the following compile error in debian jessie: ``` qt/test/wallettests.cpp: In function ?void {anonymous}::ConfirmSend()?: qt/test/wallettests.cpp:34:6: error: no matching function for call to ?QTimer::singleShot(int, Qt::TimerType, {anonymous}::ConfirmSend()::<lambda()>)? }); ^ qt/test/wallettests.cpp:34:6: note: candidates are: In file included from /usr/include/x86_64-linux-gnu/qt5/QtCore/QTimer:1:0, from ./qt/sendcoinsdialog.h:13, from qt/test/wallettests.cpp:7: /usr/include/x86_64-linux-gnu/qt5/QtCore/qtimer.h:81:17: note: static void QTimer::singleShot(int, const QObject*, const char*) static void singleShot(int msec, const QObject *receiver, const char *member); ^ /usr/include/x86_64-linux-gnu/qt5/QtCore/qtimer.h:81:17: note: no known conversion for argument 2 from ?Qt::TimerType? to ?const QObject*? /usr/include/x86_64-linux-gnu/qt5/QtCore/qtimer.h:82:17: note: static void QTimer::singleShot(int, Qt::TimerType, const QObject*, const char*) static void singleShot(int msec, Qt::TimerType timerType, const QObject *receiver, const char *member); ^ /usr/include/x86_64-linux-gnu/qt5/QtCore/qtimer.h:82:17: note: candidate expects 4 arguments, 3 provided ``` Error reported by Pavel Jan?k <Pavel@Janik.cz> in https://github.com/bitcoin/bitcoin/pull/9974#issuecomment-287574436
author Russell Yanofsky <russ@yanofsky.org>
date Mon, 20 Mar 2017 12:35:37 -0400
parents 4f5e37bc66ea
children 2d66b81371fb
files src/qt/test/wallettests.cpp
diffstat 1 files changed, 4 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/qt/test/wallettests.cpp	Mon Mar 20 12:27:07 2017 -0400
+++ b/src/qt/test/wallettests.cpp	Mon Mar 20 12:35:37 2017 -0400
@@ -22,7 +22,9 @@
 //! Press "Yes" button in modal send confirmation dialog.
 void ConfirmSend()
 {
-    QTimer::singleShot(0, Qt::PreciseTimer, []() {
+    QTimer* timer = new QTimer;
+    timer->setSingleShot(true);
+    QObject::connect(timer, &QTimer::timeout, []() {
         for (QWidget* widget : QApplication::topLevelWidgets()) {
             if (widget->inherits("SendConfirmationDialog")) {
                 SendConfirmationDialog* dialog = qobject_cast<SendConfirmationDialog*>(widget);
@@ -32,6 +34,7 @@
             }
         }
     });
+    timer->start(0);
 }
 
 //! Send coins to address and return txid.