diff options
author | Denis Shienkov <denis.shienkov@gmail.com> | 2015-08-04 23:37:20 +0300 |
---|---|---|
committer | Denis Shienkov <denis.shienkov@gmail.com> | 2015-08-05 07:20:39 +0000 |
commit | 990514e77e91cdf7ce7fb8c02992ad72d77c0c72 (patch) | |
tree | bbe79020471395c082b552ada3719bde211de7a2 | |
parent | 0774b7922800315cadb206dae65d2f713cc2fd93 (diff) | |
download | qtserialport-990514e77e91cdf7ce7fb8c02992ad72d77c0c72.tar.gz |
Fix proper handling of QSocketNotifier::event() method
According to documentation on QObject::event(), we need to return true
in case the event was recognized and processed.
In addition, were made small modifications related to the Qt coding
style.
Tested on Linux with the virtual tty0tty serial ports.
(cherry-picked from 506370bfa0fc24a1fa1747fb28507d17b34dfcb4)
Change-Id: Ic9a0e7e5f4957b1c1aa0a4a593ff4621792ba637
Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
-rw-r--r-- | src/serialport/qserialport_unix.cpp | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/src/serialport/qserialport_unix.cpp b/src/serialport/qserialport_unix.cpp index 37379e9..98d6622 100644 --- a/src/serialport/qserialport_unix.cpp +++ b/src/serialport/qserialport_unix.cpp @@ -118,14 +118,17 @@ public: ReadNotifier(QSerialPortPrivate *d, QObject *parent) : QSocketNotifier(d->descriptor, QSocketNotifier::Read, parent) , dptr(d) - {} + { + } protected: - bool event(QEvent *e) Q_DECL_OVERRIDE { - bool ret = QSocketNotifier::event(e); - if (ret) + bool event(QEvent *e) Q_DECL_OVERRIDE + { + if (e->type() == QEvent::SockAct) { dptr->readNotification(); - return ret; + return true; + } + return QSocketNotifier::event(e); } private: @@ -138,14 +141,17 @@ public: WriteNotifier(QSerialPortPrivate *d, QObject *parent) : QSocketNotifier(d->descriptor, QSocketNotifier::Write, parent) , dptr(d) - {} + { + } protected: - bool event(QEvent *e) Q_DECL_OVERRIDE { - bool ret = QSocketNotifier::event(e); - if (ret) + bool event(QEvent *e) Q_DECL_OVERRIDE + { + if (e->type() == QEvent::SockAct) { dptr->completeAsyncWrite(); - return ret; + return true; + } + return QSocketNotifier::event(e); } private: |