wallet.is_used() method
authorThomasV <thomasv@gitorious>
Mon, 12 May 2014 09:28:00 +0000 (11:28 +0200)
committerThomasV <thomasv@gitorious>
Mon, 12 May 2014 09:28:00 +0000 (11:28 +0200)
gui/qt/main_window.py
lib/wallet.py

index b873546..6fec9f2 100644 (file)
@@ -1187,6 +1187,7 @@ class ElectrumWindow(QMainWindow):
         l = self.receive_list
         # extend the syntax for consistency
         l.addChild = l.addTopLevelItem
+        l.insertChild = l.insertTopLevelItem
 
         l.clear()
         for i,width in enumerate(self.column_widths['receive']):
@@ -1229,23 +1230,21 @@ class ElectrumWindow(QMainWindow):
                 gap = 0
 
                 for address in account.get_addresses(is_change):
-                    h = self.wallet.history.get(address,[])
 
-                    if h == []:
+                    num, is_used = self.wallet.is_used(address)
+                    if num == 0:
                         gap += 1
                         if gap > self.wallet.gap_limit:
                             is_red = True
                     else:
                         gap = 0
 
-                    c, u = self.wallet.get_addr_balance(address)
-                    num_tx = '*' if h == ['*'] else "%d"%len(h)
-
-                    item = QTreeWidgetItem( [ address, '', '', num_tx] )
+                    item = QTreeWidgetItem( [ address, '', '', "%d"%num] )
                     self.update_receive_item(item)
                     if is_red:
                         item.setBackgroundColor(1, QColor('red'))
-                    if len(h) > 0 and c == -u:
+
+                    if is_used:
                         if not used_flag:
                             seq_item.insertChild(0,used_item)
                             used_flag = True
index 0509913..48cbaae 100644 (file)
@@ -1073,6 +1073,10 @@ class Abstract_Wallet:
     def can_import(self):
         return not self.is_watching_only()
 
+    def is_used(self, address):
+        h = self.history.get(address,[])
+        c, u = self.get_addr_balance(address)
+        return len(h), len(h) > 0 and c == -u
     
 
 class Imported_Wallet(Abstract_Wallet):
@@ -1098,6 +1102,9 @@ class Imported_Wallet(Abstract_Wallet):
     def check_password(self, password):
         self.accounts[IMPORTED_ACCOUNT].get_private_key((0,0), self, password)
 
+    def is_used(self, address):
+        h = self.history.get(address,[])
+        return len(h), False
 
 
 class Deterministic_Wallet(Abstract_Wallet):