diff options
author | Marco 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) |
commit | 18e730a6a511890a7a2caa7100bb8f8532b80438 (patch) | |
tree | b160f5bb59ce526eeb237fa5d329831d47be520f /src | |
parent | 0bffc266ca10f6893bf3e0a7a9f927f943d9b79a (diff) |
Make friends model independent from shell model.
Diffstat (limited to 'src')
-rw-r--r-- | src/jarabe/desktop/friendsbox.py | 10 | ||||
-rw-r--r-- | src/jarabe/model/friends.py | 10 | ||||
-rw-r--r-- | src/jarabe/model/shellmodel.py | 5 |
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 |