9 from base64 import b64decode as decode_image
11 ICONS_48_PATH = '/usr/share/icons/hicolor/48x48/hildon/'
12 ICONS_144_PATH = '/usr/share/icons/hicolor/144x144/hildon/'
17 'homePhone': 'general_call.png',
18 'telephoneNumber': 'general_call.png',
19 'internalPhone': 'general_call.png',
20 'mobile': 'call_status_cellular.png',
21 'mail': 'general_email.png',
22 'dateOfBirth': 'calendar_birthday.png',
23 'cn': 'general_default_avatar.png',
24 'sn': 'general_default_avatar.png',
25 'gecos': 'general_default_avatar.png',
26 'givenName': 'general_default_avatar.png',
27 'initials': 'general_default_avatar.png',
28 'o': 'call_split_conference_call.png',
29 'ou': 'call_split_conference_call.png',
30 'uid': 'general_certificate_private_key.png',
31 'uidNumber': 'general_certificate_private_key.png',
32 'employeeNumber': 'general_certificate_private_key.png',
33 'roomNumber': 'general_presence_home.png',
34 'gender': 'camera_scene_mode_portrait.png',
35 'title': 'general_certificate.png',
36 'personalTitle': 'general_certificate.png'}
38 def render_button(self, title, value, field=None):
39 """Set necessary image for field."""
41 button = hildon.Button(gtk.HILDON_SIZE_AUTO | \
42 gtk.HILDON_SIZE_FINGER_HEIGHT, \
43 hildon.BUTTON_ARRANGEMENT_VERTICAL, title, value)
44 button.set_style(hildon.BUTTON_STYLE_PICKER)
45 button.set_alignment(0, 0.5, 0, 0)
47 image = gtk.image_new_from_file(os.path.join(ICONS_48_PATH,
48 self.fields_dict.get(field, 'general_business_card.png')))
49 button.set_image(image)
52 def render_image(self, entry):
53 """Sets entry image."""
55 if not entry.has_key('image'):
56 fname = os.path.join(ICONS_144_PATH, entry.get('image', \
57 'general_default_avatar.png'))
58 image = gtk.image_new_from_file(fname)
60 pixbuf_loader = gtk.gdk.PixbufLoader()
61 pixbuf_loader.write(entry['image'])
63 image = gtk.image_new_from_pixbuf(pixbuf_loader.get_pixbuf())