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()
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()
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)
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)