1 from PyQt4.QtGui import *
2 from electrum import BasePlugin
3 from electrum.i18n import _
5 class Plugin(BasePlugin):
9 return 'Virtual Keyboard'
11 def description(self):
12 return '%s\n%s' % (_("Add an optional virtual keyboard to the password dialog."), _("Warning: do not use this if it makes you pick a weaker password."))
19 def password_dialog(self, pw, grid, pos):
20 vkb_button = QPushButton(_("+"))
21 vkb_button.setFixedWidth(20)
22 vkb_button.clicked.connect(lambda: self.toggle_vkb(grid, pw))
23 grid.addWidget(vkb_button, pos, 2)
27 def toggle_vkb(self, grid, pw):
28 if self.vkb: grid.removeItem(self.vkb)
29 self.vkb = self.virtual_keyboard(self.vkb_index, pw)
30 grid.addLayout(self.vkb, self.kb_pos, 0, 1, 3)
34 def virtual_keyboard(self, i, pw):
38 chars = 'abcdefghijklmnopqrstuvwxyz '
40 chars = 'ABCDEFGHIJKLMNOPQRTSUVWXYZ '
42 chars = '1234567890!?.,;:/%&()[]{}+-'
48 k = random.randint(0,n-1)
54 return lambda: pw.setText(str( pw.text() ) + t)
60 l_button = QPushButton(chars[s[i]])
61 l_button.setFixedWidth(25)
62 l_button.setFixedHeight(25)
63 l_button.clicked.connect(add_target(chars[s[i]]) )
64 grid.addWidget(l_button, i/6, i%6)