Merge pull request #16 from dnarvaez/xocolor

Improve XOColor fallback logic
This commit is contained in:
walterbender 2013-05-02 11:59:14 -07:00
commit 17cd3e33bc

View File

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