forked from shaba/openuds
src/
This commit is contained in:
parent
21143ab7f2
commit
c1d5e4b130
@ -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_()
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user