Exemplo n.º 1
0
class ClipboardMsgHandler(UiMsgHandlerBase):
    def __init__(self, gui_factory):
        super(ClipboardMsgHandler, self).__init__()
        self.receivers = []
        self.gui_factory = gui_factory
        self.is_listening = False
        self.msg_service = MsgServiceFactory().get_msg_service()

    def is_listening_clipboard_event(self):
        return self.is_listening

    def handle(self, msg):
        if self.is_command(msg, "register_to_clipboard"):
            self.receivers.append(msg["target"])
            if not self.is_listening_clipboard_event():
                print "registering to system clipboard service from iconizer framework"
                self.gui_factory.register_to_clipboard_event(
                    self.on_clipboard_event)
                self.is_listening = True

    def on_clipboard_event(self):
        for receiver in self.receivers:
            try:
                print "sending clipboard msg from iconizer:", receiver
                data = self.gui_factory.get_clipboard_data()
                self.msg_service.send_to(receiver, {
                    "msg_type": "clipboard",
                    "data": {
                        "text": data
                    }
                })
            except:
                import traceback
                traceback.print_exc()
Exemplo n.º 2
0
class ClipboardMsgHandler(UiMsgHandlerBase):
    def __init__(self, gui_factory):
        super(ClipboardMsgHandler, self).__init__()
        self.receivers = []
        self.gui_factory = gui_factory
        self.is_listening = False
        self.msg_service = MsgServiceFactory().get_msg_service()

    def is_listening_clipboard_event(self):
        return self.is_listening

    def handle(self, msg):
        if self.is_command(msg, "register_to_clipboard"):
            self.receivers.append(msg["target"])
            if not self.is_listening_clipboard_event():
                print "registering to system clipboard service from iconizer framework"
                self.gui_factory.register_to_clipboard_event(self.on_clipboard_event)
                self.is_listening = True

    def on_clipboard_event(self):
        for receiver in self.receivers:
            try:
                print "sending clipboard msg from iconizer:", receiver
                data = self.gui_factory.get_clipboard_data()
                self.msg_service.send_to(receiver, {"msg_type": "clipboard", "data": {"text": data}})
            except:
                import traceback
                traceback.print_exc()
Exemplo n.º 3
0
 def run(self):
     sleep(10)
     s = MsgServiceFactory().get_msg_service()
     receiving_ch = "receiver_channel"
     c = s.create_channel(receiving_ch)
     s.send_to(ICONIZER_SERVICE_NAME,  {"command": "register_to_clipboard",
                                        "target": c.get_channel_full_name()})
     while True:
         m = c.get_msg()
         # print m
         self.on_clip(m)
Exemplo n.º 4
0
class DropWndHandlerV2(DropWndHandler):
    def __init__(self, gui_factory):
        super(DropWndHandlerV2, self).__init__(gui_factory)
        self.msg_service = MsgServiceFactory().get_msg_service()
        self.wnd2target = {}
        self.target2wnd = {}

    def handle(self, msg):
        msg_target = msg["target"]
        if msg["command"] == "DropWndV2":
            target = msg_target
            tip = msg.get("tip", None)
            drop_wnd = self.gui_factory.create_drop_target(self.drop_callback)
            if not (tip is None):
                drop_wnd.label.setText(tip)
            self.wnd2target[drop_wnd] = target
            self.target2wnd[target] = drop_wnd
        elif msg["command"] == "DestroyDropWndV2":

            self._rm_msg_target(msg_target)

    def _rm_msg_target(self, msg_target, wnd):
        wnd = self.target2wnd[msg_target]
        del self.target2wnd[msg_target]
        del self.wnd2target[wnd]
        # del self.target2wnd[msg]
        wnd.deleteLater()

    def drop_callback(self, drop_wnd, urls):
        # print "dropped: ", urls
        # print drop_wnd, self.wnd2target
        target = self.wnd2target[drop_wnd]
        # msg_service = AutoRouteMsgService()
        # msg_service.send_to(target, {"command": "dropped", "urls": urls})

        drop_msg = DropEventMsg()
        drop_msg.set_file_url_list(urls)
        try:
            self.msg_service.send_to(target, drop_msg.data)
        except:
            self._rm_msg_target(target, drop_wnd)