AmountEdit:get_amount
[electrum-nvc.git] / plugins / exchange_rate.py
index 5128e43..f8713a7 100644 (file)
@@ -642,22 +642,24 @@ class Plugin(BasePlugin):
         self.btc_e = self.win.amount_e
         grid = self.btc_e.parent()
         def fiat_changed():
-            fiat_amount = str(self.fiat_e.text())
-            if fiat_amount in ["", "."]:
+            try:
+                fiat_amount = Decimal(str(self.fiat_e.text()))
+            except:
                 self.btc_e.setText("")
                 return
             exchange_rate = self.exchanger.exchange(Decimal("1.0"), self.fiat_unit())
             if exchange_rate is not None:
-                btc_amount = Decimal(fiat_amount) / exchange_rate
+                btc_amount = fiat_amount/exchange_rate
                 self.btc_e.setAmount(int(btc_amount*Decimal(100000000)))
         self.fiat_e.textEdited.connect(fiat_changed)
         def btc_changed():
-            btc_amount = self.btc_e.get_amount() 
+            btc_amount = self.btc_e.get_amount()
             if btc_amount is None:
                 self.fiat_e.setText("")
                 return
             fiat_amount = self.exchanger.exchange(Decimal(btc_amount)/Decimal(100000000), self.fiat_unit())
             if fiat_amount is not None:
-                self.fiat_e.setText(str(fiat_amount))
+                self.fiat_e.setText("%.2f"%fiat_amount)
         self.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)