Don't traceback when buddies have bad colors
This commit is contained in:
parent
8ac55c287e
commit
ba3d5fce8c
@ -2,6 +2,7 @@ import gobject
|
|||||||
|
|
||||||
from sugar.presence import PresenceService
|
from sugar.presence import PresenceService
|
||||||
from sugar.canvas.IconColor import IconColor
|
from sugar.canvas.IconColor import IconColor
|
||||||
|
import logging
|
||||||
|
|
||||||
class Friend:
|
class Friend:
|
||||||
def __init__(self, buddy):
|
def __init__(self, buddy):
|
||||||
@ -11,8 +12,13 @@ class Friend:
|
|||||||
return self._buddy.get_name()
|
return self._buddy.get_name()
|
||||||
|
|
||||||
def get_color(self):
|
def get_color(self):
|
||||||
color = self._buddy.get_color()
|
color = self._buddy.get_color()
|
||||||
return IconColor(color)
|
try:
|
||||||
|
icolor = IconColor(color)
|
||||||
|
except RuntimeError:
|
||||||
|
icolor = IconColor()
|
||||||
|
logging.info("Buddy %s doesn't have an allowed color; using a random color instead." % self.get_name())
|
||||||
|
return icolor
|
||||||
|
|
||||||
class FriendsModel(gobject.GObject):
|
class FriendsModel(gobject.GObject):
|
||||||
__gsignals__ = {
|
__gsignals__ = {
|
||||||
|
@ -109,7 +109,13 @@ class IconColor:
|
|||||||
if fill_color == None:
|
if fill_color == None:
|
||||||
n = int(random.random() * (len(self.__colors_dict) - 1))
|
n = int(random.random() * (len(self.__colors_dict) - 1))
|
||||||
fill_color = self.__colors_dict.keys()[n]
|
fill_color = self.__colors_dict.keys()[n]
|
||||||
|
else:
|
||||||
|
if fill_color[0] == '#':
|
||||||
|
fill_color = fill_color.upper()
|
||||||
|
else:
|
||||||
|
fill_color = fill_color.lower()
|
||||||
|
if not self.__colors_dict.has_key(fill_color):
|
||||||
|
raise RuntimeError("Specified fill color %s is not allowed." % fill_color)
|
||||||
self._fill_color = fill_color
|
self._fill_color = fill_color
|
||||||
|
|
||||||
def get_stroke_color(self):
|
def get_stroke_color(self):
|
||||||
|
Loading…
Reference in New Issue
Block a user