parse payto text
[electrum-nvc.git] / gui / qt / amountedit.py
1 # -*- coding: utf-8 -*-
2
3 from PyQt4.QtCore import *
4 from PyQt4.QtGui import *
5
6
7 class AmountEdit(QLineEdit):
8
9     def __init__(self, text_getter, is_int = False, parent=None):
10         QLineEdit.__init__(self, parent)
11         self.text_getter = text_getter
12         self.textChanged.connect(self.numbify)
13         self.is_int = is_int
14         self.is_shortcut = False
15
16
17     def paintEvent(self, event):
18         QLineEdit.paintEvent(self, event)
19         if self.text_getter:
20              panel = QStyleOptionFrameV2()
21              self.initStyleOption(panel)
22              textRect = self.style().subElementRect(QStyle.SE_LineEditContents, panel, self)
23              textRect.adjust(2, 0, -10, 0)
24              painter = QPainter(self)
25              painter.setPen(self.palette().brush(QPalette.Disabled, QPalette.Text).color())
26              painter.drawText(textRect, Qt.AlignRight | Qt.AlignVCenter, self.text_getter())
27
28
29     def numbify(self):
30         text = unicode(self.text()).strip()
31         if text == '!':
32             self.is_shortcut = True
33         pos = self.cursorPosition()
34         chars = '0123456789'
35         if not self.is_int: chars +='.'
36         s = ''.join([i for i in text if i in chars])
37         if not self.is_int:
38             if '.' in s:
39                 p = s.find('.')
40                 s = s.replace('.','')
41                 s = s[:p] + '.' + s[p:p+8]
42         self.setText(s)
43         self.setCursorPosition(pos)
44
45
46     def setAmount(self, amount):
47         self.setText(self.format_amount(self.wallet.fee).strip())