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-07-19 12:53:03 (GMT)
committer Tomeu Vizoso <tomeu.vizoso@collabora.co.uk>2010-08-20 13:02:27 (GMT)
commitb9d2a313709469398228d82a72a03a93a66e6dcb (patch)
tree340a574ca7f66735f00fa47474d2324c3426895f
parent0d79b38aa5b14f4db4c04d6c825503198c828f41 (diff)
Turn OwnerBuddyModel a singleton
-rw-r--r--src/jarabe/desktop/favoritesview.py6
-rw-r--r--src/jarabe/desktop/groupbox.py4
-rw-r--r--src/jarabe/desktop/transitionbox.py4
-rw-r--r--src/jarabe/frame/friendstray.py4
-rw-r--r--src/jarabe/model/buddy.py9
-rw-r--r--src/jarabe/model/neighborhood.py4
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()