Mercurial > pyntnclick
comparison pyntnclick/widgets/filechooser.py @ 709:d279a7dd166a pyntnclick
Fix paging bug. Better widget spacing
author | Neil Muller <neil@dip.sun.ac.za> |
---|---|
date | Sun, 05 Aug 2012 13:53:21 +0200 |
parents | 6b8fa2248ee1 |
children | d4f97c8e0dbe |
comparison
equal
deleted
inserted
replaced
708:9b6d68ba627e | 709:d279a7dd166a |
---|---|
61 left = self.rect.left + self.padding | 61 left = self.rect.left + self.padding |
62 # Add current directory at the top | 62 # Add current directory at the top |
63 widget = LabelWidget((0, 0), self.gd, self.curdir[-30:], color='black') | 63 widget = LabelWidget((0, 0), self.gd, self.curdir[-30:], color='black') |
64 widget.rect.topleft = (left, top) | 64 widget.rect.topleft = (left, top) |
65 self.add(widget) | 65 self.add(widget) |
66 upbut = TextButton((left + self.padding + widget.rect.width, top), | 66 upbut = TextButton((left + 2 * self.padding + widget.rect.width, top), |
67 self.gd, u'\N{LEFTWARDS ARROW WITH HOOK}Back one level') | 67 self.gd, u'\N{LEFTWARDS ARROW WITH HOOK}Back one level') |
68 upbut.add_callback('clicked', self.change_dir, os.pardir) | 68 upbut.add_callback('clicked', self.change_dir, os.pardir) |
69 self.add(upbut) | 69 self.add(upbut) |
70 top += max(widget.rect.height, upbut.rect.height) + 4 * self.padding | 70 top += max(widget.rect.height, upbut.rect.height) + 4 * self.padding |
71 page_top = top | 71 page_top = top |
72 page_left = left | 72 page_left = left |
73 top += self.padding | |
73 for entry in entries[start_page:end_page]: | 74 for entry in entries[start_page:end_page]: |
74 if entry in self.dirs: | 75 if entry in self.dirs: |
75 widget = self._dir_button(entry) | 76 widget = self._dir_button(entry) |
76 else: | 77 else: |
77 widget = self._file_button(entry) | 78 widget = self._file_button(entry) |
78 widget.rect.topleft = (left, top) | 79 widget.rect.topleft = (left, top) |
79 self.add(widget) | 80 self.add(widget) |
80 top += widget.rect.height + self.padding | 81 top += widget.rect.height + self.padding |
81 page_left = max(page_left, left + widget.rect.width) | 82 page_left = max(page_left, left + widget.rect.width + self.padding) |
82 # Add page list buttons | 83 # Add page list buttons |
83 if not self.prev_but: | 84 if not self.prev_but: |
84 self.prev_but = TextButton((0, 0), self.gd, u'\N{UPWARDS ARROW}') | 85 self.prev_but = TextButton((0, 0), self.gd, u'\N{UPWARDS ARROW}') |
85 self.prev_but.add_callback('clicked', self.change_page, -1) | 86 self.prev_but.add_callback('clicked', self.change_page, -1) |
86 self.prev_but.rect.topleft = (page_left, page_top) | 87 self.prev_but.rect.topleft = (page_left, page_top) |
87 if not self.next_but: | 88 if not self.next_but: |
88 self.next_but = TextButton((0, 0), self.gd, u'\N{DOWNWARDS ARROW}') | 89 self.next_but = TextButton((0, 0), self.gd, u'\N{DOWNWARDS ARROW}') |
89 self.next_but.add_callback('clicked', self.change_page, -1) | 90 self.next_but.add_callback('clicked', self.change_page, +1) |
90 page_top = max(top - self.next_but.rect.height, | 91 page_top = max(top - self.next_but.rect.height, |
91 self.prev_but.rect.bottom + self.padding) | 92 self.prev_but.rect.bottom + self.padding) |
92 self.next_but.rect.topleft = (page_left, page_top) | 93 self.next_but.rect.topleft = (page_left, page_top) |
93 if self.page > 0: | 94 if self.page > 0: |
94 self.prev_but.enable() | 95 self.prev_but.enable() |
95 else: | 96 else: |
96 self.prev_but.disable() | 97 self.prev_but.disable() |
97 if end_page < len(entries): | 98 if end_page + 1 < len(entries): |
98 self.next_but.enable() | 99 self.next_but.enable() |
99 else: | 100 else: |
100 self.next_but.disable() | 101 self.next_but.disable() |
101 self.add(self.next_but) | 102 self.add(self.next_but) |
102 self.add(self.prev_but) | 103 self.add(self.prev_but) |
103 # Add OK and Cancel buttons | 104 # Add OK and Cancel buttons |
105 top = max(self.prev_but.rect.bottom + self.padding, | |
106 top + 2 * self.padding) | |
104 ok_but = TextButton((left, top), self.gd, 'OK') | 107 ok_but = TextButton((left, top), self.gd, 'OK') |
105 ok_but.add_callback('clicked', self.ok) | 108 ok_but.add_callback('clicked', self.ok) |
106 self.add(ok_but) | 109 self.add(ok_but) |
107 cancel_but = TextButton( | 110 cancel_but = TextButton( |
108 (left + ok_but.rect.width + 4 * self.padding, top), | 111 (left + ok_but.rect.width + 4 * self.padding, top), |