Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell/model/Invites.py
diff options
context:
space:
mode:
Diffstat (limited to 'shell/model/Invites.py')
-rw-r--r--shell/model/Invites.py18
1 files changed, 14 insertions, 4 deletions
diff --git a/shell/model/Invites.py b/shell/model/Invites.py
index a94a469..d4779f1 100644
--- a/shell/model/Invites.py
+++ b/shell/model/Invites.py
@@ -39,16 +39,26 @@ class Invites(gobject.GObject):
def __init__(self):
gobject.GObject.__init__(self)
- self._list = []
+ self._dict = {}
def add_invite(self, issuer, bundle_id, activity_id):
+ if activity_id in self._dict:
+ # there is no point to add more than one time
+ # an invite for the same activity
+ return
+
invite = Invite(issuer, bundle_id, activity_id)
- self._list.append(invite)
+ self._dict[activity_id] = invite
self.emit('invite-added', invite)
def remove_invite(self, invite):
- self._list.remove(invite)
+ self._dict.pop(invite.get_activity_id())
self.emit('invite-removed', invite)
+ def remove_activity(self, activity_id):
+ invite = self._dict.get(activity_id)
+ if invite is not None:
+ self.remove_invite(invite)
+
def __iter__(self):
- return self._list.__iter__()
+ return self._dict.values().__iter__()