This commit is contained in:
Adolfo Gómez García 2021-06-17 13:19:47 +02:00
parent 21143ab7f2
commit c1d5e4b130
2 changed files with 11 additions and 9 deletions

View File

@ -67,7 +67,7 @@ if __name__ == "__main__":
# Note: Signals are only checked on python code execution, so we create a timer to force call back to python # Note: Signals are only checked on python code execution, so we create a timer to force call back to python
timer = QTimer(qApp) timer = QTimer(qApp)
timer.start(1000) timer.start(1000)
timer.timeout.connect(lambda *a: None) timer.timeout.connect(lambda *a: None) # type: ignore # timeout can be connected to a callable
qApp.exec_() qApp.exec_()

View File

@ -65,9 +65,9 @@ class UDSClientQApp(QApplication):
self._initialized = False self._initialized = False
# This will be invoked on session close # This will be invoked on session close
self.commitDataRequest.connect(self.end) # Will be invoked on session close, to gracely close app self.commitDataRequest.connect(self.end) # type: ignore # Will be invoked on session close, to gracely close app
# self.aboutToQuit.connect(self.end) # self.aboutToQuit.connect(self.end)
self.message.connect(self.showMessage) self.message.connect(self.showMessage) # type: ignore # there are problems with Pylance and connects on PyQt5... :)
# Execute backgroup thread for actions # Execute backgroup thread for actions
self._app = UDSActorClient(self) self._app = UDSActorClient(self)
@ -94,7 +94,7 @@ class UDSClientQApp(QApplication):
self._app.join() self._app.join()
def showMessage(self, message: str) -> None: def showMessage(self, message: str) -> None:
QMessageBox.information(None, 'Message', message) QMessageBox.information(None, 'Message', message) # type: ignore
def setMainWindow(self, mw: 'QMainWindow'): def setMainWindow(self, mw: 'QMainWindow'):
self._mainWindow = mw self._mainWindow = mw
@ -108,6 +108,7 @@ class UDSActorClient(threading.Thread): # pylint: disable=too-many-instance-att
_listener: client.HTTPServerThread _listener: client.HTTPServerThread
_loginInfo: typing.Optional['types.LoginResultInfoType'] _loginInfo: typing.Optional['types.LoginResultInfoType']
_notified: bool _notified: bool
_notifiedDeadline: bool
_sessionStartTime: datetime.datetime _sessionStartTime: datetime.datetime
api: rest.UDSClientApi api: rest.UDSClientApi
@ -115,13 +116,14 @@ class UDSActorClient(threading.Thread): # pylint: disable=too-many-instance-att
super().__init__() super().__init__()
self.api = rest.UDSClientApi() # Self initialized self.api = rest.UDSClientApi() # Self initialized
self._qApp = qApp self._qApp = typing.cast(UDSClientQApp, qApp)
self._running = False self._running = False
self._forceLogoff = False self._forceLogoff = False
self._extraLogoff = '' self._extraLogoff = ''
self._listener = client.HTTPServerThread(self) self._listener = client.HTTPServerThread(self)
self._loginInfo = None self._loginInfo = None
self._notified = False self._notified = False
self._notifiedDeadline = False
# Capture stop signals.. # Capture stop signals..
logger.debug('Setting signals...') logger.debug('Setting signals...')
@ -139,8 +141,8 @@ class UDSActorClient(threading.Thread): # pylint: disable=too-many-instance-att
remainingTime = self._loginInfo.dead_line - (datetime.datetime.now() - self._sessionStartTime).total_seconds() remainingTime = self._loginInfo.dead_line - (datetime.datetime.now() - self._sessionStartTime).total_seconds()
logger.debug('Remaining time: {}'.format(remainingTime)) logger.debug('Remaining time: {}'.format(remainingTime))
if not self._notified and remainingTime < 300: # With five minutes, show a warning message if not self._notifiedDeadline and remainingTime < 300: # With five minutes, show a warning message
self._notified = True self._notifiedDeadline = True
self._showMessage('Your session will expire in less that 5 minutes. Please, save your work and disconnect.') self._showMessage('Your session will expire in less that 5 minutes. Please, save your work and disconnect.')
return return
@ -210,7 +212,7 @@ class UDSActorClient(threading.Thread): # pylint: disable=too-many-instance-att
platform.operations.loggoff() platform.operations.loggoff()
def _showMessage(self, message: str) -> None: def _showMessage(self, message: str) -> None:
self._qApp.message.emit(message) self._qApp.message.emit(message) # type: ignore # there are problems with Pylance and connects on PyQt5... :)
def stop(self) -> None: def stop(self) -> None:
logger.debug('Stopping client Service') logger.debug('Stopping client Service')
@ -236,7 +238,7 @@ class UDSActorClient(threading.Thread): # pylint: disable=too-many-instance-att
buffer.open(QIODevice.WriteOnly) buffer.open(QIODevice.WriteOnly)
pixmap.save(buffer, 'PNG') pixmap.save(buffer, 'PNG')
buffer.close() buffer.close()
scrBase64 = bytes(ba.toBase64()).decode() scrBase64 = bytes(ba.toBase64()).decode() # type: ignore # there are problems with Pylance and connects on PyQt5... :)
logger.debug('Screenshot length: %s', len(scrBase64)) logger.debug('Screenshot length: %s', len(scrBase64))
return scrBase64 # 'result' of JSON will contain base64 of screen return scrBase64 # 'result' of JSON will contain base64 of screen