Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <mpg@redhat.com>2006-05-19 18:18:41 (GMT)
committer Marco Pesenti Gritti <mpg@redhat.com>2006-05-19 18:18:41 (GMT)
commitd2cc475095f371249251cbfc174a409f3349f2e3 (patch)
treed2ba2f7535d184d9ee7f4cf4fd886e80a6695b80
parent795e4bb2db85863f74d34390f958bf767df09413 (diff)
Get something basic working
-rw-r--r--sugar/chat/sketchpad/SVGdraw.py (renamed from sugar/chat/SVGdraw.py)0
-rw-r--r--sugar/chat/sketchpad/Sketch.py15
-rw-r--r--sugar/chat/sketchpad/SketchPad.py19
-rw-r--r--sugar/p2p/MostlyReliablePipe.py31
-rw-r--r--sugar/p2p/presence.py9
-rw-r--r--sugar/session/session.py5
6 files changed, 49 insertions, 30 deletions
diff --git a/sugar/chat/SVGdraw.py b/sugar/chat/sketchpad/SVGdraw.py
index cbd8729..cbd8729 100644
--- a/sugar/chat/SVGdraw.py
+++ b/sugar/chat/sketchpad/SVGdraw.py
diff --git a/sugar/chat/sketchpad/Sketch.py b/sugar/chat/sketchpad/Sketch.py
index ea1b4bb..8c70f8d 100644
--- a/sugar/chat/sketchpad/Sketch.py
+++ b/sugar/chat/sketchpad/Sketch.py
@@ -1,3 +1,5 @@
+from SVGdraw import path
+
class Sketch:
def __init__(self):
self._points = []
@@ -14,3 +16,16 @@ class Sketch:
else:
ctx.line_to(x, y)
ctx.stroke()
+
+ def draw_to_svg(self):
+ i = 0
+ for [x, y] in self._points:
+ coords = str(x) + ' ' + str(y) + ' '
+ if i == 0:
+ path_data = 'M ' + coords
+ elif i == 1:
+ path_data += 'L ' + coords
+ else:
+ path_data += coords
+ i += 1
+ return path(path_data, fill = 'none', stroke = '#000000')
diff --git a/sugar/chat/sketchpad/SketchPad.py b/sugar/chat/sketchpad/SketchPad.py
index 0bcfebf..d368ff8 100644
--- a/sugar/chat/sketchpad/SketchPad.py
+++ b/sugar/chat/sketchpad/SketchPad.py
@@ -5,6 +5,9 @@ import cairo
from Sketch import Sketch
+from SVGdraw import drawing
+from SVGdraw import svg
+
class SketchPad(gtk.DrawingArea):
def __init__(self):
gtk.DrawingArea.__init__(self)
@@ -42,7 +45,19 @@ class SketchPad(gtk.DrawingArea):
if self._active_sketch:
self._active_sketch.add_point(event.x, event.y)
self.window.invalidate_rect(None, False)
-
+
+ def to_svg(self):
+ d = drawing()
+ s = svg()
+ for sketch in self._sketches:
+ s.addElement(sketch.draw_to_svg())
+ d.setSVG(s)
+ return d.toXml()
+
+def test_quit(w, sketchpad):
+ print sketchpad.to_svg()
+ gtk.main_quit()
+
if __name__ == "__main__":
window = gtk.Window()
window.set_default_size(400, 300)
@@ -54,4 +69,6 @@ if __name__ == "__main__":
window.show()
+ window.connect("destroy", test_quit, sketchpad)
+
gtk.main()
diff --git a/sugar/p2p/MostlyReliablePipe.py b/sugar/p2p/MostlyReliablePipe.py
index e6ba342..9e79473 100644
--- a/sugar/p2p/MostlyReliablePipe.py
+++ b/sugar/p2p/MostlyReliablePipe.py
@@ -537,23 +537,20 @@ class MostlyReliablePipe(object):
return False
def _retransmit_check_worker(self):
- try:
- now = time.time()
- for key in self._incoming.keys()[:]:
- message = self._incoming[key]
- if message.complete():
- continue
- next_rt = message.next_rt_time()
- if next_rt == 0 or next_rt > now:
- continue
- if self._retransmit_request(message):
- # Kill the message, too many retries
- print "(MRP): Dropped message %s, exceeded retries." % _stringify_sha(message.sha())
- self._dispatched[key] = message
- message.set_dispatch_time()
- del self._incoming[key]
- except KeyboardInterrupt:
- return False
+ now = time.time()
+ for key in self._incoming.keys()[:]:
+ message = self._incoming[key]
+ if message.complete():
+ continue
+ next_rt = message.next_rt_time()
+ if next_rt == 0 or next_rt > now:
+ continue
+ if self._retransmit_request(message):
+ # Kill the message, too many retries
+ print "(MRP): Dropped message %s, exceeded retries." % _stringify_sha(message.sha())
+ self._dispatched[key] = message
+ message.set_dispatch_time()
+ del self._incoming[key]
return True
def _process_incoming_data(self, segment):
diff --git a/sugar/p2p/presence.py b/sugar/p2p/presence.py
index d0f6000..4c5c086 100644
--- a/sugar/p2p/presence.py
+++ b/sugar/p2p/presence.py
@@ -60,14 +60,7 @@ class PresenceDiscovery(object):
# print "Browsing domain '%s' on %i.%i ..." % (domain, interface, protocol)
- try:
- b = dbus.Interface(self.bus.get_object(avahi.DBUS_NAME, self.server.ServiceTypeBrowserNew(interface, protocol, domain, dbus.UInt32(0))), avahi.DBUS_INTERFACE_SERVICE_TYPE_BROWSER)
- except dbus.DBusException, exc:
- str_exc = str(exc)
- if str_exc.find("The name org.freedesktop.Avahi was not provided by any .service files") >= 0:
- raise Exception("Avahi does not appear to be running. '%s'" % str_exc)
- else:
- raise exc
+ b = dbus.Interface(self.bus.get_object(avahi.DBUS_NAME, self.server.ServiceTypeBrowserNew(interface, protocol, domain, dbus.UInt32(0))), avahi.DBUS_INTERFACE_SERVICE_TYPE_BROWSER)
b.connect_to_signal('ItemNew', self.new_service_type)
self._service_type_browsers[(interface, protocol, domain)] = b
diff --git a/sugar/session/session.py b/sugar/session/session.py
index df0a0db..94a6126 100644
--- a/sugar/session/session.py
+++ b/sugar/session/session.py
@@ -38,7 +38,4 @@ def start(console):
args.append('--console')
os.spawnvp(os.P_NOWAIT, 'python', args)
- try:
- gtk.main()
- except KeyboardInterrupt:
- pass
+ gtk.main()