add rate conversion to receive tab

This commit is contained in:
ThomasV 2015-03-14 19:47:57 +01:00
parent 66de592343
commit 38e4eeef95
2 changed files with 30 additions and 20 deletions

View File

@ -732,7 +732,7 @@ class ElectrumWindow(QMainWindow):
def create_receive_tab(self): def create_receive_tab(self):
w = QWidget() w = QWidget()
grid = QGridLayout(w) self.receive_grid = grid = QGridLayout(w)
grid.setColumnMinimumWidth(3, 300) grid.setColumnMinimumWidth(3, 300)
self.receive_address_e = QLineEdit() self.receive_address_e = QLineEdit()

View File

@ -440,7 +440,8 @@ class Plugin(BasePlugin):
self.exchanger = Exchanger(self) self.exchanger = Exchanger(self)
self.exchanger.start() self.exchanger.start()
self.gui.exchanger = self.exchanger # self.gui.exchanger = self.exchanger #
self.add_fiat_edit() self.add_send_edit()
self.add_receive_edit()
self.win.update_status() self.win.update_status()
def close(self): def close(self):
@ -735,33 +736,42 @@ class Plugin(BasePlugin):
def fiat_unit(self): def fiat_unit(self):
return self.config.get("currency", "EUR") return self.config.get("currency", "EUR")
def add_fiat_edit(self): def add_send_edit(self):
self.fiat_e = AmountEdit(self.fiat_unit) fiat_e = AmountEdit(self.fiat_unit)
self.btc_e = self.win.amount_e btc_e = self.win.amount_e
grid = self.btc_e.parent() fee_e = self.win.fee_e
self.connect_fields(btc_e, fiat_e, fee_e)
self.win.send_grid.addWidget(fiat_e, 4, 3, Qt.AlignHCenter)
btc_e.frozen.connect(lambda: fiat_e.setFrozen(btc_e.isReadOnly()))
def add_receive_edit(self):
fiat_e = AmountEdit(self.fiat_unit)
btc_e = self.win.receive_amount_e
self.connect_fields(btc_e, fiat_e, None)
self.win.receive_grid.addWidget(fiat_e, 2, 3, Qt.AlignHCenter)
def connect_fields(self, btc_e, fiat_e, fee_e):
def fiat_changed(): def fiat_changed():
try: try:
fiat_amount = Decimal(str(self.fiat_e.text())) fiat_amount = Decimal(str(fiat_e.text()))
except: except:
self.btc_e.setText("") btc_e.setText("")
self.win.fee_e.setText("") if fee_e: fee_e.setText("")
return return
exchange_rate = self.exchanger.exchange(Decimal("1.0"), self.fiat_unit()) exchange_rate = self.exchanger.exchange(Decimal("1.0"), self.fiat_unit())
if exchange_rate is not None: if exchange_rate is not None:
btc_amount = fiat_amount/exchange_rate btc_amount = fiat_amount/exchange_rate
self.btc_e.setAmount(int(btc_amount*Decimal(100000000))) btc_e.setAmount(int(btc_amount*Decimal(100000000)))
self.win.update_fee(False) if fee_e: self.win.update_fee(False)
self.fiat_e.textEdited.connect(fiat_changed) fiat_e.textEdited.connect(fiat_changed)
def btc_changed(): def btc_changed():
btc_amount = self.btc_e.get_amount() btc_amount = btc_e.get_amount()
if btc_amount is None: if btc_amount is None:
self.fiat_e.setText("") fiat_e.setText("")
return return
fiat_amount = self.exchanger.exchange(Decimal(btc_amount)/Decimal(100000000), self.fiat_unit()) fiat_amount = self.exchanger.exchange(Decimal(btc_amount)/Decimal(100000000), self.fiat_unit())
if fiat_amount is not None: if fiat_amount is not None:
pos = self.fiat_e.cursorPosition() pos = fiat_e.cursorPosition()
self.fiat_e.setText("%.2f"%fiat_amount) fiat_e.setText("%.2f"%fiat_amount)
self.fiat_e.setCursorPosition(pos) fiat_e.setCursorPosition(pos)
self.btc_e.textEdited.connect(btc_changed) btc_e.textEdited.connect(btc_changed)
self.btc_e.frozen.connect(lambda: self.fiat_e.setFrozen(self.btc_e.isReadOnly()))
self.win.send_grid.addWidget(self.fiat_e, 4, 3, Qt.AlignHCenter)