simplify gui names
[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.wallet.labels[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         self.clear()
39         addresses = self.owner.actuator.wallet.addresses(False)
40         for address in addresses:
41             history = self.owner.actuator.wallet.history.get(address,[])
42
43             used = "No"
44             # It appears that at this moment history can either be an array with tx and block height
45             # Or just a tx that's why this ugly code duplication is in, will fix
46             if len(history) == 1:
47                 # This means pruned data. If that's the case the address has to been used at one point
48                 if history[0] == "*":
49                     used = "Yes"
50                 else:
51                     for tx_hash in history:
52                         tx = self.owner.actuator.wallet.transactions.get(tx_hash)
53                         if tx:
54                             used = "Yes"
55             else:
56                 for tx_hash, height in history:
57                     tx = self.owner.actuator.wallet.transactions.get(tx_hash)
58                     if tx:
59                         used = "Yes"
60
61             if(self.hide_used == True and used == "No") or self.hide_used == False:
62                 label = self.owner.actuator.wallet.labels.get(address,'')
63                 item = QTreeWidgetItem([address, label, used])
64                 self.insertTopLevelItem(0, item)
65
66     def __init__(self, owner=None):
67         self.owner = owner
68         self.editing = False
69
70         QTreeWidget.__init__(self, owner)
71         self.setColumnCount(3)
72         self.setHeaderLabels([_("Address"), _("Label"), _("Used")])
73         self.setIndentation(0)
74
75         self.hide_used = True
76         self.setColumnHidden(2, True)
77         self.update_list()