diff options
author | Tomeu Vizoso <tomeu.vizoso@collabora.co.uk> | 2010-07-19 12:53:03 (GMT) |
---|---|---|
committer | Tomeu Vizoso <tomeu.vizoso@collabora.co.uk> | 2010-08-20 13:02:27 (GMT) |
commit | b9d2a313709469398228d82a72a03a93a66e6dcb (patch) | |
tree | 340a574ca7f66735f00fa47474d2324c3426895f | |
parent | 0d79b38aa5b14f4db4c04d6c825503198c828f41 (diff) |
Turn OwnerBuddyModel a singleton
-rw-r--r-- | src/jarabe/desktop/favoritesview.py | 6 | ||||
-rw-r--r-- | src/jarabe/desktop/groupbox.py | 4 | ||||
-rw-r--r-- | src/jarabe/desktop/transitionbox.py | 4 | ||||
-rw-r--r-- | src/jarabe/frame/friendstray.py | 4 | ||||
-rw-r--r-- | src/jarabe/model/buddy.py | 9 | ||||
-rw-r--r-- | src/jarabe/model/neighborhood.py | 4 |
6 files changed, 20 insertions, 11 deletions
diff --git a/src/jarabe/desktop/favoritesview.py b/src/jarabe/desktop/favoritesview.py index d35b285..7765d0e 100644 --- a/src/jarabe/desktop/favoritesview.py +++ b/src/jarabe/desktop/favoritesview.py @@ -40,7 +40,7 @@ from jarabe.view.palettes import CurrentActivityPalette, ActivityPalette from jarabe.view.buddyicon import BuddyIcon from jarabe.view.buddymenu import BuddyMenu from jarabe.view import launcher -from jarabe.model.buddy import BuddyModel, OwnerBuddyModel +from jarabe.model.buddy import BuddyModel, get_owner_instance from jarabe.model import shell from jarabe.model import bundleregistry from jarabe.journal import misc @@ -601,7 +601,7 @@ class OwnerIcon(BuddyIcon): gobject.TYPE_NONE, ([])) } def __init__(self, size): - BuddyIcon.__init__(self, buddy=OwnerBuddyModel(), size=size) + BuddyIcon.__init__(self, buddy=get_owner_instance(), size=size) self._power_manager = None self._palette_enabled = False @@ -613,7 +613,7 @@ class OwnerIcon(BuddyIcon): return presence_service = presenceservice.get_instance() - palette = BuddyMenu(OwnerBuddyModel()) + palette = BuddyMenu(get_owner_instance()) client = gconf.client_get_default() backup_url = client.get_string('/desktop/sugar/backup_url') diff --git a/src/jarabe/desktop/groupbox.py b/src/jarabe/desktop/groupbox.py index 6da85a2..562fdfa 100644 --- a/src/jarabe/desktop/groupbox.py +++ b/src/jarabe/desktop/groupbox.py @@ -26,7 +26,7 @@ from sugar.graphics.xocolor import XoColor from sugar.presence import presenceservice from jarabe.view.buddymenu import BuddyMenu -from jarabe.model.buddy import OwnerBuddyModel +from jarabe.model.buddy import get_owner_instance from jarabe.model import friends from jarabe.desktop.friendview import FriendView from jarabe.desktop.spreadlayout import SpreadLayout @@ -54,7 +54,7 @@ class GroupBox(hippo.Canvas): xo_color=color) self._owner_icon.props.size = style.LARGE_ICON_SIZE - self._owner_icon.set_palette(BuddyMenu(OwnerBuddyModel())) + self._owner_icon.set_palette(BuddyMenu(get_owner_instance())) self._layout.add(self._owner_icon) friends_model = friends.get_model() diff --git a/src/jarabe/desktop/transitionbox.py b/src/jarabe/desktop/transitionbox.py index acf563a..cf9e0d6 100644 --- a/src/jarabe/desktop/transitionbox.py +++ b/src/jarabe/desktop/transitionbox.py @@ -20,7 +20,7 @@ import gobject from sugar.graphics import style from sugar.graphics import animator -from jarabe.model.buddy import OwnerBuddyModel +from jarabe.model.buddy import get_owner_instance from jarabe.view.buddyicon import BuddyIcon class _Animation(animator.Animation): @@ -78,7 +78,7 @@ class TransitionBox(hippo.Canvas): self._layout = _Layout() self._box.set_layout(self._layout) - self._my_icon = BuddyIcon(buddy=OwnerBuddyModel(), + self._my_icon = BuddyIcon(buddy=get_owner_instance(), size=style.XLARGE_ICON_SIZE) self._box.append(self._my_icon) diff --git a/src/jarabe/frame/friendstray.py b/src/jarabe/frame/friendstray.py index bd70622..62c0e9f 100644 --- a/src/jarabe/frame/friendstray.py +++ b/src/jarabe/frame/friendstray.py @@ -22,7 +22,7 @@ from sugar.graphics.tray import VTray, TrayIcon from jarabe.view.buddymenu import BuddyMenu from jarabe.frame.frameinvoker import FrameWidgetInvoker from jarabe.model import shell -from jarabe.model.buddy import BuddyModel, OwnerBuddyModel +from jarabe.model.buddy import BuddyModel, get_owner_instance class FriendIcon(TrayIcon): def __init__(self, buddy): @@ -104,7 +104,7 @@ class FriendsTray(VTray): self.clear() # always display ourselves - self.add_buddy(OwnerBuddyModel()) + self.add_buddy(get_owner_instance()) if shared_activity is True: for buddy in activity_ps.get_joined_buddies(): diff --git a/src/jarabe/model/buddy.py b/src/jarabe/model/buddy.py index 2c2e28d..3bcf790 100644 --- a/src/jarabe/model/buddy.py +++ b/src/jarabe/model/buddy.py @@ -159,6 +159,15 @@ class OwnerBuddyModel(BaseBuddyModel): def get_buddy(self): return None + +_owner_instance = None +def get_owner_instance(): + if _owner_instance is None: + global _owner_instance + _owner_instance = OwnerBuddyModel() + return _owner_instance + + class BuddyModel(BaseBuddyModel): __gtype_name__ = 'SugarBuddyModel' def __init__(self, **kwargs): diff --git a/src/jarabe/model/neighborhood.py b/src/jarabe/model/neighborhood.py index bf49073..cb6b810 100644 --- a/src/jarabe/model/neighborhood.py +++ b/src/jarabe/model/neighborhood.py @@ -45,7 +45,7 @@ from telepathy.client import Connection, Channel from sugar.graphics.xocolor import XoColor from sugar import activity -from jarabe.model.buddy import BuddyModel, OwnerBuddyModel +from jarabe.model.buddy import BuddyModel, get_owner_instance from jarabe.model import bundleregistry ACCOUNT_MANAGER_SERVICE = 'org.freedesktop.Telepathy.AccountManager' @@ -397,7 +397,7 @@ class Neighborhood(gobject.GObject): def __init__(self): gobject.GObject.__init__(self) - self._buddies = {None: OwnerBuddyModel()} + self._buddies = {None: get_owner_instance()} self._activities = {} self._accounts = [] self._create_accounts() |