def __init__(self, org_msg=None, text='', recv_win=None): title = 'Send' if org_msg: packet, contact = org_msg title = 'Reply to ' + contact.get_desc() self.dlg = SendDlg(title) self.attachments = Attachments(self) self.recv_win = recv_win if org_msg: self.dlg.cl.select_contacts(contact.addr) self.dlg.txt_send.set_text(text) self.dlg.txt_send.invoke('drag_dest_unset') self.dlg.lbl_cnt.set_label('Contacts: %s' % len(ipmsg.get_contacts())) def on_refresh(w, e): self.get_model().clear() self.piters = {} ipmsg.refresh() self.refresh_sid = self.dlg.btn_refresh.connect("button_press_event", on_refresh) self.dlg.btn_share.connect('button_press_event', self.show_shares) self.dlg.btn_send.connect("pressed", lambda w, *args: self.do_send()) self.dlg.drag_dest_set(gtk.DEST_DEFAULT_DROP, [('text/plain', 0, 82), ('image/*', 0, 83)], gtk.gdk.ACTION_COPY) self.dlg.connect('drag_motion', self.attachments.file_motion_cb) self.dlg.connect('drag_drop', self.attachments.file_drop_cb) self.dlg.connect('drag_data_received', self.attachments.drag_data_received) if not org_msg: self.reload_contacts_sid = gobject.timeout_add(1000, self.do_get_contacts) self.dlg.connect('destroy', lambda w : gobject.source_remove(self.reload_contacts_sid)) hotkey_send = util.get_keyvals(settings['hotkey_send']) if hotkey_send: masks, keyval = hotkey_send def key_press_cb(w, e, *args): if e.type != gtk.gdk.KEY_PRESS: return if e.keyval == keyval and len(masks) == len([x for x in masks if e.state & x]): self.do_send() w.emit_stop_by_name('key_press_event') self.dlg.connect('key_press_event', key_press_cb)
def show(self): title = 'Received Message' dlg = RecvDlg(title=title) dlg.set_size_request(600, 400) dlg.lbl_header.set_text(self.contact.get_desc() + ' @ ' + time.ctime(self.msg.packet.timestamp)) if self.msg.options['autoret']: msg_icon_name = 'msg-autoreply' dlg.img_status.set_from_file(icons.Window.get_path(msg_icon_name)) dlg.img_status.set_tooltip_markup('Auto-reply') elif self.msg.options['multicast']: msg_icon_name = 'msg-multicast' dlg.img_status.set_from_file(icons.Window.get_path(msg_icon_name)) dlg.img_status.set_tooltip_markup('Multi-cast') else: pass if self.msg.atts: filelist = ' '.join([f.name for f in self.msg.atts]) dlg.btn_att.set_label(filelist) dlg.btn_att.set_tooltip_markup('\n'.join([f.name for f in self.msg.atts])) self.download_sid = dlg.btn_att.connect("button_press_event", self.do_download) dlg.hbox_att.show() dlg.txt_recv.set_text(self.msg.msg) def url_clicked_cb(widget, type, url, btn): if btn == 1: util.launch_file(url) dlg.txt_recv.connect('anchor-clicked', url_clicked_cb) if self.msg.options['seal']: def on_click_open(w, e): dlg.msg_area.set_visible(True) dlg.txt_recv.grab_focus() w.set_visible(False) ipmsg.open_notice(self.msg) dlg.btn_open.connect("button_press_event", on_click_open) dlg.btn_open.show() dlg.msg_area.set_visible(False) dlg.btn_copy.connect("button_press_event", lambda w, e : gtk.clipboard_get().set_text(self.msg.msg)) press_id = dlg.btn_reply.connect("pressed", lambda w, *args: self.do_reply()) self.dlg = dlg self.dlg.connect('destroy', self.on_destroy) hotkey_reply = util.get_keyvals(settings['hotkey_reply']) if hotkey_reply: masks, keyval = hotkey_reply def key_press_cb(w, e, *args): if e.type != gtk.gdk.KEY_PRESS: return if e.keyval == keyval and len(masks) == len([x for x in masks if e.state & x]): self.do_reply() w.emit_stop_by_name('key_press_event') self.dlg.connect('key_press_event', key_press_cb) dlg.show()