Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/activities
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <marco@localhost.localdomain>2006-10-13 18:55:33 (GMT)
committer Marco Pesenti Gritti <marco@localhost.localdomain>2006-10-13 18:55:33 (GMT)
commit37c5aaf1393e43670fa94984be945df9bd55e6c4 (patch)
tree204b8c524f3a0c5723f604c38a4e5274ca824724 /activities
parent3c0b08c81105ce955de0616394eee2c65365ac2e (diff)
More style fixes. Get it to work with multiple buddies on the same box.
Diffstat (limited to 'activities')
-rw-r--r--activities/web/linkscontroller.py38
-rw-r--r--activities/web/linksview.py6
-rw-r--r--activities/web/webactivity.py2
3 files changed, 32 insertions, 14 deletions
diff --git a/activities/web/linkscontroller.py b/activities/web/linkscontroller.py
index 109c7bb..417b37a 100644
--- a/activities/web/linkscontroller.py
+++ b/activities/web/linkscontroller.py
@@ -2,29 +2,43 @@ from sugar.p2p.Stream import Stream
from sugar.presence import PresenceService
class _Marshaller(object):
- def marshal(self, title, address):
- return title + '\n' + address
+ def __init__(self, title, address):
+ pservice = PresenceService.get_instance()
+ name = pservice.get_owner().get_name()
+ self._message = name + '\n' + title + '\n' + address
- def demarshal(self, message):
- return message.split('\n')
+ def get_message(self):
+ return self._message
+
+class _Demarshaller(object):
+ def __init__(self, message):
+ self._pservice = PresenceService.get_instance()
+ self._split_msg = message.split('\n')
+
+ def get_buddy(self):
+ return self._pservice.get_buddy_by_name(self._split_msg[0])
+
+ def get_title(self):
+ return self._split_msg[1]
+
+ def get_address(self):
+ return self._split_msg[2]
class LinksController(object):
def __init__(self, service, model):
self._model = model
- self._pservice = PresenceService.get_instance()
- self._marshaller = _Marshaller()
-
self._stream = Stream.new_from_service(service)
self._stream.set_data_listener(self._recv_message)
self._stream_writer = self._stream.new_writer()
def post_link(self, title, address):
- message = self._marshaller.marshal(title, address)
- self._stream_writer.write(message)
+ marshaller = _Marshaller(title, address)
+ self._stream_writer.write(marshaller.get_message())
def _recv_message(self, address, msg):
- buddy = self._pservice.get_buddy_by_address(address)
+ demarshaller = _Demarshaller(msg)
+ buddy = demarshaller.get_buddy()
if buddy:
- link = self._marshaller.demarshal(msg)
- self._model.add_link(buddy, *link)
+ self._model.add_link(buddy, demarshaller.get_title(),
+ demarshaller.get_address())
diff --git a/activities/web/linksview.py b/activities/web/linksview.py
index df67739..8b27413 100644
--- a/activities/web/linksview.py
+++ b/activities/web/linksview.py
@@ -23,6 +23,9 @@ class LinksView(hippo.Canvas):
model.connect('link_removed', self._link_removed_cb)
def _add_link(self, link):
+ if len(self._bubbles) == 0:
+ self.show()
+
color = IconColor(link.buddy.get_color())
bubble = Bubble(color=color)
@@ -42,6 +45,9 @@ class LinksView(hippo.Canvas):
del self._bubbles[link]
+ if len(self._bubbles) == 0:
+ self.hide()
+
def _link_added_cb(self, model, link):
self._add_link(link)
diff --git a/activities/web/webactivity.py b/activities/web/webactivity.py
index 4bad200..fa8282f 100644
--- a/activities/web/webactivity.py
+++ b/activities/web/webactivity.py
@@ -35,8 +35,6 @@ class WebActivity(Activity):
hbox = gtk.HBox()
hbox.pack_start(links_view, False)
- links_view.show()
-
hbox.pack_start(self._browser)
self._browser.show()