From: Max Usachev Date: Wed, 9 Jun 2010 14:02:05 +0000 (+0300) Subject: implemented fields selection X-Git-Url: https://vcs.maemo.org/git/?a=commitdiff_plain;h=101a59b08675e03ed01f879a4d3791f8ff3e7612;hp=98c277a27c16341060d6389c98c1b7ecca37677f;p=meabook implemented fields selection --- diff --git a/ui/hildon_ui.py b/ui/hildon_ui.py index 6c424c9..ef89400 100644 --- a/ui/hildon_ui.py +++ b/ui/hildon_ui.py @@ -207,6 +207,8 @@ class ConfigurationDialog: # 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) @@ -217,6 +219,8 @@ class ConfigurationDialog: """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: @@ -229,11 +233,15 @@ class ConfigurationDialog: # 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.""" @@ -253,3 +261,12 @@ class ConfigurationDialog: # 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)