another plugin for qrscanner
This commit is contained in:
parent
cd9f366735
commit
ba15b9eb6b
|
@ -42,7 +42,7 @@ from electrum.wallet import format_satoshis
|
||||||
from electrum.bitcoin import Transaction, is_valid
|
from electrum.bitcoin import Transaction, is_valid
|
||||||
from electrum import mnemonic
|
from electrum import mnemonic
|
||||||
|
|
||||||
import bmp, pyqrnative, qrscanner
|
import bmp, pyqrnative
|
||||||
import exchange_rate
|
import exchange_rate
|
||||||
|
|
||||||
from decimal import Decimal
|
from decimal import Decimal
|
||||||
|
@ -621,23 +621,6 @@ class ElectrumWindow(QMainWindow):
|
||||||
grid.addWidget(QLabel(_('Pay to')), 1, 0)
|
grid.addWidget(QLabel(_('Pay to')), 1, 0)
|
||||||
grid.addWidget(self.payto_e, 1, 1, 1, 3)
|
grid.addWidget(self.payto_e, 1, 1, 1, 3)
|
||||||
|
|
||||||
def fill_from_qr():
|
|
||||||
qrcode = qrscanner.scan_qr()
|
|
||||||
if 'address' in qrcode:
|
|
||||||
self.payto_e.setText(qrcode['address'])
|
|
||||||
if 'amount' in qrcode:
|
|
||||||
self.amount_e.setText(str(qrcode['amount']))
|
|
||||||
if 'label' in qrcode:
|
|
||||||
self.message_e.setText(qrcode['label'])
|
|
||||||
if 'message' in qrcode:
|
|
||||||
self.message_e.setText("%s (%s)" % (self.message_e.text(), qrcode['message']))
|
|
||||||
|
|
||||||
|
|
||||||
if qrscanner.is_available():
|
|
||||||
b = QPushButton(_("Scan QR code"))
|
|
||||||
b.clicked.connect(fill_from_qr)
|
|
||||||
grid.addWidget(b, 1, 5)
|
|
||||||
|
|
||||||
grid.addWidget(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)')), 1, 4)
|
grid.addWidget(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)')), 1, 4)
|
||||||
|
|
||||||
completer = QCompleter()
|
completer = QCompleter()
|
||||||
|
@ -714,6 +697,7 @@ class ElectrumWindow(QMainWindow):
|
||||||
self.amount_e.textChanged.connect(lambda: entry_changed(False) )
|
self.amount_e.textChanged.connect(lambda: entry_changed(False) )
|
||||||
self.fee_e.textChanged.connect(lambda: entry_changed(True) )
|
self.fee_e.textChanged.connect(lambda: entry_changed(True) )
|
||||||
|
|
||||||
|
self.wallet.run_hook('create_send_tab',(self,grid))
|
||||||
return w2
|
return w2
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@ from PyQt4.QtCore import *
|
||||||
import PyQt4.QtCore as QtCore
|
import PyQt4.QtCore as QtCore
|
||||||
import PyQt4.QtGui as QtGui
|
import PyQt4.QtGui as QtGui
|
||||||
|
|
||||||
import bmp, pyqrnative, qrscanner
|
import bmp, pyqrnative
|
||||||
|
|
||||||
|
|
||||||
class QRCodeWidget(QWidget):
|
class QRCodeWidget(QWidget):
|
||||||
|
|
|
@ -8,7 +8,7 @@ import PyQt4.QtCore as QtCore
|
||||||
import PyQt4.QtGui as QtGui
|
import PyQt4.QtGui as QtGui
|
||||||
|
|
||||||
from electrum_gui.qrcodewidget import QRCodeWidget
|
from electrum_gui.qrcodewidget import QRCodeWidget
|
||||||
from electrum_gui import bmp, pyqrnative, qrscanner
|
from electrum_gui import bmp, pyqrnative
|
||||||
|
|
||||||
from electrum_gui.i18n import _
|
from electrum_gui.i18n import _
|
||||||
|
|
||||||
|
|
|
@ -8,6 +8,26 @@ except ImportError:
|
||||||
|
|
||||||
from urlparse import urlparse, parse_qs
|
from urlparse import urlparse, parse_qs
|
||||||
|
|
||||||
|
|
||||||
|
def init(wallet):
|
||||||
|
pass
|
||||||
|
|
||||||
|
def init_gui(gui):
|
||||||
|
if is_enabled():
|
||||||
|
gui.wallet.set_hook('create_send_tab', create_send_tab)
|
||||||
|
else:
|
||||||
|
gui.wallet.unset_hook('create_send_tab', create_send_tab)
|
||||||
|
|
||||||
|
def get_info():
|
||||||
|
return 'QR scans', "QR Scans"
|
||||||
|
|
||||||
|
def is_enabled():
|
||||||
|
return is_available()
|
||||||
|
|
||||||
|
def toggle(gui):
|
||||||
|
return is_enabled()
|
||||||
|
|
||||||
|
|
||||||
def is_available():
|
def is_available():
|
||||||
if not zbar:
|
if not zbar:
|
||||||
return False
|
return False
|
||||||
|
@ -62,6 +82,28 @@ def parse_uri(uri):
|
||||||
|
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def fill_from_qr(self):
|
||||||
|
qrcode = qrscanner.scan_qr()
|
||||||
|
if 'address' in qrcode:
|
||||||
|
self.payto_e.setText(qrcode['address'])
|
||||||
|
if 'amount' in qrcode:
|
||||||
|
self.amount_e.setText(str(qrcode['amount']))
|
||||||
|
if 'label' in qrcode:
|
||||||
|
self.message_e.setText(qrcode['label'])
|
||||||
|
if 'message' in qrcode:
|
||||||
|
self.message_e.setText("%s (%s)" % (self.message_e.text(), qrcode['message']))
|
||||||
|
|
||||||
|
|
||||||
|
def create_send_tab(gui, grid):
|
||||||
|
if qrscanner.is_available():
|
||||||
|
b = QPushButton(_("Scan QR code"))
|
||||||
|
b.clicked.connect(lambda: fill_from_qr(gui))
|
||||||
|
grid.addWidget(b, 1, 5)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
# Run some tests
|
# Run some tests
|
||||||
|
|
Loading…
Reference in New Issue