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-02-17 18:22:39 (GMT)
committer Tomeu Vizoso <tomeu@sugarlabs.org>2009-02-17 18:22:39 (GMT)
commit3e155fa9a2971a903c90d82768b99ce8584e52eb (patch)
treecdb423ca6d476eaf03538ba2d0cc9035605d1004
parenta47771ef2efc314bee74a2f2c20bd381c35dcc9d (diff)
Actually apply the name changeHEADmaster
-rw-r--r--view.py48
1 files changed, 11 insertions, 37 deletions
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: