Browse Source

show alias satus in gui after fetch

283
ThomasV 9 years ago
parent
commit
35aba0c14b
  1. 29
      gui/qt/main_window.py
  2. 6
      gui/qt/paytoedit.py
  3. 4
      gui/qt/util.py
  4. 5
      lib/contacts.py

29
gui/qt/main_window.py

@ -184,13 +184,15 @@ class ElectrumWindow(QMainWindow):
self.qr_window = None self.qr_window = None
self.not_enough_funds = False self.not_enough_funds = False
self.pluginsdialog = None self.pluginsdialog = None
self.fetch_alias_info() self.fetch_alias()
def fetch_alias_info(self): def fetch_alias(self):
self.alias_info = None self.alias_info = None
alias = str(self.config.get('alias')) alias = str(self.config.get('alias'))
if alias: if alias:
f = lambda: setattr(self, 'alias_info', self.contacts.resolve_openalias(alias)) def f():
self.alias_info = self.contacts.resolve_openalias(alias)
self.emit(SIGNAL('alias_received'))
t = threading.Thread(target=f) t = threading.Thread(target=f)
t.setDaemon(True) t.setDaemon(True)
t.start() t.start()
@ -2533,12 +2535,25 @@ class ElectrumWindow(QMainWindow):
+ '\n'.join(['https://cryptoname.co/', 'http://xmr.link']) + '\n\n'\ + '\n'.join(['https://cryptoname.co/', 'http://xmr.link']) + '\n\n'\
+ 'For more information, see http://openalias.org' + 'For more information, see http://openalias.org'
alias_label = HelpLabel(_('Alias') + ':', alias_help) alias_label = HelpLabel(_('Alias') + ':', alias_help)
alias_e = QLineEdit(self.config.get('alias','')) alias = self.config.get('alias','')
def on_alias(): alias_e = QLineEdit(alias)
def set_alias_color():
if self.alias_info:
alias_addr, alias_name, validated = self.alias_info
alias_e.setStyleSheet(GREEN_BG if validated else RED_BG)
else:
alias_e.setStyleSheet(RED_BG)
def on_alias_edit():
alias_e.setStyleSheet("")
alias = str(alias_e.text()) alias = str(alias_e.text())
self.config.set_key('alias', alias, True) self.config.set_key('alias', alias, True)
self.fetch_alias_info() self.fetch_alias()
alias_e.editingFinished.connect(on_alias)
set_alias_color()
self.connect(self, SIGNAL('alias_received'), set_alias_color)
alias_e.editingFinished.connect(on_alias_edit)
tx_widgets.append((alias_label, alias_e)) tx_widgets.append((alias_label, alias_e))
units = ['BTC', 'mBTC', 'bits'] units = ['BTC', 'mBTC', 'bits']

6
gui/qt/paytoedit.py

@ -24,6 +24,8 @@ import re
from decimal import Decimal from decimal import Decimal
from electrum import bitcoin from electrum import bitcoin
import util
RE_ADDRESS = '[1-9A-HJ-NP-Za-km-z]{26,}' RE_ADDRESS = '[1-9A-HJ-NP-Za-km-z]{26,}'
RE_ALIAS = '(.*?)\s*\<([1-9A-HJ-NP-Za-km-z]{26,})\>' RE_ALIAS = '(.*?)\s*\<([1-9A-HJ-NP-Za-km-z]{26,})\>'
@ -64,10 +66,10 @@ class PayToEdit(ScanQRTextEdit):
button.setHidden(b) button.setHidden(b)
def setGreen(self): def setGreen(self):
self.setStyleSheet("QWidget { background-color:#80ff80;}") self.setStyleSheet(util.GREEN_BG)
def setExpired(self): def setExpired(self):
self.setStyleSheet("QWidget { background-color:#ffcccc;}") self.setStyleSheet(util.RED_BG)
def parse_address_and_amount(self, line): def parse_address_and_amount(self, line):
x, y = line.split(',') x, y = line.split(',')

4
gui/qt/util.py

@ -16,6 +16,10 @@ else:
MONOSPACE_FONT = 'monospace' MONOSPACE_FONT = 'monospace'
GREEN_BG = "QWidget {background-color:#80ff80;}"
RED_BG = "QWidget {background-color:#ffcccc;}"
class WaitingDialog(QThread): class WaitingDialog(QThread):
def __init__(self, parent, message, run_task, on_success=None, on_complete=None): def __init__(self, parent, message, run_task, on_success=None, on_complete=None):
QThread.__init__(self) QThread.__init__(self)

5
lib/contacts.py

@ -40,7 +40,10 @@ class Contacts(StoreDict):
def resolve_openalias(self, url): def resolve_openalias(self, url):
# support email-style addresses, per the OA standard # support email-style addresses, per the OA standard
url = url.replace('@', '.') url = url.replace('@', '.')
records, validated = dnssec.query(url, dns.rdatatype.TXT) try:
records, validated = dnssec.query(url, dns.rdatatype.TXT)
except:
return
prefix = 'btc' prefix = 'btc'
for record in records: for record in records:
string = record.strings[0] string = record.strings[0]

Loading…
Cancel
Save