Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomeu Vizoso <tomeu@sugarlabs.org>2009-01-30 10:09:31 (GMT)
committer Tomeu Vizoso <tomeu@sugarlabs.org>2009-01-30 10:09:31 (GMT)
commit7b58cdb6300d54357afecf2316c174f6d2559309 (patch)
treef73a640dda7cd8463fae63518847b3cb507dd11c
parentc9bd79e9eebe954944f5a1e9406c3503f56e83be (diff)
Make connections between related thoughts
-rw-r--r--view.py12
1 files changed, 12 insertions, 0 deletions
diff --git a/view.py b/view.py
index ed4f884..05d4c72 100644
--- a/view.py
+++ b/view.py
@@ -90,6 +90,13 @@ class MindMapView(GtkView):
model = property(get_model, set_model)
+ def _connect_items(self, parent_view, thought_view):
+ line = Line()
+ self.canvas.add(line)
+ handle_tool = ConnectHandleTool()
+ handle_tool.connect(self, line, line.handles()[0], parent_view.get_position())
+ handle_tool.connect(self, line, line.opposite(line.handles()[0]), thought_view.get_position())
+
def __row_changed_cb(self, model, path, iter):
row = model[iter]
#logging.debug('__row_changed_cb %r' % ((row[0], row[1], row[2], row[3], row[4],),))
@@ -98,6 +105,11 @@ class MindMapView(GtkView):
if thought_view is None:
thought_view = ThoughtView(row[0], row[1], row[2], row[3], row[4])
self.canvas.add(thought_view)
+
+ if row.parent is not None:
+ parent_view = self._get_thought_by_id(row.parent[0])
+ gobject.idle_add(lambda: self._connect_items(parent_view,
+ thought_view))
else:
thought_view.name = row[1]
thought_view.set_position(row[2], row[3])