c35fc51af5c7fa8b59e8d525c71c1990d58ec4d0
[electrum-nvc.git] / gui / qt / receiving_widget.py
1 from PyQt4.QtGui import *
2 from PyQt4.QtCore import *
3 from electrum.i18n import _
4
5 class ReceivingWidget(QTreeWidget):
6
7     def toggle_used(self):
8         if self.hide_used:
9             self.hide_used = False
10             self.setColumnHidden(2, False)
11         else:
12             self.hide_used = True
13             self.setColumnHidden(2, True)
14         self.update_list()
15
16     def edit_label(self, item, column):
17       if column == 1 and item.isSelected():
18         self.editing = True
19         item.setFlags(Qt.ItemIsEditable|Qt.ItemIsSelectable | Qt.ItemIsUserCheckable | Qt.ItemIsEnabled | Qt.ItemIsDragEnabled)
20         self.editItem(item, column)
21         item.setFlags(Qt.ItemIsSelectable | Qt.ItemIsUserCheckable | Qt.ItemIsEnabled | Qt.ItemIsDragEnabled)
22         self.editing = False
23
24     def update_label(self, item, column):
25       if self.editing: 
26           return
27       else:
28           address = str(item.text(0))
29           label = unicode( item.text(1) )
30           self.owner.actuator.g.wallet.set_label(address, label)
31
32     def copy_address(self):
33         address = self.currentItem().text(0)
34         qApp.clipboard().setText(address)
35         
36
37     def update_list(self):
38         return
39         self.clear()
40         addresses = self.owner.actuator.g.wallet.addresses(False)
41         for address in addresses:
42             history = self.owner.actuator.g.wallet.history.get(address,[])
43
44             used = "No"
45             # It appears that at this moment history can either be an array with tx and block height
46             # Or just a tx that's why this ugly code duplication is in, will fix
47             if len(history) == 1:
48                 # This means pruned data. If that's the case the address has to been used at one point
49                 if history[0] == "*":
50                     used = "Yes"
51                 else:
52                     for tx_hash in history:
53                         tx = self.owner.actuator.g.wallet.transactions.get(tx_hash)
54                         if tx:
55                             used = "Yes"
56             else:
57                 for tx_hash, height in history:
58                     tx = self.owner.actuator.g.wallet.transactions.get(tx_hash)
59                     if tx:
60                         used = "Yes"
61
62             if(self.hide_used == True and used == "No") or self.hide_used == False:
63                 label = self.owner.actuator.g.wallet.labels.get(address,'')
64                 item = QTreeWidgetItem([address, label, used])
65                 self.insertTopLevelItem(0, item)
66
67     def __init__(self, owner=None):
68         self.owner = owner
69         self.editing = False
70
71         QTreeWidget.__init__(self, owner)
72         self.setColumnCount(3)
73         self.setHeaderLabels([_("Address"), _("Label"), _("Used")])
74         self.setIndentation(0)
75
76         self.hide_used = True
77         self.setColumnHidden(2, True)