diff options
author | Owen Williams <owen-olpc@ywwg.com> | 2007-06-29 15:08:06 (GMT) |
---|---|---|
committer | Owen Williams <owen@ywwg.localdomain> | 2007-06-29 15:08:06 (GMT) |
commit | 500f5d8093024a9321704212db6b73305a6da843 (patch) | |
tree | d16361c31cdf40cfa0eaea45c2c72e2bf29cfd93 /shell | |
parent | f825c108da2250981e46ae3d62709ef570a51d49 (diff) |
Fix for 1846. Strip whitespace from nicks and reject if blank
Diffstat (limited to 'shell')
-rw-r--r-- | shell/intro/intro.py | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/shell/intro/intro.py b/shell/intro/intro.py index 2ae097d..0a927c4 100644 --- a/shell/intro/intro.py +++ b/shell/intro/intro.py @@ -191,6 +191,26 @@ class EntryBox(hippo.CanvasBox, hippo.CanvasItem): def get_text(self): return self._entry.props.text + + def flash_label(self): + """Briefly flashes the label to draw the user's attention to the + control""" + + old_fg_color = color.LABEL_TEXT.get_int() + old_bg_color = 0x000000ff # background color set above + r,g,b,a = color.LABEL_TEXT.get_rgba() + fg_opposite = color.RGBColor(1 - r, 1 - g, 1 - b) + bg_opposite = color.RGBColor(1, 1, 1) + + self._label.props.color = fg_opposite.get_int() + self._label.props.background_color = bg_opposite.get_int() + + gobject.timeout_add(200, self._flash_reset, old_fg_color, old_bg_color) + + def _flash_reset(self, old_fg_color, old_bg_color): + self._label.props.color = old_fg_color + self._label.props.background_color = old_bg_color + return False class ColorBox(hippo.CanvasBox, hippo.CanvasItem): @@ -257,12 +277,32 @@ class IntroBox(hippo.CanvasBox, hippo.CanvasItem): pixbuf = gtk.gdk.pixbuf_new_from_file(path) name = self._entry_box.get_text() color = self._color_box.get_color() + + name = self._check_nickname(name) + + if name is None: + self._entry_box.flash_label() + return if not pixbuf or not name or not color: print "not one of pixbuf(%r), name(%r), or color(%r)" return self.emit('ok', pixbuf, name, color) + + def _check_nickname(self, name): + """Returns None if a bad nickname, returns the corrected nickname + otherwise""" + + if name is None: + return None + + name = name.strip() + + if len(name) == 0: + return None + + return name class IntroWindow(gtk.Window): |