class HildonMeabook(MeabookUI):
- def __init__(self, controller):
- MeabookUI.__init__(self, controller)
+ def __init__(self, controller, config):
+ MeabookUI.__init__(self, controller, config)
self.handler = None
self.window = hildon.StackableWindow()
self.window.set_title(_('Meabook'))
self._set_selector_content(selector, handler, items)
window.show_all()
- def _show_item_dialog(self, title, entry):
+ def _show_item_dialog(self, title, entry_id):
"""Shows detailed item information."""
+ def show_settings_dialog(widget, parent, func1, func2, entry_id):
+ dialog = ConfigurationDialog(self.controller, self.config)
+ getattr(dialog, func1)(None, parent)
+ func2(parent, entry_id)
+
+ def update_entry(window, entry_id):
+ pannable_area = hildon.PannableArea()
+ vbox = gtk.VBox()
+ for fname, fvalue in self.controller.get_item(entry_id):
+ button = create_button(_(fname) , fvalue)
+ vbox.pack_start(button, expand=False)
+ pannable_area.add_with_viewport(vbox)
+ child = window.get_child()
+ if child:
+ child.destroy()
+ window.add(pannable_area)
+ pannable_area.show_all()
+
+
+ # create widgets
window = hildon.StackableWindow()
window.set_title(title)
- pannable_area = hildon.PannableArea()
- vbox = gtk.VBox()
-
- for fname, fvalue in entry:
- button = create_button(_(fname) , fvalue)
- vbox.pack_start(button, expand=False)
-
- pannable_area.add_with_viewport(vbox)
- window.add(pannable_area)
+ menu = hildon.AppMenu()
+ fields_button = hildon.Button(gtk.HILDON_SIZE_AUTO, \
+ hildon.BUTTON_ARRANGEMENT_HORIZONTAL, _('Fields to show'))
+ order_button = hildon.Button(gtk.HILDON_SIZE_AUTO, \
+ hildon.BUTTON_ARRANGEMENT_HORIZONTAL, _('Fields order'))
+ fields_button.connect('clicked', show_settings_dialog, window, \
+ 'show_fields_settings_cb', update_entry, entry_id)
+ order_button.connect('clicked', show_settings_dialog, window, \
+ 'show_order_settings_cb', update_entry, entry_id)
+ menu.append(fields_button)
+ menu.append(order_button)
+
+ update_entry(window, entry_id)
+ window.set_app_menu(menu)
+ menu.show_all()
window.show_all()
self._unfreeze_ui()
def create_configuration_dialog(self, controller, config):
- ConfigurationDialog(controller, config)
+ dialog = ConfigurationDialog(controller, config)
+ dialog.run()
# Hildon UI callbacks
self._show_items_dialog(_iter[0], self.controller.get_items(\
_iter[1]))
else:
- self._show_item_dialog(_iter[0], self.controller.get_item(_iter[1]))
+ #self._show_item_dialog(_iter[0], self.controller.get_item(_iter[1]))
+ self._show_item_dialog(_iter[0], _iter[1])
self.config = config
self.controller = controller
+ def run(self):
dialog = hildon.Dialog()
dialog.set_title(_('Settings'))