aboutsummaryrefslogtreecommitdiffstats
path: root/gui/__init__.py
diff options
context:
space:
mode:
authorhploetz <hploetz@f711b948-2313-0410-aaa9-d29f33439f0b>2007-06-08 04:54:41 +0000
committerhploetz <hploetz@f711b948-2313-0410-aaa9-d29f33439f0b>2007-06-08 04:54:41 +0000
commit09ab2cbff7782533f595332c7fd3c16cfea76d48 (patch)
treeeb9e4e8d7e2f6e178febce4b02532e490b2a6bd9 /gui/__init__.py
parent893ed749957e7c802534e5f0ec6f67d6b7d24403 (diff)
Picture loading working
git-svn-id: svn+ssh://localhost/home/henryk/svn/cyberflex-shell/trunk@229 f711b948-2313-0410-aaa9-d29f33439f0b
Diffstat (limited to 'gui/__init__.py')
-rw-r--r--gui/__init__.py45
1 files changed, 44 insertions, 1 deletions
diff --git a/gui/__init__.py b/gui/__init__.py
index c5fa2f7..583111a 100644
--- a/gui/__init__.py
+++ b/gui/__init__.py
@@ -7,6 +7,8 @@ class PassportGUI:
"Create and show main window."
self.passport = None
self.format_strings = {}
+ self.images = []
+ self.now_showing = 0
self.main_window_xml = gtk.glade.XML(self.GLADE_FILE, "main")
self.main_window = self.main_window_xml.get_widget("main")
@@ -15,7 +17,7 @@ class PassportGUI:
gtk.main()
def lookup_country(passport, contents):
- return passport.COUNTRY_CODES.get( contents[0], ("Unknown Code", ) )
+ return passport.COUNTRY_CODES.get( contents[0], ("Unknown Code", "") )
def split_name(passport, contents):
return (contents[0][0], " ".join(contents[0][1:]))
@@ -70,3 +72,44 @@ class PassportGUI:
if not self.format_strings.has_key(dst):
self.format_strings[dst] = widget.get_label()
widget.set_label( self.format_strings[dst] % transformed[index] )
+
+ data = []
+ if hasattr(passport, "dg2_cbeff") and passport.dg2_cbeff is not None:
+ for biometric in passport.dg2_cbeff.biometrics:
+ data = data + [(a,b,"Encoded Face") for (a,b) in biometric.get_data()]
+
+ self._set_images(data)
+
+ def _set_images(self, data):
+ self.images = []
+ for type, image_data, description in data:
+ loader = gtk.gdk.PixbufLoader()
+ loader.write(image_data)
+ loader.close()
+ pixbuf = loader.get_pixbuf()
+
+ self.images.append( (pixbuf, description) )
+
+ self.update_image_shown()
+
+ def update_image_shown(self):
+ if self.now_showing >= len(self.images):
+ self.now_showing = len(self.images)-1
+
+ if len(self.images) > 0:
+ pixbuf, description = self.images[self.now_showing]
+ else:
+ self.now_showing = 0
+ pixbuf, description = None, "No image loaded"
+
+ label = self.main_window_xml.get_widget("image_label")
+ if not self.format_strings.has_key("image_label"):
+ self.format_strings["image_label"] = label.get_label()
+ label.set_label( self.format_strings["image_label"] % {
+ "num": len(self.images) > 0 and (self.now_showing+1) or 0,
+ "count": len(self.images),
+ "description": description,
+ } )
+
+ if pixbuf is not None:
+ self.main_window_xml.get_widget("image").set_from_pixbuf(pixbuf)