diff options
author | Alan Aguiar <alanjas@hotmail.com> | 2013-12-25 18:16:37 (GMT) |
---|---|---|
committer | Alan Aguiar <alanjas@hotmail.com> | 2013-12-25 18:16:37 (GMT) |
commit | e8a66fcf4d85d976e2f82829564188e389681f52 (patch) | |
tree | fc629386500aa3f5d5841db5e37563d7f79edf4e /points_list.py | |
parent | e995825e47cadf22de98a80a1390e0ac40c15d8e (diff) |
simplify signals
Diffstat (limited to 'points_list.py')
-rw-r--r-- | points_list.py | 54 |
1 files changed, 43 insertions, 11 deletions
diff --git a/points_list.py b/points_list.py index 142b615..53e05da 100644 --- a/points_list.py +++ b/points_list.py @@ -7,14 +7,14 @@ from gettext import gettext as _ class Data(gtk.TreeView): __gsignals__ = { - 'label-changed': (gobject.SIGNAL_RUN_FIRST, None, [str, str], ), - 'value-changed': (gobject.SIGNAL_RUN_FIRST, None, [str, str], ), } + 'some-changed': (gobject.SIGNAL_RUN_FIRST, None, [str, str], ), } + def __init__(self, activity): gtk.TreeView.__init__(self) - self.model = gtk.ListStore(str, str) + self.model = gtk.ListStore(str, str, str, str) self.set_model(self.model) # Label column @@ -33,17 +33,39 @@ class Data(gtk.TreeView): column = gtk.TreeViewColumn(_("Name")) value = gtk.CellRendererText() value.set_property('editable', True) - value.connect("edited", self._value_changed, self.model, activity) + value.connect("edited", self._value_changed, self.model) column.pack_start(value) column.set_attributes(value, text=1) + column.set_expand(True) + self.append_column(column) + + # dx column + + column = gtk.TreeViewColumn(_("dx")) + value = gtk.CellRendererText() + value.set_property('editable', True) + value.connect("edited", self._dx_changed, self.model) + column.pack_start(value) + column.set_attributes(value, text=2) + self.append_column(column) + + # dy column + + column = gtk.TreeViewColumn(_("dy")) + value = gtk.CellRendererText() + value.set_property('editable', True) + value.connect("edited", self._dy_changed, self.model) + + column.pack_start(value) + column.set_attributes(value, text=3) self.append_column(column) self.set_enable_search(False) self.show_all() - def add_value(self, label, value): + def add_value(self, label, value, dx, dy): selected = self.get_selection().get_selected()[1] if not selected: path = 0 @@ -51,7 +73,7 @@ class Data(gtk.TreeView): elif selected: path = self.model.get_path(selected)[0] + 1 - iter = self.model.insert(path, [label, value]) + iter = self.model.insert(path, [label, value, dx, dy]) self.set_cursor(self.model.get_path(iter), self.get_column(1), @@ -72,23 +94,33 @@ class Data(gtk.TreeView): if path is not None: path = path[0] self.model[path][0] = data - self.emit("label-changed", str(path), data) + self.emit("some-changed", str(path), data) def _label_changed(self, cell, path, new_text, model): model[path][0] = new_text - self.emit("label-changed", str(path), new_text) + self.emit("some-changed", str(path), new_text) - def _value_changed(self, cell, path, new_text, model, activity): + def _value_changed(self, cell, path, new_text, model): model[path][1] = new_text - self.emit("value-changed", str(path), new_text) + self.emit("some-changed", str(path), new_text) + + def _dx_changed(self, cell, path, new_text, model): + model[path][2] = new_text + self.emit("some-changed", str(path), new_text) + + def _dy_changed(self, cell, path, new_text, model): + model[path][3] = new_text + self.emit("some-changed", str(path), new_text) def get_info(self): l = [] for row in self.model: name = row[1] status, pos = self._validate_pos(row[0]) + dx = int(row[2]) + dy = int(row[3]) if status: - l.append((name, pos)) + l.append((name, pos, dx, dy)) return l def _validate_pos(self, pos): |