qrcode plugin: added address label and adjusted formatting

This commit is contained in:
Dmitri Bogomolov 2018-03-14 18:57:27 +02:00
parent 8b065d2e57
commit e6f3e52014
Signed by untrusted user: g1itch
GPG Key ID: 720A756F18DEED13

View File

@ -3,8 +3,10 @@
A menu plugin showing QR-Code for bitmessage address in modal dialog. A menu plugin showing QR-Code for bitmessage address in modal dialog.
""" """
from PyQt4 import QtGui, QtCore import urllib
import qrcode import qrcode
from PyQt4 import QtGui, QtCore
from pybitmessage.tr import _translate from pybitmessage.tr import _translate
@ -46,7 +48,7 @@ class QRCodeDialog(QtGui.QDialog):
font.setWeight(75) font.setWeight(75)
self.label.setFont(font) self.label.setFont(font)
self.label.setAlignment( self.label.setAlignment(
QtCore.Qt.AlignCenter | QtCore.Qt.AlignVCenter) QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter)
buttonBox = QtGui.QDialogButtonBox(self) buttonBox = QtGui.QDialogButtonBox(self)
buttonBox.setOrientation(QtCore.Qt.Horizontal) buttonBox.setOrientation(QtCore.Qt.Horizontal)
buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Ok) buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Ok)
@ -63,9 +65,11 @@ class QRCodeDialog(QtGui.QDialog):
def render(self, text): def render(self, text):
"""Draw QR-code and address in labels""" """Draw QR-code and address in labels"""
pixmap = qrcode.make(text, image_factory=Image).pixmap()
self.image.setPixmap(pixmap)
self.label.setText(text) self.label.setText(text)
self.image.setPixmap( self.label.setToolTip(text)
qrcode.make(text, image_factory=Image).pixmap()) self.label.setFixedWidth(pixmap.width())
self.setFixedSize(QtGui.QWidget.sizeHint(self)) self.setFixedSize(QtGui.QWidget.sizeHint(self))
@ -77,7 +81,13 @@ def connect_plugin(form):
dialog = form.qrcode_dialog dialog = form.qrcode_dialog
except AttributeError: except AttributeError:
form.qrcode_dialog = dialog = QRCodeDialog(form) form.qrcode_dialog = dialog = QRCodeDialog(form)
dialog.render('bitmessage:' + str(form.getCurrentAccount())) account = form.getCurrentItem()
label = account._getLabel()
dialog.render(
'bitmessage:%s' % account.address + (
'?' + urllib.urlencode({'label': label.encode('utf-8')})
if label != account.address else '')
)
dialog.exec_() dialog.exec_()
return on_action_ShowQR, _translate("MainWindow", "Show QR-code") return on_action_ShowQR, _translate("MainWindow", "Show QR-code")