--- /dev/null
+from PyQt4.QtGui import *
+from PyQt4.QtCore import *
+from electrum.i18n import _
+
+class ReceivingWidget(QTreeWidget):
+
+ def toggle_used(self):
+ if self.hide_used:
+ self.hide_used = False
+ self.setColumnHidden(2, False)
+ else:
+ self.hide_used = True
+ self.setColumnHidden(2, True)
+ self.update_list()
+
+ def edit_label(self, item, column):
+ if column == 1 and item.isSelected():
+ self.editing = True
+ item.setFlags(Qt.ItemIsEditable|Qt.ItemIsSelectable | Qt.ItemIsUserCheckable | Qt.ItemIsEnabled | Qt.ItemIsDragEnabled)
+ self.editItem(item, column)
+ item.setFlags(Qt.ItemIsSelectable | Qt.ItemIsUserCheckable | Qt.ItemIsEnabled | Qt.ItemIsDragEnabled)
+ self.editing = False
+
+ def update_label(self, item, column):
+ if self.editing:
+ return
+ else:
+ address = str(item.text(0))
+ label = unicode( item.text(1) )
+ self.owner.actuator.wallet.labels[address] = label
+
+ def copy_address(self):
+ address = self.currentItem().text(0)
+ qApp.clipboard().setText(address)
+
+
+ def update_list(self):
+ self.clear()
+ addresses = self.owner.actuator.wallet.addresses(False)
+ for address in addresses:
+ history = self.owner.actuator.wallet.history.get(address,[])
+
+ used = "No"
+ # It appears that at this moment history can either be an array with tx and block height
+ # Or just a tx that's why this ugly code duplication is in, will fix
+ if len(history) == 1:
+ # This means pruned data. If that's the case the address has to been used at one point
+ if history[0] == "*":
+ used = "Yes"
+ else:
+ for tx_hash in history:
+ tx = self.owner.actuator.wallet.transactions.get(tx_hash)
+ if tx:
+ used = "Yes"
+ else:
+ for tx_hash, height in history:
+ tx = self.owner.actuator.wallet.transactions.get(tx_hash)
+ if tx:
+ used = "Yes"
+
+ if(self.hide_used == True and used == "No") or self.hide_used == False:
+ label = self.owner.actuator.wallet.labels.get(address,'')
+ item = QTreeWidgetItem([address, label, used])
+ self.insertTopLevelItem(0, item)
+
+ def __init__(self, owner=None):
+ self.owner = owner
+ self.editing = False
+
+ QTreeWidget.__init__(self, owner)
+ self.setColumnCount(3)
+ self.setHeaderLabels([_("Address"), _("Label"), _("Used")])
+ self.setIndentation(0)
+
+ self.hide_used = True
+ self.setColumnHidden(2, True)
+ self.update_list()