def closeEvent(self, e): """ @summary: Convert Qt close widget event into close stack event @param e: QCloseEvent """ self._rssRecorder.close() RDPClientQt.closeEvent(self, e)
def onReady(self): """ @summary: Call when stack is ready """ self._rssRecorder.screen(self._screensize[0], self._screensize[1], self._controller.getColorDepth()) RDPClientQt.onReady(self)
def __init__(self, controller, width, height): """ @param controller: {RDPClientController} RDP controller @param width: {int} width of widget @param height: {int} height of widget """ RDPClientQt.__init__(self, controller, width, height) self._screensize = width, height
def __init__(self, controller, width, height, rssRecorder): """ @param controller: {RDPClientController} RDP controller @param width: {int} width of widget @param height: {int} height of widget @param rssRecorder: {rss.FileRecorder} """ RDPClientQt.__init__(self, controller, width, height) self._screensize = width, height self._rssRecorder = rssRecorder
def buildObserver(self, controller, addr): """ @summary: Build RFB observer We use a RDPClientQt as RDP observer @param controller: build factory and needed by observer @param addr: destination address @return: RDPClientQt """ # create client observer if self._recodedPath is None: self._client = RDPClientQt(controller, self._width, self._height) else: self._client = RDPClientQtRecorder( controller, self._width, self._height, rss.createRecorder(self._recodedPath)) # create qt widget self._w = self._client.getWidget() self._w.setWindowTitle('My Rdp Client') if self._fullscreen: self._w.showFullScreen() else: self._w.show() controller.setUsername(self._username) controller.setPassword(self._passwod) controller.setDomain(self._domain) controller.setKeyboardLayout(self._keyboardLayout) controller.setHostname(socket.gethostname()) if self._optimized: controller.setPerformanceSession() controller.setSecurityLevel(self._security) return self._client
def onUpdate(self, destLeft, destTop, destRight, destBottom, width, height, bitsPerPixel, isCompress, data): """ @summary: Notify bitmap update @param destLeft: {int} xmin position @param destTop: {int} ymin position @param destRight: {int} xmax position because RDP can send bitmap with padding @param destBottom: {int} ymax position because RDP can send bitmap with padding @param width: {int} width of bitmap @param height: {int} height of bitmap @param bitsPerPixel: {int} number of bit per pixel @param isCompress: {bool} use RLE compression @param data: {str} bitmap data """ #record update self._rssRecorder.update(destLeft, destTop, destRight, destBottom, width, height, bitsPerPixel, rss.UpdateFormat.BMP if isCompress else rss.UpdateFormat.RAW, data) RDPClientQt.onUpdate(self, destLeft, destTop, destRight, destBottom, width, height, bitsPerPixel, isCompress, data)
def onClose(self): """ @summary: Call when stack is close """ self._rssRecorder.close() RDPClientQt.onClose(self)