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')
Ejemplo n.º 2
0
    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')
Ejemplo n.º 3
0
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)
Ejemplo n.º 5
0
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()
Ejemplo n.º 6
0
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)
Ejemplo n.º 7
0
    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()
Ejemplo n.º 8
0
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)
Ejemplo n.º 9
0
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()
Ejemplo n.º 11
0
    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()
Ejemplo n.º 12
0
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')
Ejemplo n.º 14
0
 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')