From f96482ffef29103312fa563dcdd72468bc007a35 Mon Sep 17 00:00:00 2001 From: Ximi1970 Date: Mon, 24 Feb 2020 22:02:57 +0100 Subject: [PATCH] New shutdown detect --- app/SysTray-X/SysTray-X.pro | 4 ---- app/SysTray-X/systrayxlink.cpp | 31 +++++++++++++++++++++++++++++++ app/SysTray-X/systrayxlink.h | 10 ++++++++++ 3 files changed, 41 insertions(+), 4 deletions(-) diff --git a/app/SysTray-X/SysTray-X.pro b/app/SysTray-X/SysTray-X.pro index b84bfc4..49b2bef 100644 --- a/app/SysTray-X/SysTray-X.pro +++ b/app/SysTray-X/SysTray-X.pro @@ -6,10 +6,6 @@ QT += core gui -unix: { - QT += x11extras -} - greaterThan(QT_MAJOR_VERSION, 4): QT += widgets TARGET = SysTray-X diff --git a/app/SysTray-X/systrayxlink.cpp b/app/SysTray-X/systrayxlink.cpp index cd0450c..326b7ab 100644 --- a/app/SysTray-X/systrayxlink.cpp +++ b/app/SysTray-X/systrayxlink.cpp @@ -104,6 +104,8 @@ void SysTrayXLinkReader::stopThread() */ void SysTrayXLinkReader::slotWorker() { + int error_count = 0; + while( m_doWork ) { qint32 data_len; @@ -122,6 +124,25 @@ void SysTrayXLinkReader::slotWorker() * Send the data to my parent */ emit signalReceivedMessage( data ); + + /* + * Send the data to my parent + */ + if( data.at( 0 ) == '{' ) + { + emit signalReceivedMessage( data ); + + error_count = 0; + } + else + { + error_count++; + + if( error_count > 20 ) + { + emit signalShutdown(); + } + } } } @@ -165,6 +186,7 @@ SysTrayXLink::SysTrayXLink( Preferences* pref ) connect( m_reader_thread, &QThread::finished, reader, &QObject::deleteLater ); connect( reader, &SysTrayXLinkReader::signalReceivedMessage, this, &SysTrayXLink::slotLinkRead ); + connect( reader, &SysTrayXLinkReader::signalShutdown, this, &SysTrayXLink::slotShutdown ); connect( reader, &SysTrayXLinkReader::signalDebugMessage, this, &SysTrayXLink::slotDebugMessage ); @@ -440,6 +462,15 @@ void SysTrayXLink::slotReceivedData( QByteArray data ) } +/* + * Relay shutdown signal + */ +void SysTrayXLink::slotShutdown() +{ + emit signalShutdown(); +} + + /* * Read the input */ diff --git a/app/SysTray-X/systrayxlink.h b/app/SysTray-X/systrayxlink.h index a16d490..64a4b8d 100644 --- a/app/SysTray-X/systrayxlink.h +++ b/app/SysTray-X/systrayxlink.h @@ -85,6 +85,11 @@ class SysTrayXLinkReader : public QObject */ void signalReceivedMessage( QByteArray message ); + /** + * @brief signalShutdown. Signal to shutdown the app. + */ + void signalShutdown(); + private: /** @@ -277,6 +282,11 @@ class SysTrayXLink : public QObject */ void slotLinkRead( QByteArray message ); + /** + * @brief slotShutdown. Handle sahutdown signal from reader thread. + */ + void slotShutdown(); + private: /**