Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <mpgritti@gmail.com>2008-10-05 10:22:36 (GMT)
committer Marco Pesenti Gritti <mpgritti@gmail.com>2008-10-05 10:22:36 (GMT)
commit18e730a6a511890a7a2caa7100bb8f8532b80438 (patch)
treeb160f5bb59ce526eeb237fa5d329831d47be520f /src
parent0bffc266ca10f6893bf3e0a7a9f927f943d9b79a (diff)
Make friends model independent from shell model.
Diffstat (limited to 'src')
-rw-r--r--src/jarabe/desktop/friendsbox.py10
-rw-r--r--src/jarabe/model/friends.py10
-rw-r--r--src/jarabe/model/shellmodel.py5
3 files changed, 15 insertions, 10 deletions
diff --git a/src/jarabe/desktop/friendsbox.py b/src/jarabe/desktop/friendsbox.py
index 8ae9cf1..2053213 100644
--- a/src/jarabe/desktop/friendsbox.py
+++ b/src/jarabe/desktop/friendsbox.py
@@ -23,7 +23,7 @@ from sugar.graphics import style
from sugar.graphics.icon import CanvasIcon, Icon
from sugar.graphics.palette import Palette
-from jarabe.model import shellmodel
+from jarabe.model import friends
from jarabe.desktop.friendview import FriendView
from jarabe.desktop.spreadlayout import SpreadLayout
@@ -52,13 +52,13 @@ class FriendsBox(hippo.Canvas):
self._owner_icon.set_palette(palette)
self._layout.add(self._owner_icon)
- friends = shellmodel.get_instance().get_friends()
+ friends_model = friends.get_model()
- for friend in friends:
+ for friend in friends_model:
self.add_friend(friend)
- friends.connect('friend-added', self._friend_added_cb)
- friends.connect('friend-removed', self._friend_removed_cb)
+ friends_model.connect('friend-added', self._friend_added_cb)
+ friends_model.connect('friend-removed', self._friend_removed_cb)
def add_friend(self, buddy_info):
icon = FriendView(buddy_info)
diff --git a/src/jarabe/model/friends.py b/src/jarabe/model/friends.py
index 465f0ca..473b14d 100644
--- a/src/jarabe/model/friends.py
+++ b/src/jarabe/model/friends.py
@@ -112,3 +112,13 @@ class Friends(gobject.GObject):
psi.SyncFriends(keys,
reply_handler=friends_synced,
error_handler=friends_synced_error)
+
+_model = None
+
+def get_model():
+ global _model
+
+ if not _model:
+ _model = Friends()
+
+ return _model
diff --git a/src/jarabe/model/shellmodel.py b/src/jarabe/model/shellmodel.py
index 92aaf83..b7bf7bf 100644
--- a/src/jarabe/model/shellmodel.py
+++ b/src/jarabe/model/shellmodel.py
@@ -18,7 +18,6 @@ import wnck
import gobject
from sugar.presence import presenceservice
-from jarabe.model.friends import Friends
from jarabe.model.homemodel import HomeModel
class ShellModel(gobject.GObject):
@@ -42,7 +41,6 @@ class ShellModel(gobject.GObject):
self._pservice = presenceservice.get_instance()
- self._friends = Friends()
self._home = HomeModel()
self._screen = wnck.screen_get_default()
@@ -63,9 +61,6 @@ class ShellModel(gobject.GObject):
if pspec.name == 'zoom-level':
return self.get_zoom_level()
- def get_friends(self):
- return self._friends
-
def get_home(self):
return self._home