import re
import platform
from decimal import Decimal
+from urllib import quote
from PyQt4.QtGui import *
from PyQt4.QtCore import *
else:
MONOSPACE_FONT = 'monospace'
-column_index = 3
+column_index = 4
class QR_Window(QWidget):
amount_text = ''
if amount:
if currency:
- self.amount = Decimal(amount) / self.exchanger.exchange(1, currency) if currency else amount
+ try:
+ self.amount = Decimal(amount) / self.exchanger.exchange(1, currency) if currency else amount
+ except Exception:
+ self.amount = None
else:
self.amount = Decimal(amount)
self.amount = self.amount.quantize(Decimal('1.0000'))
if currency:
amount_text += "<span style='font-size: 18pt'>%s %s</span><br/>" % (amount, currency)
amount_text += "<span style='font-size: 21pt'>%s</span> <span style='font-size: 16pt'>BTC</span> " % str(self.amount)
+ else:
+ self.amount = None
+
self.amount_label.setText(amount_text)
self.label = label
if self.amount is not None:
msg += '?amount=%s'%(str( self.amount))
if self.label is not None:
- msg += '&label=%s'%(self.label)
+ encoded_label = quote(self.label)
+ msg += '&label=%s'%(encoded_label)
elif self.label is not None:
- msg += '?label=%s'%(self.label)
+ encoded_label = quote(self.label)
+ msg += '?label=%s'%(encoded_label)
self.qrw.set_addr( msg )
self.merchant_name = self.config.get('merchant_name', 'Invoice')
self.window.expert_mode = True
- self.window.receive_list.setHeaderLabels([ _('Address'), _('Label'), _('Balance'), _('Request')])
+ self.window.receive_list.setColumnCount(5)
+ self.window.receive_list.setHeaderLabels([ _('Address'), _('Label'), _('Balance'), _('Tx'), _('Request')])
self.requested_amounts = {}
self.toggle_QR_window(True)
def close(self):
self.window.receive_list.setHeaderLabels([ _('Address'), _('Label'), _('Balance'), _('Tx')])
+ self.window.receive_list.setColumnCount(4)
+ for i,width in enumerate(self.window.column_widths['receive']):
+ self.window.receive_list.setColumnWidth(i, width)
self.toggle_QR_window(False)
def update_receive_item(self, address, item):
try:
amount, currency = self.requested_amounts.get(address, (None, None))
- except:
+ except Exception:
print "cannot get requested amount", address, self.requested_amounts.get(address)
amount, currency = None, None
self.requested_amounts.pop(address)
label = self.wallet.labels.get(address)
try:
amount, currency = self.requested_amounts.get(address, (None, None))
- except:
+ except Exception:
amount, currency = None, None
self.qr_window.set_content( address, label, amount, currency )
try:
seq = self.wallet.get_address_index(address)
index = seq[1][1]
- except:
+ except Exception:
print "cannot get index"
return
text = text.strip().upper()
- print text
+ #print text
m = re.match('^(\d*(|\.\d*))\s*(|BTC|EUR|USD|GBP|CNY|JPY|RUB|BRL)$', text)
if m and m.group(1) and m.group(1)!='.':
amount = m.group(1)
item.setFlags(Qt.ItemIsSelectable | Qt.ItemIsUserCheckable | Qt.ItemIsEnabled | Qt.ItemIsDragEnabled)
- def receive_menu(self, menu):
+ def receive_menu(self, menu, addr):
menu.addAction(_("Request amount"), self.edit_amount)
+ menu.addAction(_("Show Invoice"), lambda: self.toggle_QR_window(True))