From 3e155fa9a2971a903c90d82768b99ce8584e52eb Mon Sep 17 00:00:00 2001 From: Tomeu Vizoso Date: Tue, 17 Feb 2009 18:22:39 +0000 Subject: Actually apply the name change --- diff --git a/view.py b/view.py index f3305a8..366d3b3 100644 --- a/view.py +++ b/view.py @@ -31,11 +31,7 @@ class MindMapView(GtkView): __gtype_name__ = 'MindMapView' - def __init__(self, model=None): - self._model = None - self._row_changed_sid = None - self._row_deleted_sid = None - + def __init__(self, model): GtkView.__init__(self) self.canvas = Canvas() @@ -44,32 +40,14 @@ class MindMapView(GtkView): append(NewThoughtTool()). \ append(tool.HoverTool()). \ append(ItemTool()). \ - append(TextEditTool()). \ + append(TextEditTool(model)). \ append(tool.RubberbandTool()) - if model is not None: - self.model = model - - def set_model(self, new_model): - logging.debug('set_model %r' % new_model) - if self._model == new_model: - return - - if self._model is not None: - self._model.disconnect(self._row_changed_sid) - self._model.disconnect(self._row_deleted_sid) - - self._model = new_model - - if self._model is not None: - self._row_changed_sid = \ - self._model.connect('row-changed', self.__row_changed_cb) - self._row_deleted_sid = \ - self._model.connect('row-deleted', self.__row_deleted_cb) + self.model = model + self.model.connect('row-changed', self.__row_changed_cb) + self.model.connect('row-deleted', self.__row_deleted_cb) - for item in self.canvas.get_all_items(): - self.canvas.remove(item) - self._populate_from_model(self._model) + self._populate_from_model(self.model) def _populate_from_model(self, rows): for row in rows: @@ -77,11 +55,6 @@ class MindMapView(GtkView): self._populate_from_model(row.iterchildren()) self.add_element(thought_view) - def get_model(self): - return self._model - - model = property(get_model, set_model) - def _calculate_ports(self, child_view, parent_view): child_rect = child_view.get_rectangle() parent_rect = parent_view.get_rectangle() @@ -275,9 +248,10 @@ class Connection(Line): class TextEditTool(tool.Tool): - def __init__(self): + def __init__(self, model): super(tool.Tool, self).__init__() self._clicked_item = None + self._model = model def on_double_click(self, context, event): view = context.view @@ -314,14 +288,14 @@ class TextEditTool(tool.Tool): def __realize_cb(self, widget): widget.set_decorated(False) widget.set_resize_mode(gtk.RESIZE_IMMEDIATE) - widget.set_modal(True) widget.window.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DIALOG) def __key_press_event_cb(self, widget, event): if event.keyval == gtk.keysyms.Return: buf = widget.get_buffer() - self._clicked_item.name = buf.get_text(buf.get_start_iter(), - buf.get_end_iter()) + name = buf.get_text(buf.get_start_iter(), buf.get_end_iter()) + row = self._model.find_by_id(self._clicked_item.id) + self._model.set(row.iter, 1, name) widget.get_toplevel().destroy() return True elif event.keyval == gtk.keysyms.Escape: -- cgit v0.9.1