Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAgustin Zubiaga <aguz@sugarlabs.org>2012-09-29 05:07:18 (GMT)
committer Agustin Zubiaga <aguz@sugarlabs.org>2012-09-29 05:07:18 (GMT)
commit2d36abffd423f680ba3ef4592176008c60efa572 (patch)
tree0087ba16695cc341b49a7dfe96e4aebad68c6461
parentfa5fe4183144c4420df62a5ff632d2901055d969 (diff)
Add move up/down buttons
Signed-off-by: Agustin Zubiaga <aguz@sugarlabs.org>
-rw-r--r--activity.py49
1 files changed, 48 insertions, 1 deletions
diff --git a/activity.py b/activity.py
index d0e9816..69ea150 100644
--- a/activity.py
+++ b/activity.py
@@ -324,6 +324,21 @@ class ChartActivity(activity.Activity):
box.pack_start(scroll, True, True, 0)
+ liststore_toolbar = Gtk.Toolbar()
+
+ move_up = ToolButton('go-up')
+ move_up.set_tooltip(_('Move up'))
+ move_up.connect('clicked', self._move_up)
+
+ move_down = ToolButton('go-down')
+ move_down.set_tooltip(_('Move down'))
+ move_down.connect('clicked', self._move_down)
+
+ liststore_toolbar.insert(move_up, 0)
+ liststore_toolbar.insert(move_down, 1)
+
+ box.pack_end(liststore_toolbar, False, False, 0)
+
paned.add1(box)
# CHARTS AREA
@@ -466,6 +481,20 @@ class ChartActivity(activity.Activity):
self.chart_data[path] = (self.chart_data[path][0], float(new_value))
self._update_chart_data()
+ def _move_up(self, widget):
+ old, new = self.labels_and_values.move_up()
+ _object = self.chart_data[old]
+ self.chart_data.remove(_object)
+ self.chart_data.insert(new, _object)
+ self._update_chart_data()
+
+ def _move_down(self, widget):
+ old, new = self.labels_and_values.move_down()
+ _object = self.chart_data[old]
+ self.chart_data.remove(_object)
+ self.chart_data.insert(new, _object)
+ self._update_chart_data()
+
def _set_h_label(self, widget):
new_text = widget.get_text()
@@ -657,7 +686,7 @@ class ChartData(Gtk.TreeView):
self.model = Gtk.ListStore(str, str)
self.set_model(self.model)
-
+
# TreeSelection
self._selection = self.get_selection()
self._selection.set_mode(Gtk.SelectionMode.SINGLE)
@@ -717,6 +746,24 @@ class ChartData(Gtk.TreeView):
return value
+ def move_up(self):
+ selected_iter = self._selection.get_selected()[1]
+ position = self.model.get_iter(int(str(self.model.get_path(selected_iter))) - 1)
+ self.model.move_before(selected_iter, position)
+
+ selected_path = int(str(self.model.get_path(selected_iter)))
+ new_position_path = int(str(self.model.get_path(position)))
+ return (selected_path, new_position_path)
+
+ def move_down(self):
+ selected_iter = self._selection.get_selected()[1]
+ position = self.model.iter_next(selected_iter)
+ self.model.move_after(selected_iter, position)
+
+ selected_path = int(str(self.model.get_path(selected_iter)))
+ new_position_path = int(str(self.model.get_path(position)))
+ return (selected_path, new_position_path)
+
def _label_changed(self, cell, path, new_text, model):
_logger.info('Change "%s" to "%s"' % (model[path][0], new_text))
model[path][0] = new_text