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 05:35:20 +0000 |
commit | 506370bfa0fc24a1fa1747fb28507d17b34dfcb4 (patch) | |
tree | b0c2d4dde30b1fe1ee781183da8b0a29404a1719 | |
parent | 4328ab9709561842c680bc8bb7e4f2abc3ea3852 (diff) | |
download | qtserialport-506370bfa0fc24a1fa1747fb28507d17b34dfcb4.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.
Change-Id: Ic9a0e7e5f4957b1c1aa0a4a593ff4621792ba637
Reviewed-by: Sergey Belyashov <Sergey.Belyashov@gmail.com>
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 81886cc..7a42764 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: |