From 6cbc3d1a4813d7e090051f01e400bca0a04a26c2 Mon Sep 17 00:00:00 2001 From: Daniel Narvaez Date: Thu, 2 May 2013 18:52:59 +0200 Subject: [PATCH] Improve XOColor fallback logic We was failing if the value in gconf was None. Also parsing the string once just to see if it's valid was pretty dumb. --- src/sugar3/graphics/xocolor.py | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/src/sugar3/graphics/xocolor.py b/src/sugar3/graphics/xocolor.py index 84e93a99..45e23322 100644 --- a/src/sugar3/graphics/xocolor.py +++ b/src/sugar3/graphics/xocolor.py @@ -225,29 +225,23 @@ def _parse_string(color_string): return None -def is_valid(color_string): - return (_parse_string(color_string) != None) - - class XoColor: def __init__(self, color_string=None): - if color_string == None: - randomize = True - elif not is_valid(color_string): - logging.debug('Color string is not valid: %s, ' - 'fallback to default', color_string) + parsed_color = None + + if color_string is None: client = GConf.Client.get_default() color_string = client.get_string('/desktop/sugar/user/color') - randomize = is_valid(color_string) - else: - randomize = False - if randomize: + if color_string is not None: + parsed_color = _parse_string(color_string) + + if parsed_color is None: n = int(random.random() * (len(colors) - 1)) [self.stroke, self.fill] = colors[n] else: - [self.stroke, self.fill] = _parse_string(color_string) + [self.stroke, self.fill] = parsed_color def __cmp__(self, other): if isinstance(other, XoColor):