# create other widgets
self.window.set_app_menu(menu)
self.selector = hildon.TouchSelector(text=True)
+ self.callback_id = self.selector.connect('changed', \
+ self.save_selected_fields)
self.pannable_area = hildon.PannableArea()
vbox = gtk.VBox()
vbox.pack_start(self.selector)
"""Shows dialog for selecting necessary items."""
self.pannable_area.hide()
+ # blocks 'change' event for selector
+ self.selector.handler_block(self.callback_id)
# fill items list
for item in items:
# mark necessary items
items_to_select = self.config.get_fields()
model = self.selector.get_model(0)
- for index, item in enumerate(items_to_select):
- self.selector.select_iter(0, model.get_iter(index), False)
+ for index, item in enumerate(items):
+ if item in items_to_select:
+ self.selector.select_iter(0, model.get_iter(index), False)
self.selector.show()
+ # reconnect signal
+ self.selector.connect('changed', self.save_selected_fields)
+
def show_order_settings(self, widget, items):
"""Shows dialog for selecting items order."""
# activate first tab
# FIXME: read from config
self.window.show_all()
+ self.button_items.set_active(True)
+
+ def save_selected_fields(self, widget, column):
+ """Save selected choice."""
+
+ model = self.selector.get_model(0)
+ selected_items = [model[index][0] for index in [item[0] for item in \
+ self.selector.get_selected_rows(0)]]
+ self.config.set_fields(selected_items)