class AmountEdit(MyLineEdit):
+ def __init__(self, base_unit, is_int = False, parent=None):
+ QLineEdit.__init__(self, parent)
+ self.base_unit = base_unit
+ self.textChanged.connect(self.numbify)
+ self.is_int = is_int
+ self.is_shortcut = False
+
+ def numbify(self):
+ text = unicode(self.text()).strip()
+ if text == '!':
+ self.is_shortcut = True
+ pos = self.cursorPosition()
+ chars = '0123456789'
+ if not self.is_int: chars +='.'
+ s = ''.join([i for i in text if i in chars])
+ if not self.is_int:
+ if '.' in s:
+ p = s.find('.')
+ s = s.replace('.','')
+ s = s[:p] + '.' + s[p:p+8]
+ self.setText(s)
+ self.setCursorPosition(pos)
+
+ def paintEvent(self, event):
+ QLineEdit.paintEvent(self, event)
+ if self.base_unit:
+ panel = QStyleOptionFrameV2()
+ self.initStyleOption(panel)
+ textRect = self.style().subElementRect(QStyle.SE_LineEditContents, panel, self)
+ textRect.adjust(2, 0, -10, 0)
+ painter = QPainter(self)
+ painter.setPen(self.palette().brush(QPalette.Disabled, QPalette.Text).color())
+ painter.drawText(textRect, Qt.AlignRight | Qt.AlignVCenter, self.base_unit())
+
+
+
+class BTCAmountEdit(AmountEdit):
+
def __init__(self, decimal_point, is_int = False, parent=None):
QLineEdit.__init__(self, parent)
self.decimal_point = decimal_point
x = amount / Decimal(p)
self.setText(str(x))
- def paintEvent(self, event):
- QLineEdit.paintEvent(self, event)
- if self.decimal_point:
- panel = QStyleOptionFrameV2()
- self.initStyleOption(panel)
- textRect = self.style().subElementRect(QStyle.SE_LineEditContents, panel, self)
- textRect.adjust(2, 0, -10, 0)
- painter = QPainter(self)
- painter.setPen(self.palette().brush(QPalette.Disabled, QPalette.Text).color())
- painter.drawText(textRect, Qt.AlignRight | Qt.AlignVCenter, self.base_unit())
-
-
- def numbify(self):
- text = unicode(self.text()).strip()
- if text == '!':
- self.is_shortcut = True
- pos = self.cursorPosition()
- chars = '0123456789'
- if not self.is_int: chars +='.'
- s = ''.join([i for i in text if i in chars])
- if not self.is_int:
- if '.' in s:
- p = s.find('.')
- s = s.replace('.','')
- s = s[:p] + '.' + s[p:p+8]
- self.setText(s)
- self.setCursorPosition(pos)
-
-
from electrum import bmp, pyqrnative
-from amountedit import AmountEdit, MyLineEdit
+from amountedit import BTCAmountEdit, MyLineEdit
from network_dialog import NetworkDialog
from qrcodewidget import QRCodeWidget
grid.setRowStretch(8, 1)
from paytoedit import PayToEdit
- self.amount_e = AmountEdit(self.get_decimal_point)
+ self.amount_e = BTCAmountEdit(self.get_decimal_point)
self.payto_e = PayToEdit(self.amount_e)
self.payto_help = HelpButton(_('Recipient of the funds.') + '\n\n' + _('You may enter a Bitcoin address, a label from your list of contacts (a list of completions will be proposed), or an alias (email-like address that forwards to a Bitcoin address)'))
grid.addWidget(QLabel(_('Pay to')), 1, 0)
grid.addWidget(self.amount_e, 4, 1, 1, 2)
grid.addWidget(self.amount_help, 4, 3)
- self.fee_e = AmountEdit(self.get_decimal_point)
+ self.fee_e = BTCAmountEdit(self.get_decimal_point)
grid.addWidget(QLabel(_('Fee')), 5, 0)
grid.addWidget(self.fee_e, 5, 1, 1, 2)
grid.addWidget(HelpButton(
fee_label = QLabel(_('Transaction fee') + ':')
grid.addWidget(fee_label, 2, 0)
- fee_e = AmountEdit(self.get_decimal_point)
+ fee_e = BTCAmountEdit(self.get_decimal_point)
fee_e.setText(self.format_amount(self.wallet.fee).strip())
grid.addWidget(fee_e, 2, 1)
msg = _('Fee per kilobyte of transaction.') + ' ' \
def __init__(self,a,b):
BasePlugin.__init__(self,a,b)
- self.currencies = [self.config.get('currency', "EUR")]
+ self.currencies = [self.fiat_unit()]
self.exchanges = [self.config.get('use_exchange', "Blockchain")]
def init(self):
r2[0] = text
def create_fiat_balance_text(self, btc_balance):
- quote_currency = self.config.get("currency", "EUR")
+ quote_currency = self.fiat_unit()
self.exchanger.use_exchange = self.config.get("use_exchange", "Blockchain")
cur_rate = self.exchanger.exchange(Decimal("1.0"), quote_currency)
if cur_rate is None:
except Exception:
return
elif cur_exchange == "BitcoinVenezuela":
- cur_currency = self.config.get('currency', "EUR")
+ cur_currency = self.fiat_unit()
if cur_currency == "VEF":
try:
resp_hist = self.exchanger.get_json('api.bitcoinvenezuela.com', "/historical/index.php?coin=BTC")['VEF_BTC']
cur_request = str(self.currencies[x])
except Exception:
return
- if cur_request != self.config.get('currency', "EUR"):
+ if cur_request != self.fiat_unit():
self.config.set_key('currency', cur_request, True)
cur_exchange = self.config.get('use_exchange', "Blockchain")
if cur_request == "USD" and (cur_exchange == "CoinDesk" or cur_exchange == "Winkdex"):
self.currencies = []
combo.clear()
self.exchanger.query_rates.set()
- cur_currency = self.config.get('currency', "EUR")
+ cur_currency = self.fiat_unit()
if cur_request == "CoinDesk" or cur_request == "Winkdex":
if cur_currency == "USD":
hist_checkbox.setEnabled(True)
hist_checkbox.setEnabled(False)
def set_currencies(combo):
- current_currency = self.config.get('currency', "EUR")
+ current_currency = self.fiat_unit()
try:
combo.clear()
except Exception:
return False
def fiat_unit(self):
- quote_currency = self.config.get("currency", "???")
- return quote_currency
+ return self.config.get("currency", "EUR")
def fiat_dialog(self):
if not self.config.get('use_exchange_rate'):
self.gui.main_window.amount_e.setText( quote )
def exchange_rate_button(self, grid):
- quote_currency = self.config.get("currency", "EUR")
+ quote_currency = self.fiat_unit()
self.fiat_button = EnterButton(_(quote_currency), self.fiat_dialog)
grid.addWidget(self.fiat_button, 4, 3, Qt.AlignHCenter)