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.
master
Daniel Narvaez 11 years ago
parent 79fa03e846
commit 6cbc3d1a48

@ -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):

Loading…
Cancel
Save