def drag_data_received(self, widget, context, x, y, data, info, time): if data.format != 8: return files = data.data.rstrip().split('\r\n') oks, errors = [], [] for f in files: ext = os.path.splitext(f)[1][1:4].lower().strip() fname = urllib.unquote(f[7:]) try: ipmsg.verify_files(fname) except ipmsg.AttachmentError as e: errors.append((fname, str(e))) except Exception as e: errors.append((fname, str(e))) else: oks.append(fname) finally: context.finish(True, False, time) if errors: dlg = AttachmentsErrorDialog(self.dlg, errors) def on_error_rsps(w, id, *args): if id == gtk.RESPONSE_YES: for fname in oks: self.share_files.add(fname) self.att_list.append_file(fname) dlg.destroy() dlg.connect('response', on_error_rsps) dlg.show() else: for fname in oks: self.share_files.add(fname) self.att_list.append_file(fname) self.parent.update_file_summary()
def filter_valid_files(self, files): oks, errors = [], [] for fname in files: try: ipmsg.verify_files(fname) except ipmsg.AttachmentError as e: errors.append((fname, str(e))) except Exception as e: errors.append((fname, str(e))) else: oks.append(fname) if errors: dlg = AttachmentsErrorDialog(self.dlg, errors) def on_error_rsps(w, id, *args): if id != gtk.RESPONSE_YES: oks = [] dlg.destroy() dlg.connect('response', on_error_rsps) dlg.run() return oks