Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src/jarabe/desktop/favoritesview.py
diff options
context:
space:
mode:
authorTomeu Vizoso <tomeu@tomeuvizoso.net>2008-10-23 14:06:57 (GMT)
committer Tomeu Vizoso <tomeu@tomeuvizoso.net>2008-10-23 14:06:57 (GMT)
commit4ff4e22a1f85fcf2ebae80c79c5360d8533031d9 (patch)
tree6c9387a99eba96f5e75b1a4dde65b7bf3f00f3ca /src/jarabe/desktop/favoritesview.py
parenteccbb9e9e2e0504205c99ac39ba1cb29a3eb3385 (diff)
Simplify the enable_xo_palette stuff
Diffstat (limited to 'src/jarabe/desktop/favoritesview.py')
-rw-r--r--src/jarabe/desktop/favoritesview.py45
1 files changed, 29 insertions, 16 deletions
diff --git a/src/jarabe/desktop/favoritesview.py b/src/jarabe/desktop/favoritesview.py
index 855c4b6..643c57a 100644
--- a/src/jarabe/desktop/favoritesview.py
+++ b/src/jarabe/desktop/favoritesview.py
@@ -88,6 +88,7 @@ class FavoritesView(hippo.Canvas):
self.set_root(self._box)
self._my_icon = _MyIcon(style.XLARGE_ICON_SIZE)
+ self._my_icon.connect('register-activate', self.__register_activate_cb)
self._box.append(self._my_icon)
self._current_activity = CurrentActivityIcon()
@@ -183,12 +184,6 @@ class FavoritesView(hippo.Canvas):
hippo.Canvas.do_size_allocate(self, allocation)
- def enable_xo_palette(self):
- self._my_icon.enable_palette()
- if self._my_icon.register_menu is not None:
- self._my_icon.register_menu.connect('activate',
- self.__register_activate_cb)
-
# TODO: Dnd methods. This should be merged somehow inside hippo-canvas.
def __button_press_event_cb(self, widget, event):
if event.button == 1 and event.type == gtk.gdk.BUTTON_PRESS:
@@ -316,7 +311,7 @@ class FavoritesView(hippo.Canvas):
self._box.remove(self._alert)
self._alert = None
- def __register_activate_cb(self, menuitem):
+ def __register_activate_cb(self, icon):
alert = Alert()
try:
schoolserver.register_laptop()
@@ -326,9 +321,8 @@ class FavoritesView(hippo.Canvas):
else:
alert.props.title = _('Registration Successful')
alert.props.msg = _('You are now registered ' \
- 'with your school server.')
- palette = self._my_icon.get_palette()
- palette.menu.remove(menuitem)
+ 'with your school server.')
+ self._my_icon.remove_register_menu()
ok_icon = Icon(icon_name='dialog-ok')
alert.add_button(gtk.RESPONSE_OK, _('Ok'), ok_icon)
@@ -440,13 +434,24 @@ class CurrentActivityIcon(CanvasIcon, hippo.CanvasItem):
self._update()
class _MyIcon(MyIcon):
+ __gtype_name__ = 'SugarFavoritesMyIcon'
+
+ __gsignals__ = {
+ 'register-activate' : (gobject.SIGNAL_RUN_FIRST,
+ gobject.TYPE_NONE, ([])),
+ }
def __init__(self, scale):
MyIcon.__init__(self, scale)
self._power_manager = None
- self.register_menu = None
+ self._palette_enabled = False
+ self._register_menu = None
+
+ def create_palette(self):
+ if not self._palette_enabled:
+ self._palette_enabled = True
+ return
- def enable_palette(self):
client = gconf.client_get_default()
nick = client.get_string("/desktop/sugar/user/nick")
color = XoColor(client.get_string("/desktop/sugar/user/color"))
@@ -473,11 +478,12 @@ class _MyIcon(MyIcon):
backup_url = client.get_string('/desktop/sugar/backup_url')
if not backup_url:
- self.register_menu = MenuItem(_('Register'), 'media-record')
- palette.menu.append(self.register_menu)
- self.register_menu.show()
+ self._register_menu = MenuItem(_('Register'), 'media-record')
+ self._register_menu.connect('activate', self.__register_activate_cb)
+ palette.menu.append(self._register_menu)
+ self._register_menu.show()
- self.set_palette(palette)
+ return palette
def _reboot_activate_cb(self, menuitem):
session_manager = get_session_manager()
@@ -494,3 +500,10 @@ class _MyIcon(MyIcon):
panel = ControlPanel()
panel.set_transient_for(self.get_toplevel())
panel.show()
+
+ def __register_activate_cb(self, menuitem):
+ self.emit('register-activate')
+
+ def remove_register_menu(self):
+ self.palette.remove(self._register_menu)
+