# HG changeset patch # User Neil Muller # Date 1344244647 -7200 # Node ID ab489f7e87f81463d48126f36e2a86334c293111 # Parent 3b2d1adca59c314157dc32dbb28818fc7a7509c4 Make filechooser widget presistent, to avoid constantly descending directory trees diff -r 3b2d1adca59c -r ab489f7e87f8 pyntnclick/tools/rect_drawer.py --- a/pyntnclick/tools/rect_drawer.py Sun Aug 05 21:50:34 2012 +0200 +++ b/pyntnclick/tools/rect_drawer.py Mon Aug 06 11:17:27 2012 +0200 @@ -136,6 +136,7 @@ self.draw_anim = False self.zoom_offset = (600, 600) self.clear_display = False + self.filechooser = None if self._detail: w, h = self._scene.get_detail_size() rect = pygame.rect.Rect(0, 0, w, h) @@ -347,9 +348,13 @@ print def image_load(self, ev, widget): - filechooser = FileChooser((0, 0), self.gd, os.curdir, - self.do_load_image) - self._parent.add(filechooser) + if self.filechooser is None: + self.filechooser = FileChooser((0, 0), self.gd, os.curdir, + self.do_load_image) + else: + self.filechooser.refresh() + self.invalidate() + self._parent.add(self.filechooser) def do_load_image(self, filename): try: diff -r 3b2d1adca59c -r ab489f7e87f8 pyntnclick/widgets/filechooser.py --- a/pyntnclick/widgets/filechooser.py Sun Aug 05 21:50:34 2012 +0200 +++ b/pyntnclick/widgets/filechooser.py Mon Aug 06 11:17:27 2012 +0200 @@ -36,6 +36,12 @@ else: self.files.append(entry) + def refresh(self): + self.page = 0 + self.selected = None + self.get_lists() + self.fill_page() + def _dir_button(self, entry): widget = TextButton((0, 0), self.gd, entry + '/', fontname=self.gd.constants.bold_font,