class MeabookController:
- def __init__(self, model, view_class, config):
+ def __init__(self, model, view_class, renderer_class, config):
self.config = config
self.model = model
- self.view = view_class(self, self.config)
+ self.view = view_class(self, renderer_class(), self.config)
self.view.start()
def stop(self):
def app_factory(interface=None):
if not interface or interface == 'hildon':
- from ui.hildon_ui import HildonMeabook
- return HildonMeabook
+ from meabook.ui.hildon_ui import HildonMeabook
+ from meabook.renderers.hildon_renderer import HildonRenderer
+ return HildonMeabook, HildonRenderer
elif interface == 'text':
from ui.text_ui import TextMeabook
return TextMeabook
import os
import sys
+import gettext
+gettext.bindtextdomain('meabook', '/usr/share/locale/ru_RU/LC_MESSAGES')
+gettext.textdomain('meabook')
+_ = gettext.gettext
from optparse import OptionParser
# add meabook directory to Python path in debug mode
basedir = os.path.join(os.environ['HOME'], '.meabook')
model = SQLite(basedir)
- view = app_factory(opts.ui)
+ view, renderer = app_factory(opts.ui)
config = MeabookConfig(basedir, model)
- controller = MeabookController(model, view, config)
+ controller = MeabookController(model, view, renderer, config)
if __name__ == "__main__":
class HildonMeabook(MeabookUI):
- def __init__(self, controller, config):
- MeabookUI.__init__(self, controller, config)
+ def __init__(self, controller, renderer, config):
+ MeabookUI.__init__(self, controller, renderer, config)
self.handler = None
self.window = hildon.StackableWindow()
self.window.set_title(_('Meabook'))
model.append((name, internal_name, item_type))
if selector.get_num_columns():
selector.remove_column(0)
- selector.append_text_column(model, True)
+ selector.append_text_column(model, False)
selector.unselect_all(0)
# reconnect callback
pannable_area = hildon.PannableArea()
vbox = gtk.VBox()
for fname, fvalue in self.controller.get_item(entry_id):
- button = create_button(_(fname) , fvalue)
+ button = self.renderer.render_button(_(fname) , fvalue, fname)
vbox.pack_start(button, expand=False)
pannable_area.add_with_viewport(vbox)
child = window.get_child()
"""
class MeabookUI:
- def __init__(self, controller, config):
+ def __init__(self, controller, renderer, config):
self.config = config
+ self.renderer = renderer
self.controller = controller
def start(self):