Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomeu Vizoso <tomeu.vizoso@collabora.co.uk>2010-08-04 15:10:22 (GMT)
committer Tomeu Vizoso <tomeu.vizoso@collabora.co.uk>2010-08-04 15:10:22 (GMT)
commit4bf6ab140c4ff982bf4cf79fff51dc8b958b805a (patch)
treefbca4330cf7a07c4c7aacffc071ff638a730d209
parente1984b519fbabc5f40b27c7e5c36b2164997d30a (diff)
Revert "new color selector for cpsection"sucrose-0.88
Sorry, was pushed by mistake This reverts commit e1984b519fbabc5f40b27c7e5c36b2164997d30a.
-rw-r--r--extensions/cpsection/aboutme/view.py182
1 files changed, 65 insertions, 117 deletions
diff --git a/extensions/cpsection/aboutme/view.py b/extensions/cpsection/aboutme/view.py
index caf6d29..cabd66a 100644
--- a/extensions/cpsection/aboutme/view.py
+++ b/extensions/cpsection/aboutme/view.py
@@ -25,21 +25,13 @@ from sugar.graphics.xocolor import XoColor
from jarabe.controlpanel.sectionview import SectionView
from jarabe.controlpanel.inlinealert import InlineAlert
-_DIRECTION_LEFT = 0
-_DIRECTION_TOP = 1
-_DIRECTION_CENTER = 2
-_DIRECTION_BOTTOM = 3
-_DIRECTION_RIGHT = 4
-
-
class EventIcon(gtk.EventBox):
- __gtype_name__ = "SugarEventIcon"
-
- def __init__(self, **kwargs):
+ __gtype_name__ = "SugarEventIcon"
+ def __init__(self, **kwargs):
gtk.EventBox.__init__(self)
- self.icon = Icon(pixel_size=style.XLARGE_ICON_SIZE, **kwargs)
-
+ self.icon = Icon(pixel_size = style.XLARGE_ICON_SIZE, **kwargs)
+
self.set_visible_window(False)
self.set_app_paintable(True)
self.set_events(gtk.gdk.BUTTON_PRESS_MASK)
@@ -47,45 +39,28 @@ class EventIcon(gtk.EventBox):
self.add(self.icon)
self.icon.show()
-
class ColorPicker(EventIcon):
__gsignals__ = {
'color-changed': (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE,
- ([object]))
- }
-
- def __init__(self, direction):
+ ([str]))
+ }
+ def __init__(self, xocolor=None):
EventIcon.__init__(self)
-
+ self.icon.props.xo_color = xocolor
self.icon.props.icon_name = 'computer-xo'
- self._direction = direction
- self._color = None
-
self.icon.props.pixel_size = style.XLARGE_ICON_SIZE
+ self.connect('button_press_event', self.__pressed_cb)
- self.connect('button_press_event', self.__pressed_cb, direction)
-
- def update(self, color):
- if self._direction == _DIRECTION_CENTER:
- self._color = color
- elif self._direction == _DIRECTION_LEFT:
- self._color = XoColor(color.get_prev_fill_color())
- elif self._direction == _DIRECTION_RIGHT:
- self._color = XoColor(color.get_prev_stroke_color())
- elif self._direction == _DIRECTION_TOP:
- self._color = XoColor(color.get_next_fill_color())
- else:
- self._color = XoColor(color.get_next_stroke_color())
- self.icon.props.xo_color = self._color
-
- def __pressed_cb(self, button, event, direction):
- if direction != _DIRECTION_CENTER:
- self.emit('color-changed', self._color)
+ def __pressed_cb(self, button, event):
+ self._set_random_colors()
+ def _set_random_colors(self):
+ xocolor = XoColor()
+ self.icon.props.xo_color = xocolor
+ self.emit('color-changed', xocolor.to_string())
class AboutMe(SectionView):
-
def __init__(self, model, alerts):
SectionView.__init__(self)
@@ -94,45 +69,44 @@ class AboutMe(SectionView):
self._nick_sid = 0
self._color_valid = True
self._nick_valid = True
- self._handlers = []
+ self._color_change_handler = None
+ self._nick_change_handler = None
self.set_border_width(style.DEFAULT_SPACING * 2)
self.set_spacing(style.DEFAULT_SPACING)
self._group = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL)
- self._color_label = gtk.HBox(spacing=style.DEFAULT_SPACING)
- self._color_box = gtk.HBox(spacing=style.DEFAULT_SPACING)
- self._color_alert_box = gtk.HBox(spacing=style.DEFAULT_SPACING)
- self._color_alert = None
-
- self._pickers = {
- _DIRECTION_CENTER: ColorPicker(_DIRECTION_CENTER),
- _DIRECTION_LEFT: ColorPicker(_DIRECTION_LEFT),
- _DIRECTION_RIGHT: ColorPicker(_DIRECTION_RIGHT),
- _DIRECTION_TOP: ColorPicker(_DIRECTION_TOP),
- _DIRECTION_BOTTOM: ColorPicker(_DIRECTION_BOTTOM)
- }
-
- self._setup_color()
- initial_color = XoColor(self._model.get_color_xo())
- self._update_pickers(initial_color)
-
self._nick_box = gtk.HBox(spacing=style.DEFAULT_SPACING)
self._nick_alert_box = gtk.HBox(spacing=style.DEFAULT_SPACING)
self._nick_entry = None
self._nick_alert = None
self._setup_nick()
+
+ self._color_box = gtk.HBox(spacing=style.DEFAULT_SPACING)
+ self._color_alert_box = gtk.HBox(spacing=style.DEFAULT_SPACING)
+ self._color_picker = None
+ self._color_alert = None
+ self._setup_color()
+
self.setup()
def _setup_nick(self):
- self._nick_entry = gtk.Entry()
- self._nick_entry.modify_bg(gtk.STATE_INSENSITIVE,
+ label_entry = gtk.Label(_('Name:'))
+ label_entry.modify_fg(gtk.STATE_NORMAL,
+ style.COLOR_SELECTION_GREY.get_gdk_color())
+ self._group.add_widget(label_entry)
+ label_entry.set_alignment(1, 0.5)
+ self._nick_box.pack_start(label_entry, expand=False)
+ label_entry.show()
+
+ self._nick_entry = gtk.Entry()
+ self._nick_entry.modify_bg(gtk.STATE_INSENSITIVE,
style.COLOR_WHITE.get_gdk_color())
- self._nick_entry.modify_base(gtk.STATE_INSENSITIVE,
+ self._nick_entry.modify_base(gtk.STATE_INSENSITIVE,
style.COLOR_WHITE.get_gdk_color())
self._nick_entry.set_width_chars(25)
self._nick_box.pack_start(self._nick_entry, expand=False)
- self._nick_entry.show()
+ self._nick_entry.show()
label_entry_error = gtk.Label()
self._group.add_widget(label_entry_error)
@@ -145,36 +119,22 @@ class AboutMe(SectionView):
self._nick_alert.props.msg = self.restart_msg
self._nick_alert.show()
- self._center_in_panel = gtk.Alignment(0.5)
- self._center_in_panel.add(self._nick_box)
- self.pack_start(self._center_in_panel, False)
+ self.pack_start(self._nick_box, False)
self.pack_start(self._nick_alert_box, False)
self._nick_box.show()
self._nick_alert_box.show()
- self._center_in_panel.show()
-
- def _setup_color(self):
+
+ def _setup_color(self):
label_color = gtk.Label(_('Click to change your color:'))
- label_color.modify_fg(gtk.STATE_NORMAL,
+ label_color.modify_fg(gtk.STATE_NORMAL,
style.COLOR_SELECTION_GREY.get_gdk_color())
self._group.add_widget(label_color)
- self._color_label.pack_start(label_color, expand=False)
+ self._color_box.pack_start(label_color, expand=False)
label_color.show()
-
- for direction in sorted(self._pickers.keys()):
- if direction == _DIRECTION_CENTER:
- left_separator = gtk.SeparatorToolItem()
- left_separator.show()
- self._color_box.pack_start(left_separator, expand=False)
-
- picker = self._pickers[direction]
- picker.show()
- self._color_box.pack_start(picker, expand=False)
-
- if direction == _DIRECTION_CENTER:
- right_separator = gtk.SeparatorToolItem()
- right_separator.show()
- self._color_box.pack_start(right_separator, expand=False)
+
+ self._color_picker = ColorPicker()
+ self._color_box.pack_start(self._color_picker, expand=False)
+ self._color_picker.show()
label_color_error = gtk.Label()
self._group.add_widget(label_color_error)
@@ -187,39 +147,30 @@ class AboutMe(SectionView):
self._color_alert.props.msg = self.restart_msg
self._color_alert.show()
- self._center_in_panel = gtk.Alignment(0.5)
- self._center_in_panel.add(self._color_box)
- self.pack_start(self._color_label, False)
- self.pack_start(self._center_in_panel, False)
- self.pack_start(self._color_alert_box, False)
- self._color_label.show()
+ self.pack_start(self._color_box, False)
+ self.pack_start(self._color_alert_box, False)
self._color_box.show()
self._color_alert_box.show()
- self._center_in_panel.show()
-
+
def setup(self):
self._nick_entry.set_text(self._model.get_nick())
+ color = XoColor(self._model.get_color_xo())
+ self._color_picker.icon.props.xo_color = color
+
self._color_valid = True
self._nick_valid = True
self.needs_restart = False
-
- def connect(widget, signal, cb):
- self._handlers.append((widget, widget.connect(signal, cb)))
-
- connect(self._nick_entry, 'changed', self.__nick_changed_cb)
- for picker in self._pickers.values():
- connect(picker, 'color-changed', self.__color_changed_cb)
+ self._nick_change_handler = self._nick_entry.connect( \
+ 'changed', self.__nick_changed_cb)
+ self._color_change_handler = self._color_picker.connect( \
+ 'color-changed', self.__color_changed_cb)
def undo(self):
- for widget, handler in self._handlers:
- widget.disconnect(handler)
+ self._color_picker.disconnect(self._color_change_handler)
+ self._nick_entry.disconnect(self._nick_change_handler)
self._model.undo()
self._nick_alert.hide()
- self._color_alert.hide()
-
- def _update_pickers(self, color):
- for picker in self._pickers.values():
- picker.update(color)
+ self._color_alert.hide()
def _validate(self):
if self._nick_valid and self._color_valid:
@@ -227,13 +178,13 @@ class AboutMe(SectionView):
else:
self.props.is_valid = False
- def __nick_changed_cb(self, widget, data=None):
+ def __nick_changed_cb(self, widget, data=None):
if self._nick_sid:
gobject.source_remove(self._nick_sid)
- self._nick_sid = gobject.timeout_add(self._APPLY_TIMEOUT,
+ self._nick_sid = gobject.timeout_add(self._APPLY_TIMEOUT,
self.__nick_timeout_cb, widget)
- def __nick_timeout_cb(self, widget):
+ def __nick_timeout_cb(self, widget):
self._nick_sid = 0
if widget.get_text() == self._model.get_nick():
@@ -242,18 +193,18 @@ class AboutMe(SectionView):
self._model.set_nick(widget.get_text())
except ValueError, detail:
self._nick_alert.props.msg = detail
- self._nick_valid = False
+ self._nick_valid = False
else:
self._nick_alert.props.msg = self.restart_msg
- self._nick_valid = True
+ self._nick_valid = True
self.needs_restart = True
self.restart_alerts.append('nick')
self._validate()
self._nick_alert.show()
return False
- def __color_changed_cb(self, colorpicker, color):
- self._model.set_color_xo(color.to_string())
+ def __color_changed_cb(self, colorpicker, xocolor):
+ self._model.set_color_xo(xocolor)
self.needs_restart = True
self._color_alert.props.msg = self.restart_msg
self._color_valid = True
@@ -261,7 +212,4 @@ class AboutMe(SectionView):
self._validate()
self._color_alert.show()
-
- self._update_pickers(color)
-
return False