various fixes for reveive_requests
This commit is contained in:
@@ -628,6 +628,13 @@ class ElectrumWindow(QMainWindow):
|
|||||||
run_hook('current_item_changed', a)
|
run_hook('current_item_changed', a)
|
||||||
|
|
||||||
|
|
||||||
|
def format_time(self, timestamp):
|
||||||
|
try:
|
||||||
|
time_str = datetime.datetime.fromtimestamp( timestamp).isoformat(' ')[:-3]
|
||||||
|
except Exception:
|
||||||
|
time_str = _("error")
|
||||||
|
return time_str
|
||||||
|
|
||||||
|
|
||||||
def update_history_tab(self):
|
def update_history_tab(self):
|
||||||
|
|
||||||
@@ -636,11 +643,7 @@ class ElectrumWindow(QMainWindow):
|
|||||||
tx_hash, conf, is_mine, value, fee, balance, timestamp = item
|
tx_hash, conf, is_mine, value, fee, balance, timestamp = item
|
||||||
time_str = _("unknown")
|
time_str = _("unknown")
|
||||||
if conf > 0:
|
if conf > 0:
|
||||||
try:
|
time_str = self.format_time(timestamp)
|
||||||
time_str = datetime.datetime.fromtimestamp( timestamp).isoformat(' ')[:-3]
|
|
||||||
except Exception:
|
|
||||||
time_str = _("error")
|
|
||||||
|
|
||||||
if conf == -1:
|
if conf == -1:
|
||||||
time_str = 'unverified'
|
time_str = 'unverified'
|
||||||
icon = QIcon(":icons/unconfirmed.png")
|
icon = QIcon(":icons/unconfirmed.png")
|
||||||
@@ -734,13 +737,12 @@ class ElectrumWindow(QMainWindow):
|
|||||||
self.receive_list.itemClicked.connect(self.receive_item_changed)
|
self.receive_list.itemClicked.connect(self.receive_item_changed)
|
||||||
self.receive_list.setHeaderLabels( [_('Date'), _('Account'), _('Address'), _('Message'), _('Amount')] )
|
self.receive_list.setHeaderLabels( [_('Date'), _('Account'), _('Address'), _('Message'), _('Amount')] )
|
||||||
self.receive_list.setSortingEnabled(True)
|
self.receive_list.setSortingEnabled(True)
|
||||||
self.receive_list.setColumnWidth(0, 130)
|
self.receive_list.setColumnWidth(0, 180)
|
||||||
self.receive_list.hideColumn(1) # the update will show it if necessary
|
self.receive_list.hideColumn(1) # the update will show it if necessary
|
||||||
self.receive_list.setColumnWidth(2, 340)
|
self.receive_list.setColumnWidth(2, 340)
|
||||||
h = self.receive_list.header()
|
h = self.receive_list.header()
|
||||||
h.setStretchLastSection(False)
|
h.setStretchLastSection(False)
|
||||||
h.setResizeMode(1, QHeaderView.Stretch)
|
h.setResizeMode(3, QHeaderView.Stretch)
|
||||||
|
|
||||||
grid.addWidget(self.receive_requests_label, 6, 0)
|
grid.addWidget(self.receive_requests_label, 6, 0)
|
||||||
grid.addWidget(self.receive_list, 7, 0, 1, 6)
|
grid.addWidget(self.receive_list, 7, 0, 1, 6)
|
||||||
return w
|
return w
|
||||||
@@ -750,7 +752,7 @@ class ElectrumWindow(QMainWindow):
|
|||||||
return
|
return
|
||||||
addr = str(item.text(2))
|
addr = str(item.text(2))
|
||||||
req = self.receive_requests[addr]
|
req = self.receive_requests[addr]
|
||||||
date, amount, message = req["date"], req["amount"], req["msg"]
|
time, amount, message = req['time'], req['amount'], req['msg']
|
||||||
self.receive_address_e.setText(addr)
|
self.receive_address_e.setText(addr)
|
||||||
self.receive_message_e.setText(message)
|
self.receive_message_e.setText(message)
|
||||||
self.receive_amount_e.setAmount(amount)
|
self.receive_amount_e.setAmount(amount)
|
||||||
@@ -759,7 +761,7 @@ class ElectrumWindow(QMainWindow):
|
|||||||
def receive_list_delete(self, item):
|
def receive_list_delete(self, item):
|
||||||
addr = str(item.text(2))
|
addr = str(item.text(2))
|
||||||
self.receive_requests.pop(addr)
|
self.receive_requests.pop(addr)
|
||||||
self.wallet.storage.put('receive_requests', self.receive_requests)
|
self.wallet.storage.put('receive_requests2', self.receive_requests)
|
||||||
self.update_receive_tab()
|
self.update_receive_tab()
|
||||||
self.clear_receive_tab()
|
self.clear_receive_tab()
|
||||||
|
|
||||||
@@ -771,16 +773,16 @@ class ElectrumWindow(QMainWindow):
|
|||||||
menu.exec_(self.receive_list.viewport().mapToGlobal(position))
|
menu.exec_(self.receive_list.viewport().mapToGlobal(position))
|
||||||
|
|
||||||
def save_payment_request(self):
|
def save_payment_request(self):
|
||||||
date = time.strftime("%c")
|
timestamp = int(time.time())
|
||||||
addr = str(self.receive_address_e.text())
|
addr = str(self.receive_address_e.text())
|
||||||
amount = self.receive_amount_e.get_amount()
|
amount = self.receive_amount_e.get_amount()
|
||||||
message = unicode(self.receive_message_e.text())
|
message = unicode(self.receive_message_e.text())
|
||||||
if not message and not amount:
|
if not message and not amount:
|
||||||
QMessageBox.warning(self, _('Error'), _('No message or amount'), _('OK'))
|
QMessageBox.warning(self, _('Error'), _('No message or amount'), _('OK'))
|
||||||
return
|
return
|
||||||
self.receive_requests = self.wallet.storage.get('receive_requests',{})
|
self.receive_requests = self.wallet.storage.get('receive_requests2',{})
|
||||||
self.receive_requests[addr] = {"date":date, "amount":amount, "msg":message}
|
self.receive_requests[addr] = {'time':timestamp, 'amount':amount, 'msg':message}
|
||||||
self.wallet.storage.put('receive_requests', self.receive_requests)
|
self.wallet.storage.put('receive_requests2', self.receive_requests)
|
||||||
self.update_receive_tab()
|
self.update_receive_tab()
|
||||||
|
|
||||||
def new_receive_address(self):
|
def new_receive_address(self):
|
||||||
@@ -800,7 +802,7 @@ class ElectrumWindow(QMainWindow):
|
|||||||
self.receive_amount_e.setAmount(None)
|
self.receive_amount_e.setAmount(None)
|
||||||
|
|
||||||
def clear_receive_tab(self):
|
def clear_receive_tab(self):
|
||||||
self.receive_requests = self.wallet.storage.get('receive_requests',{})
|
self.receive_requests = self.wallet.storage.get('receive_requests2',{})
|
||||||
domain = self.wallet.get_account_addresses(self.current_account, include_change=False)
|
domain = self.wallet.get_account_addresses(self.current_account, include_change=False)
|
||||||
for addr in domain:
|
for addr in domain:
|
||||||
if not self.wallet.history.get(addr) and addr not in self.receive_requests.keys():
|
if not self.wallet.history.get(addr) and addr not in self.receive_requests.keys():
|
||||||
@@ -834,7 +836,7 @@ class ElectrumWindow(QMainWindow):
|
|||||||
self.receive_address_e.setText(addr)
|
self.receive_address_e.setText(addr)
|
||||||
|
|
||||||
def update_receive_tab(self):
|
def update_receive_tab(self):
|
||||||
self.receive_requests = self.wallet.storage.get('receive_requests',{})
|
self.receive_requests = self.wallet.storage.get('receive_requests2',{})
|
||||||
|
|
||||||
# hide receive tab if no receive requests available
|
# hide receive tab if no receive requests available
|
||||||
b = len(self.receive_requests) > 0
|
b = len(self.receive_requests) > 0
|
||||||
@@ -842,10 +844,7 @@ class ElectrumWindow(QMainWindow):
|
|||||||
self.receive_requests_label.setVisible(b)
|
self.receive_requests_label.setVisible(b)
|
||||||
|
|
||||||
# check if it is necessary to show the account
|
# check if it is necessary to show the account
|
||||||
if len(self.wallet.get_accounts()) > 1:
|
self.receive_list.setColumnHidden(1, len(self.wallet.get_accounts()) == 1)
|
||||||
self.receive_list.showColumn(1)
|
|
||||||
else:
|
|
||||||
self.receive_list.hideColumn(1)
|
|
||||||
|
|
||||||
# update the receive address if necessary
|
# update the receive address if necessary
|
||||||
current_address = self.receive_address_e.text()
|
current_address = self.receive_address_e.text()
|
||||||
@@ -856,18 +855,12 @@ class ElectrumWindow(QMainWindow):
|
|||||||
# clear the list and fill it again
|
# clear the list and fill it again
|
||||||
self.receive_list.clear()
|
self.receive_list.clear()
|
||||||
for address, req in self.receive_requests.viewitems():
|
for address, req in self.receive_requests.viewitems():
|
||||||
try:
|
timestamp, amount, message = req['time'], req['amount'], req['msg']
|
||||||
date, amount, message = req["date"], req["amount"], req["msg"]
|
|
||||||
except:
|
|
||||||
# REMOVE LATER - fix for current electrum 2.0 wallets
|
|
||||||
# deletes all requests so that you don't need to edit your wallets manually
|
|
||||||
print "removing old receive_requests"
|
|
||||||
self.wallet.storage.put('receive_requests', {})
|
|
||||||
return
|
|
||||||
# only show requests for the current account
|
# only show requests for the current account
|
||||||
if address not in domain:
|
if address not in domain:
|
||||||
continue
|
continue
|
||||||
account = self.wallet.get_account_from_address(address)
|
date = self.format_time(timestamp)
|
||||||
|
account = self.wallet.get_account_name(self.wallet.get_account_from_address(address))
|
||||||
item = QTreeWidgetItem( [ date, account, address, message, self.format_amount(amount) if amount else ""])
|
item = QTreeWidgetItem( [ date, account, address, message, self.format_amount(amount) if amount else ""])
|
||||||
item.setFont(2, QFont(MONOSPACE_FONT))
|
item.setFont(2, QFont(MONOSPACE_FONT))
|
||||||
self.receive_list.addTopLevelItem(item)
|
self.receive_list.addTopLevelItem(item)
|
||||||
|
|||||||
@@ -483,10 +483,10 @@ class Abstract_Wallet(object):
|
|||||||
return addr_list
|
return addr_list
|
||||||
|
|
||||||
def get_account_from_address(self, addr):
|
def get_account_from_address(self, addr):
|
||||||
"Returns the account name that contains this address, or None"
|
"Returns the account that contains this address, or None"
|
||||||
for acc_id in self.accounts: # similar to get_address_index but simpler
|
for acc_id in self.accounts: # similar to get_address_index but simpler
|
||||||
if addr in self.get_account_addresses(acc_id):
|
if addr in self.get_account_addresses(acc_id):
|
||||||
return self.get_account_name(acc_id)
|
return acc_id
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def get_account_balance(self, account):
|
def get_account_balance(self, account):
|
||||||
|
|||||||
Reference in New Issue
Block a user