Fix for 1846. Strip whitespace from nicks and reject if blank

This commit is contained in:
Owen Williams 2007-06-29 11:08:06 -04:00 committed by Owen Williams
parent f825c108da
commit 500f5d8093

View File

@ -192,6 +192,26 @@ class EntryBox(hippo.CanvasBox, hippo.CanvasItem):
def get_text(self): def get_text(self):
return self._entry.props.text 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): class ColorBox(hippo.CanvasBox, hippo.CanvasItem):
__gtype_name__ = "SugarColorBox" __gtype_name__ = "SugarColorBox"
@ -258,12 +278,32 @@ class IntroBox(hippo.CanvasBox, hippo.CanvasItem):
name = self._entry_box.get_text() name = self._entry_box.get_text()
color = self._color_box.get_color() 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: if not pixbuf or not name or not color:
print "not one of pixbuf(%r), name(%r), or color(%r)" print "not one of pixbuf(%r), name(%r), or color(%r)"
return return
self.emit('ok', pixbuf, name, color) 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): class IntroWindow(gtk.Window):
def __init__(self): def __init__(self):