From 4b8b6fa7a5a2be7fd2ed64493b9a2cfca128878e Mon Sep 17 00:00:00 2001 From: Max Usachev Date: Tue, 22 Jun 2010 12:05:51 +0300 Subject: [PATCH] implemented phone calls --- constants.py | 4 ++++ controller.py | 7 +++++++ ui/hildon_ui.py | 11 +++++++++++ 3 files changed, 22 insertions(+) diff --git a/constants.py b/constants.py index 57af873..e3ec0cb 100644 --- a/constants.py +++ b/constants.py @@ -6,3 +6,7 @@ TYPE_FILE = 'f' FIELD_TOPLEVEL = 'o' FIELD_MIDDLELEVEL = 'ou' FIELD_LOWLEVEL = 'cn' +FIELD_PHONE_HOME = 'homePhone' +FIELD_PHONE_GENERAL = 'telephoneNumber' +FIELD_PHONE_INTERNAL = 'internalPhone' +FIELD_PHONE_MOBILE = 'mobile' diff --git a/controller.py b/controller.py index 54f579d..a451a30 100644 --- a/controller.py +++ b/controller.py @@ -3,12 +3,14 @@ Meabook controller class """ from meabook.constants import * +from meabook.caller import PhoneCaller from gettext import gettext as _ class MeabookController: def __init__(self, model, view_class, renderer_class, config): self.config = config + self.caller = PhoneCaller() self.model = model self.view = view_class(self, renderer_class(), self.config) self.view.start() @@ -19,6 +21,11 @@ class MeabookController: self.config.save() self.model.close() + def call(self, number): + """Make a phone call.""" + + self.caller.call(number) + def get_items(self, parent=0): """Gets from model items with selected level.""" diff --git a/ui/hildon_ui.py b/ui/hildon_ui.py index c21b5a9..c280dd7 100644 --- a/ui/hildon_ui.py +++ b/ui/hildon_ui.py @@ -7,6 +7,7 @@ import hildon import gobject from gettext import gettext as _ from meabook.constants import * +from meabook.caller import PhoneCaller from meabook.ui.ui import MeabookUI @@ -50,6 +51,8 @@ def set_box_content(box, handler, items=[]): def on_button_click(widget): handler(widget.get_title(), widget.get_data('iname')) + #caller = PhoneCaller() + #caller.call(widget.get_value()) for child in box.get_children(): box.remove(child) @@ -197,6 +200,9 @@ class HildonMeabook(MeabookUI): if fname == 'image': continue button = self.renderer.render_button(_(fname) , fvalue, fname) + if fname in (FIELD_PHONE_HOME, FIELD_PHONE_GENERAL, \ + FIELD_PHONE_INTERNAL, FIELD_PHONE_MOBILE): + button.connect('clicked', self.call_cb) info_box.pack_start(button, expand=False) # pack widgets image_box.pack_start(image, expand=False) @@ -347,6 +353,11 @@ class HildonMeabook(MeabookUI): self.search_entry.set_text('') set_box_content(self.box, None) + def call_cb(self, widget): + """Nake a phone call.""" + + self.controller.call(widget.get_value()) + class AboutDialog(hildon.Dialog): -- 1.7.9.5