From 633671d12c0a49072e3a86ba5931f9cd2820141a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adolfo=20G=C3=B3mez=20Garc=C3=ADa?= Date: Thu, 12 Dec 2019 10:01:35 +0100 Subject: [PATCH] fixing message --- actor/src/actor_client.py | 31 +------------- actor/src/udsactor/client.py | 43 ++++++++++++++++++-- server/src/uds/core/managers/user_service.py | 3 ++ 3 files changed, 44 insertions(+), 33 deletions(-) diff --git a/actor/src/actor_client.py b/actor/src/actor_client.py index 7d25aa21..0681ae2e 100644 --- a/actor/src/actor_client.py +++ b/actor/src/actor_client.py @@ -38,37 +38,8 @@ from PyQt5.QtWidgets import QApplication from PyQt5.QtCore import QTimer from udsactor.log import logger, DEBUG -from udsactor.client import UDSActorClient +from udsactor.client import UDSClientQApp -class UDSClientQApp(QApplication): - _app: UDSActorClient - _initialized: bool - - def __init__(self, args) -> None: - super().__init__(args) - - # This will be invoked on session close - self.commitDataRequest.connect(self.end) # Will be invoked on session close, to gracely close app - - # Execute backgroup thread for actions - self._app = UDSActorClient(self) - - def init(self) -> None: - # Notify loging and mark it - logger.debug('Starting APP') - self._app.start() - self._initialized = True - - def end(self, sessionManager=None) -> None: - if not self._initialized: - return - - self._initialized = False - - logger.debug('Stopping app thread') - self._app.stop() - - self._app.join() if __name__ == "__main__": logger.setLevel(DEBUG) diff --git a/actor/src/udsactor/client.py b/actor/src/udsactor/client.py index 78606f99..f8be1b92 100644 --- a/actor/src/udsactor/client.py +++ b/actor/src/udsactor/client.py @@ -34,7 +34,7 @@ import typing import signal from PyQt5.QtWidgets import QApplication, QMessageBox -from PyQt5.QtCore import QByteArray, QBuffer, QIODevice +from PyQt5.QtCore import QByteArray, QBuffer, QIODevice, pyqtSignal from . import rest from . import tools @@ -49,10 +49,47 @@ if typing.TYPE_CHECKING: from . import types from PyQt5.QtGui import QPixmap +class UDSClientQApp(QApplication): + _app: 'UDSActorClient' + _initialized: bool + + message = pyqtSignal(str, name='message') + + def __init__(self, args) -> None: + super().__init__(args) + + # This will be invoked on session close + self.commitDataRequest.connect(self.end) # Will be invoked on session close, to gracely close app + self.message.connect(self.showMessage) + + # Execute backgroup thread for actions + self._app = UDSActorClient(self) + + def init(self) -> None: + # Notify loging and mark it + logger.debug('Starting APP') + self._app.start() + self._initialized = True + + def end(self, sessionManager=None) -> None: + if not self._initialized: + return + + self._initialized = False + + logger.debug('Stopping app thread') + self._app.stop() + + self._app.join() + + def showMessage(self, message: str) -> None: + QMessageBox.information(None, 'Message', message) + + class UDSActorClient(threading.Thread): _running: bool _forceLogoff: bool - _qApp: QApplication + _qApp: UDSClientQApp api: rest.UDSClientApi _listener: client.HTTPServerThread @@ -101,7 +138,7 @@ class UDSActorClient(threading.Thread): platform.operations.loggoff() def _showMessage(self, message: str) -> None: - QMessageBox.information(None, 'Message', message) + self._qApp.message.emit(message) def stop(self) -> None: logger.debug('Stopping client Service') diff --git a/server/src/uds/core/managers/user_service.py b/server/src/uds/core/managers/user_service.py index 07217930..7018b7a1 100644 --- a/server/src/uds/core/managers/user_service.py +++ b/server/src/uds/core/managers/user_service.py @@ -461,6 +461,9 @@ class UserServiceManager: def requestLogoff(self, userService: UserService) -> None: comms.requestLogoff(userService) + def sendMessage(self, userService: UserService, message: str) -> None: + comms.sendMessage(userService, message) + def checkForRemoval(self, userService: UserService) -> None: """ This method is used by UserService when a request for setInUse(False) is made