URI: 
       tdisplay more accurate error messages - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit 94c6a1f6cf00f7587eb65d91c322adebd6ca0454
   DIR parent ee396a063303a341c6615904561b8ac2b4531797
  HTML Author: thomasv <thomasv@gitorious>
       Date:   Wed,  8 Feb 2012 14:13:11 +0100
       
       display more accurate error messages
       
       Diffstat:
         M client/gui.py                       |      13 ++++++++-----
         M client/interface.py                 |      10 ++++++++--
       
       2 files changed, 16 insertions(+), 7 deletions(-)
       ---
   DIR diff --git a/client/gui.py b/client/gui.py
       t@@ -1128,16 +1128,19 @@ class BitcoinGUI:
                if self.funds_error:
                    text = "Not enough funds"
                elif self.wallet.interface.is_connected:
       -            if self.wallet.interface.blocks > 0:
       +            self.network_button.set_tooltip_text("Connected to %s.\n%d blocks\nresponse time: %f"%(self.wallet.interface.host, self.wallet.interface.blocks, self.wallet.interface.rtime))
       +            if self.wallet.interface.blocks == 0:
       +                self.status_image.set_from_stock(gtk.STOCK_STOP, gtk.ICON_SIZE_MENU)
       +                text = "Server not ready"
       +            elif not self.wallet.interface.was_polled:
       +                self.status_image.set_from_stock(gtk.STOCK_STOP, gtk.ICON_SIZE_MENU)
       +                text = "Synchronizing..."
       +            else:
                        self.status_image.set_from_stock(gtk.STOCK_YES, gtk.ICON_SIZE_MENU)
                        self.network_button.set_tooltip_text("Connected to %s.\n%d blocks\nresponse time: %f"%(self.wallet.interface.host, self.wallet.interface.blocks, self.wallet.interface.rtime))
                        c, u = self.wallet.get_balance()
                        text =  "Balance: %s "%( format_satoshis(c) )
                        if u: text +=  "[%s unconfirmed]"%( format_satoshis(u,True) )
       -            else:
       -                self.status_image.set_from_stock(gtk.STOCK_STOP, gtk.ICON_SIZE_MENU)
       -                self.network_button.set_tooltip_text("Connected to %s.\n%d blocks\nresponse time: %f"%(self.wallet.interface.host, self.wallet.interface.blocks, self.wallet.interface.rtime))
       -                text = "Server not ready"
                else:
                    self.status_image.set_from_stock(gtk.STOCK_NO, gtk.ICON_SIZE_MENU)
                    self.network_button.set_tooltip_text("Trying to contact %s.\n%d blocks"%(self.wallet.interface.host, self.wallet.interface.blocks))
   DIR diff --git a/client/interface.py b/client/interface.py
       t@@ -33,6 +33,7 @@ class Interface:
                self.set_port(50000)
                self.is_connected = False
                self.was_updated = True # fixme: use a semaphore
       +        self.was_polled = False # True after the first poll
        
            def set_port(self, port_number):
                self.port = port_number
       t@@ -102,12 +103,14 @@ class Interface:
                blocks, changed_addr = ast.literal_eval( out )
                if blocks == -1: raise BaseException("session not found")
                self.blocks = int(blocks)
       +        if changed_addr: self.was_updated = True
       +        self.was_polled = True
                return changed_addr
        
            def new_session(self, addresses, version):
       +        self.was_polled = False
                out = self.handler('session.new', [ version, addresses ] )
                self.session_id, self.message = ast.literal_eval( out )
       -        self.was_updated = True
        
            def update_session(self, addresses):
                out = self.handler('session.update', [ self.session_id, addresses ] )
       t@@ -144,6 +147,10 @@ class Interface:
                        self.is_connected = False
                        self.new_session(wallet.all_addresses(), wallet.electrum_version)
                        self.update_session = False
       +            except socket.error:
       +                print "Not connected"
       +                time.sleep(self.poll_interval())
       +                continue
                    except:
                        traceback.print_exc(file=sys.stdout)
                        time.sleep(self.poll_interval())
       t@@ -163,7 +170,6 @@ class Interface:
                            # define a method to update the list
                            if self.update_wallet(wallet):
                                self.update_session( wallet.all_addresses() )
       -                        self.was_updated = True  # for gui
        
                            time.sleep(self.poll_interval())
                        except BaseException: