diff options
-rw-r--r-- | view.py | 12 |
1 files changed, 12 insertions, 0 deletions
@@ -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]) |