def edit(self, path): self.find('dialog').visible = True self.item = Item(path) self.item.read() self.binder_d = Binder(self.item, self.find('dialog')).populate() # Unpack u = Unpacker.find(self.item.fullpath.lower()) unpack_btn = self.find('dialog').find('unpack') unpack_btn.visible = u is not None def cb(): self.context.notify('info', _('Unpacked')) self.refresh() def unpack(): u.unpack(self.item.fullpath, cb=cb) logging.info('[fm] unpacking %s' % self.item.fullpath) unpack_btn.on('click', lambda: unpack()) # Edit edit_btn = self.find('dialog').find('edit') if self.item.size > 1024 * 1024 * 5: edit_btn.visible = False def edit(): self.context.launch('notepad', path=self.item.fullpath) edit_btn.on('click', lambda: edit())
def navigate(self, path): if not os.path.isdir(path): return self.path = path self.shortpath = os.path.split(path)[1] or '/' self.items = [] for item in os.listdir(self.path): self.items.append(Item(os.path.join(self.path, item))) self.items = sorted(self.items, key=lambda x: (not x.isdir, x.name)) self.breadcrumbs = [] p = path while len(p) > 1: p = os.path.split(p)[0] self.breadcrumbs.insert(0, Breadcrumb(p))
def edit(self, path): self.find('dialog').visible = True self.item = Item(path) self.item.read() self.binder_d = Binder(self.item, self.find('dialog')).autodiscover().populate()