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.
This commit is contained in:
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…
Reference in New Issue
Block a user