def value(self):
buf = gtk.gdk.PixbufLoader()
- with self.page.open() as st:
- self.p = 0
- self.st = st
- while True:
- read = st.read(1024)
- if read == "":
- break
- self.p += len(read)
- buf.write(read)
- self.progcb()
- self.st = None
- buf.close()
+ try:
+ with self.page.open() as st:
+ self.p = 0
+ self.st = st
+ while True:
+ read = st.read(1024)
+ if read == "":
+ break
+ self.p += len(read)
+ buf.write(read)
+ self.progcb()
+ self.st = None
+ finally:
+ buf.close()
return buf.get_pixbuf()
@property
self._prog = None
def prog(self, p):
- if p is not None and self._prog is None:
- self._prog = gtk.ProgressBar()
+ if p is not None:
+ if self._prog is None:
+ self._prog = gtk.ProgressBar()
+ self.hlay.pack_start(self._prog, padding=5)
+ self._prog.show()
self._prog.set_fraction(p)
- self.hlay.pack_start(self._prog, padding=5)
- self._prog.show()
elif p is None and self._prog is not None:
self.hlay.remove(self._prog)
self._prog = None