Exemplo n.º 1
0
    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()
Exemplo n.º 2
0
    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