From 7b58cdb6300d54357afecf2316c174f6d2559309 Mon Sep 17 00:00:00 2001 From: Tomeu Vizoso Date: Fri, 30 Jan 2009 10:09:31 +0000 Subject: Make connections between related thoughts --- 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]) -- cgit v0.9.1