def __init__(self, parent=None): super().__init__(parent) # Get system clipboard self.clipboard = QtWidgets.qApp.clipboard() # TODO: check self.clipboard is not None if self.clipboard: self.clipboard.dataChanged.connect(self.onClipboardDataChanged) else: print('[clipboard] warning:', self.clipboard, 'is None') server_log.warn('[clipboard] failed to init clipboard')
def __init__(self, parent=None): super().__init__(parent) # Get system clipboard self.clipboard = QtWidgets.qApp.clipboard() # TODO: check self.clipboard is not None if self.clipboard: self.clipboard.dataChanged.connect(self.onClipboardDataChanged) else: print('[clipboard] warning:', self.clipboard, 'is None') server_log.warn('[clipboard] failed to init clipboard')
def handle(msg): '''Emulate a KeyboardEvent. msg contains keycode, character and press''' try: event = json.loads(msg) except ValueError as e: server_log.warn('[keyboard] malformed keyboard event: %s' % msg) return if event['press']: press_key(event['code']) else: release_key(event['code'])
def handle(msg): '''Handle clipboard data messages''' try: msg = json.loads(msg) except ValueError as e: server_log.warn('[clipboard] Warning: handle this error: %s' % e) return print('[clipboard] msg:', msg) if msg['type'] == constants.CLIPBOARD_TEXT: clipboard_daemon.set_text(msg['payload']) elif msg['type'] == constants.CLIPBOARD_PIXMAP: clipboard_daemon.set_pixmap(msg['payload']) else: server_log.warn('[clipboard] unsupported clipboard data %s.' % msg)
def main(): if is_server_dbus_running(): server_log.warn('[server] server side is running') return # if is_client_dbus_running(): # server_log.warn('[server] client side is running') # return app = QtWidgets.QApplication(sys.argv) app.setApplicationName(_(APP_NAME)) server_dbus = ServerDBus() # FIXME: log service failed to dump log server_log.debug('Init server dbus: %s' % server_dbus) app.exec()
def handle(msg): '''Handle clipboard data messages''' try: msg = json.loads(msg) except ValueError as e: server_log.warn('[clipboard] Warning: handle this error: %s' % e) return print('[clipboard] msg:', msg) if msg['type'] == constants.CLIPBOARD_TEXT: clipboard_daemon.set_text(msg['payload']) elif msg['type'] == constants.CLIPBOARD_PIXMAP: clipboard_daemon.set_pixmap(msg['payload']) else: server_log.warn('[clipboard] unsupported clipboard data %s.' % msg)
def start_server(self): for port in range(PORT_MIN, PORT_MAX): try: self.application.listen(port) break # That port is unavailable except OSError: pass else: server_log.warn("[wssd] failed to start websocket server") # TODO: raise exception return self.port = port self.loop = tornado.ioloop.IOLoop.instance() self.loop.start()
def handle(msg): '''Handle mouse event''' try: event = json.loads(msg) except ValueError as e: server_log.warn('[mouse] failed to parse mouse event: %s' % msg) return # event filter event = filter_event_to_local(event) try: handler = handlers[event['type']] handler(event) except (KeyError, ValueError) as e: server_log.warn('[mouse] unknown mouse event: %s' % event)
def main(): if is_server_dbus_running(): server_log.warn('[server] server side is running') return # if is_client_dbus_running(): # server_log.warn('[server] client side is running') # return app = QtWidgets.QApplication(sys.argv) app.setApplicationName(_(APP_NAME)) server_dbus = ServerDBus() # FIXME: log service failed to dump log server_log.debug('Init server dbus: %s' % server_dbus) app.exec()
def Start(self): '''Start server side''' if self.server: server_log.warn('[dbus] server is already running, ignore...') return server_log.debug('[dbus] start server') self.server = server.Server(self) self.server.start() self.StatusChanged(constants.SERVER_STATUS_STARTED) # Init connection-timed-out timer QtCore.QTimer.singleShot(constants.WEBSERVER_CONNECTION_TIMEOUT, self.on_connection_timeout) screensaver_iface = ScreenSaver() if screensaver_iface.check(): self.screensaver_iface = screensaver_iface self.screensaver_iface.inhibit()
def Start(self): '''Start server side''' if self.server: server_log.warn('[dbus] server is already running, ignore...') return server_log.debug('[dbus] start server') self.server = server.Server(self) self.server.start() self.StatusChanged(constants.SERVER_STATUS_STARTED) # Init connection-timed-out timer QtCore.QTimer.singleShot(constants.WEBSERVER_CONNECTION_TIMEOUT, self.on_connection_timeout) screensaver_iface = ScreenSaver() if screensaver_iface.check(): self.screensaver_iface = screensaver_iface self.screensaver_iface.inhibit()
def handle(msg): '''Handle command message sent from browser side. Some of these messages will be converted to Qt mssage''' server_log.debug('[cmd] handle: %s' % msg) if not server_dbus: server_log.warn('[cmd] server_dubs not inited yet') print('[cmd] server dubs not inited yet:', server_dbus) return try: msg = json.loads(msg) except ValueError as e: server_log.warn('[cmd] failed to parse msg') return if msg['Type'] == constants.SERVER_MSG_ECHO: server_dbus.peer_id_changed(msg['Payload']) elif msg['Type'] == constants.SERVER_MSG_SHARING: server_dbus.StatusChanged(constants.SERVER_STATUS_SHARING) elif msg['Type'] == constants.SERVER_MSG_DISCONNECT: server_dbus.StatusChanged(constants.SERVER_STATUS_DISCONNECTED) elif msg['Type'] == constants.SERVER_MSG_WEBRTC_FAILED: # TODO: add SERVER_STATUS_WEBRTC_FAILED status server_dbus.StatusChanged(constants.SERVER_STATUS_DISCONNECTED) else: server_log.warn('handleBrowserCmd msg invalid: %s' % msg)
def onClipboardDataChanged(self): # If connection not initialized, ignore current clipboard content print('[clipboard] on data changed') if not connection: return text = self.clipboard.text(QtGui.QClipboard.Clipboard) pixmap = self.clipboard.pixmap(QtGui.QClipboard.Clipboard) # Check text first if text: msg = { 'type': constants.CLIPBOARD_TEXT, 'payload': text, } send_message(json.dumps(msg)) elif pixmap: msg = { 'type': constants.CLIPBOARD_PIXMAP, 'payload': pixmap, } print('TODO: [clipboard] serialize pixmap:', pixmap) else: server_log.warn('[clipboard] unknown clipboard data')
def onClipboardDataChanged(self): # If connection not initialized, ignore current clipboard content print('[clipboard] on data changed') if not connection: return text = self.clipboard.text(QtGui.QClipboard.Clipboard) pixmap = self.clipboard.pixmap(QtGui.QClipboard.Clipboard) # Check text first if text: msg = { 'type': constants.CLIPBOARD_TEXT, 'payload': text, } send_message(json.dumps(msg)) elif pixmap: msg = { 'type': constants.CLIPBOARD_PIXMAP, 'payload': pixmap, } print('TODO: [clipboard] serialize pixmap:', pixmap) else: server_log.warn('[clipboard] unknown clipboard data')