diff options
Diffstat (limited to 'src/serialport/qserialport_unix.cpp')
-rw-r--r-- | src/serialport/qserialport_unix.cpp | 57 |
1 files changed, 2 insertions, 55 deletions
diff --git a/src/serialport/qserialport_unix.cpp b/src/serialport/qserialport_unix.cpp index aa0d457..70c160b 100644 --- a/src/serialport/qserialport_unix.cpp +++ b/src/serialport/qserialport_unix.cpp @@ -147,27 +147,6 @@ private: QSerialPortPrivate *dptr; }; -class ExceptionNotifier : public QSocketNotifier -{ - Q_OBJECT -public: - ExceptionNotifier(QSerialPortPrivate *d, QObject *parent) - : QSocketNotifier(d->descriptor, QSocketNotifier::Exception, parent) - , dptr(d) - {} - -protected: - bool event(QEvent *e) Q_DECL_OVERRIDE { - bool ret = QSocketNotifier::event(e); - if (ret) - dptr->exceptionNotification(); - return ret; - } - -private: - QSerialPortPrivate *dptr; -}; - #include "qserialport_unix.moc" QSerialPortPrivate::QSerialPortPrivate(QSerialPort *q) @@ -175,7 +154,6 @@ QSerialPortPrivate::QSerialPortPrivate(QSerialPort *q) , descriptor(-1) , readNotifier(0) , writeNotifier(0) - , exceptionNotifier(0) , readPortNotifierCalled(false) , readPortNotifierState(false) , readPortNotifierStateSet(false) @@ -256,8 +234,6 @@ bool QSerialPortPrivate::open(QIODevice::OpenMode mode) if (!updateTermios()) return false; - setExceptionNotificationEnabled(true); - if ((flags & O_WRONLY) == 0) setReadNotificationEnabled(true); @@ -292,12 +268,6 @@ void QSerialPortPrivate::close() writeNotifier = 0; } - if (exceptionNotifier) { - exceptionNotifier->setEnabled(false); - exceptionNotifier->deleteLater(); - exceptionNotifier = 0; - } - if (qt_safe_close(descriptor) == -1) q->setError(decodeSystemError()); @@ -816,6 +786,8 @@ bool QSerialPortPrivate::readNotification() QSerialPort::SerialPortError error = decodeSystemError(); if (error != QSerialPort::ResourceError) error = QSerialPort::ReadError; + else + setReadNotificationEnabled(false); q->setError(error); readBuffer.chop(bytesToRead); return false; @@ -900,14 +872,6 @@ bool QSerialPortPrivate::completeAsyncWrite() return startAsyncWrite(); } -void QSerialPortPrivate::exceptionNotification() -{ - Q_Q(QSerialPort); - - QSerialPort::SerialPortError error = decodeSystemError(); - q->setError(error); -} - bool QSerialPortPrivate::updateTermios() { Q_Q(QSerialPort); @@ -992,23 +956,6 @@ void QSerialPortPrivate::setWriteNotificationEnabled(bool enable) } } -bool QSerialPortPrivate::isExceptionNotificationEnabled() const -{ - return exceptionNotifier && exceptionNotifier->isEnabled(); -} - -void QSerialPortPrivate::setExceptionNotificationEnabled(bool enable) -{ - Q_Q(QSerialPort); - - if (exceptionNotifier) { - exceptionNotifier->setEnabled(enable); - } else if (enable) { - exceptionNotifier = new ExceptionNotifier(this, q); - exceptionNotifier->setEnabled(true); - } -} - bool QSerialPortPrivate::waitForReadOrWrite(bool *selectForRead, bool *selectForWrite, bool checkRead, bool checkWrite, int msecs, bool *timedOut) |