catch exceptions raised by fiat amount conversion to decimal
authorThomasV <thomasv@gitorious>
Tue, 24 Jun 2014 15:06:04 +0000 (17:06 +0200)
committerThomasV <thomasv@gitorious>
Tue, 24 Jun 2014 15:06:04 +0000 (17:06 +0200)
plugins/exchange_rate.py

index 3ce4447..3df37a6 100644 (file)
@@ -642,17 +642,18 @@ 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