Merge pull request #1255 from kyuupichan/amountedit2

Fix nasty bug in amount editors
This commit is contained in:
ThomasV 2015-05-27 10:19:07 +02:00
commit 8e6e4f1b92
2 changed files with 9 additions and 10 deletions

View File

@ -4,6 +4,7 @@ from PyQt4.QtCore import *
from PyQt4.QtGui import * from PyQt4.QtGui import *
from decimal import Decimal from decimal import Decimal
from electrum.util import format_satoshis_plain
class MyLineEdit(QLineEdit): class MyLineEdit(QLineEdit):
frozen = pyqtSignal() frozen = pyqtSignal()
@ -93,8 +94,5 @@ class BTCAmountEdit(AmountEdit):
def setAmount(self, amount): def setAmount(self, amount):
if amount is None: if amount is None:
self.setText("") self.setText("")
return else:
self.setText(format_satoshis_plain(amount, self.decimal_point()))
p = pow(10, self.decimal_point())
x = amount / Decimal(p)
self.setText(str(x))

View File

@ -2,6 +2,7 @@ import os, sys, re, json
import platform import platform
import shutil import shutil
from datetime import datetime from datetime import datetime
from decimal import Decimal
import urlparse import urlparse
import urllib import urllib
import threading import threading
@ -104,10 +105,11 @@ def user_dir():
#raise Exception("No home directory found in environment variables.") #raise Exception("No home directory found in environment variables.")
return return
def format_satoshis_plain(x): def format_satoshis_plain(x, decimal_point = 8):
'''Display a satoshi amount in BTC with 8 decimal places. Always '''Display a satoshi amount scaled. Always uses a '.' as a decimal
uses a '.' as a decimal point and has no thousands separator''' point and has no thousands separator'''
return "{:.8f}".format(x / 100000000.0) scale_factor = pow(10, decimal_point)
return "{:.8f}".format(Decimal(x) / scale_factor).rstrip('0').rstrip('.')
def format_satoshis(x, is_diff=False, num_zeros = 0, decimal_point = 8, whitespaces=False): def format_satoshis(x, is_diff=False, num_zeros = 0, decimal_point = 8, whitespaces=False):
from locale import localeconv from locale import localeconv
@ -223,7 +225,6 @@ def block_explorer_URL(config, kind, item):
def parse_URI(uri): def parse_URI(uri):
import bitcoin import bitcoin
from decimal import Decimal
if ':' not in uri: if ':' not in uri:
assert bitcoin.is_address(uri) assert bitcoin.is_address(uri)