From 500f5d8093024a9321704212db6b73305a6da843 Mon Sep 17 00:00:00 2001 From: Owen Williams Date: Fri, 29 Jun 2007 15:08:06 +0000 Subject: Fix for 1846. Strip whitespace from nicks and reject if blank --- 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): -- cgit v0.9.1