adapted code for using renderers
authorMax Usachev <maxusachev@gmail.com>
Thu, 17 Jun 2010 06:07:42 +0000 (09:07 +0300)
committerMax Usachev <maxusachev@gmail.com>
Thu, 17 Jun 2010 06:07:42 +0000 (09:07 +0300)
controller.py
factory.py
meabook
ui/hildon_ui.py
ui/ui.py

index e160e8f..8c5da4f 100644 (file)
@@ -8,10 +8,10 @@ _ = gettext.gettext
 
 
 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):
index 20775ff..a55e0f9 100644 (file)
@@ -4,8 +4,9 @@ UI factory
 
 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
diff --git a/meabook b/meabook
index d4fa9d5..bcaceb7 100755 (executable)
--- a/meabook
+++ b/meabook
@@ -2,6 +2,10 @@
 
 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
@@ -44,9 +48,9 @@ def main(argv):
         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__":
index 25e7a1c..918fb66 100644 (file)
@@ -22,8 +22,8 @@ def create_button(title, value):
 
 
 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'))
@@ -89,7 +89,7 @@ class HildonMeabook(MeabookUI):
             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
@@ -118,7 +118,7 @@ class HildonMeabook(MeabookUI):
             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()
index 8b3cd4c..4f97ea7 100644 (file)
--- a/ui/ui.py
+++ b/ui/ui.py
@@ -3,8 +3,9 @@ General Meabook UI
 """
 
 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):