- Added progress bar in Diablo UI.
authorDanny Campbell <danny.campbell@gmail.com>
Tue, 20 Apr 2010 12:13:41 +0000 (06:13 -0600)
committerDanny Campbell <danny.campbell@gmail.com>
Tue, 20 Apr 2010 12:13:41 +0000 (06:13 -0600)
- Changed the functionality of fetchimg so that it has a callback
  mechanism to report progress. (However, I'm not quite sure how
  to hook it up to the UI.)

fetchimg.py
imgs/avatar.jpg [deleted file]
imgs/error.jpg
ui/diablo/ui.py

index 1c5d730..d6d1939 100644 (file)
@@ -19,15 +19,14 @@ def portrait_filename( char_id, img_size ):
         return filename
 
     # specify size and cid --danny
-    try:
-        img_url = "http://img.eve.is/serv.asp?s=%s&c=%s" % ( str( img_size ), char_id )
-        img = urllib.urlopen( img_url ).read()
-    except IOError:
-        return err_img
-
-    # write it, and hit the road. --danny
+    img_url = "http://img.eve.is/serv.asp?s=%s&c=%s" % ( str( img_size ), char_id )
 
-    fp = open( filename, 'w' )
-    fp.write( img )
-    fp.close()
+    # fetch it, and hit the road. --danny
+    try:
+        urllib.urlretrieve( img_url, filename, report_handler )
+    except ContentTooShortError:
+        filename = err_img
     return filename
+
+def report_handler( *a ):
+    ( blocks_transferred, block_size, total_size ) = a
diff --git a/imgs/avatar.jpg b/imgs/avatar.jpg
deleted file mode 100644 (file)
index 9a609d8..0000000
Binary files a/imgs/avatar.jpg and /dev/null differ
index b997eca..e8a7b9a 100644 (file)
Binary files a/imgs/error.jpg and b/imgs/error.jpg differ
index 6c98310..9205ff0 100644 (file)
@@ -25,6 +25,9 @@ class mEveMonUI():
         # create the main window
         win = hildon.Window()
         win.connect("destroy", self.controller.quit)
+        win.show_all()
+        progress_bar = hildon.hildon_banner_show_progress(win, None, "Loading overview...")
+        progress_bar.set_fraction( 0.4 )
 
         # Create menu
         menu = self.create_menu(win)
@@ -40,11 +43,16 @@ class mEveMonUI():
 
         win.add(treeview)
         win.show_all()
+
+        progress_bar.set_fraction( 1 )
+        progress_bar.destroy()
   
     def build_window(self, treeview, path, view_column):
         win = hildon.Window()
         win.show_all() 
-        #hildon.hildon_gtk_window_set_progress_indicator(win, 1)
+
+        progress_bar = hildon.hildon_banner_show_progress(win, None, "Loading character sheet...")
+        progress_bar.set_fraction( 0.4 )
 
         # Create menu
         # NOTE: we probably want a window-specific menu for this page, but the
@@ -109,7 +117,8 @@ class mEveMonUI():
         win.add(vbox)
         win.show_all()
 
-        #hildon.hildon_gtk_window_set_progress_indicator(win, 0)
+        progress_bar.set_fraction( 1 )
+        progress_bar.destroy()
 
     def create_char_model(self):
         lstore = gtk.ListStore(gtk.gdk.Pixbuf, gobject.TYPE_STRING)
@@ -119,8 +128,6 @@ class mEveMonUI():
 
     def fill_char_model(self, lstore):
         char_list = self.controller.get_characters()
-        #char_list = [("Character 1", "avatar.png"), ("Character 2", "avatar.png")]
-
         for name, icon in char_list:
             liter = lstore.append()
             lstore.set(liter, 1, name, 0, self.set_pix(icon))