コード例 #1
0
 def __init__(self, parent=None, title=None, is_valid=None):
     QVBoxLayout.__init__(self)
     self.parent = parent
     self.is_valid = is_valid
     self.text_e = ScanQRTextEdit()
     self.text_e.textChanged.connect(self.on_edit)
     self.addWidget(WWLabel(title))
     self.addWidget(self.text_e)
コード例 #2
0
 def __init__(self,
              seed=None,
              title=None,
              icon=True,
              msg=None,
              options=None,
              is_seed=None,
              passphrase=None,
              parent=None):
     QVBoxLayout.__init__(self)
     self.parent = parent
     self.options = options
     if title:
         self.addWidget(WWLabel(title))
     if seed:
         self.seed_e = ShowQRTextEdit()
         self.seed_e.setText(seed)
     else:
         self.seed_e = ScanQRTextEdit()
         self.seed_e.setTabChangesFocus(True)
         self.is_seed = is_seed
         self.saved_is_seed = self.is_seed
         self.seed_e.textChanged.connect(self.on_edit)
     self.seed_e.setMaximumHeight(75)
     hbox = QHBoxLayout()
     if icon:
         logo = QLabel()
         logo.setPixmap(QPixmap(":icons/seed.png").scaledToWidth(64))
         logo.setMaximumWidth(60)
         hbox.addWidget(logo)
     hbox.addWidget(self.seed_e)
     self.addLayout(hbox)
     hbox = QHBoxLayout()
     hbox.addStretch(1)
     self.seed_type_label = QLabel('')
     hbox.addWidget(self.seed_type_label)
     if options:
         opt_button = EnterButton(_('Options'), self.seed_options)
         hbox.addWidget(opt_button)
         self.addLayout(hbox)
     if passphrase:
         hbox = QHBoxLayout()
         passphrase_e = QLineEdit()
         passphrase_e.setText(passphrase)
         passphrase_e.setReadOnly(True)
         hbox.addWidget(QLabel(_("Your seed extension is") + ':'))
         hbox.addWidget(passphrase_e)
         self.addLayout(hbox)
     self.addStretch(1)
     self.seed_warning = WWLabel('')
     if msg:
         self.seed_warning.setText(seed_warning_msg(seed))
     self.addWidget(self.seed_warning)
コード例 #3
0
ファイル: paytoedit.py プロジェクト: Geopay/electrum-pkb
 def __init__(self, win):
     ScanQRTextEdit.__init__(self)
     self.amount_edit = win.amount_e
     self.document().contentsChanged.connect(self.update_size)
     self.heightMin = 0
     self.heightMax = 150
     self.c = None
     self.textChanged.connect(self.check_text)
     self.outputs = []
     self.errors = []
     self.is_pr = False
     self.scan_f = win.pay_from_URI
     self.update_size()
     self.payto_address = None
コード例 #4
0
ファイル: util.py プロジェクト: notallowed1986/electrum
def text_dialog(parent, title, label, ok_label, default=None):
    from qrtextedit import ScanQRTextEdit
    dialog = WindowModalDialog(parent, title)
    dialog.setMinimumWidth(500)
    l = QVBoxLayout()
    dialog.setLayout(l)
    l.addWidget(QLabel(label))
    txt = ScanQRTextEdit()
    if default:
        txt.setText(default)
    l.addWidget(txt)
    l.addLayout(Buttons(CancelButton(dialog), OkButton(dialog, ok_label)))
    if dialog.exec_():
        return unicode(txt.toPlainText())
コード例 #5
0
 def __init__(self, win):
     ScanQRTextEdit.__init__(self)
     self.amount_edit = win.amount_e
     self.document().contentsChanged.connect(self.update_size)
     self.heightMin = 0
     self.heightMax = 150
     self.c = None
     self.textChanged.connect(self.check_text)
     self.outputs = []
     self.errors = []
     self.is_pr = False
     self.scan_f = win.pay_from_URI
     self.update_size()
     self.payto_address = None
コード例 #6
0
def text_dialog(parent, title, label, ok_label, default=None):
    from qrtextedit import ScanQRTextEdit
    dialog = WindowModalDialog(parent, title)
    dialog.setMinimumWidth(500)
    l = QVBoxLayout()
    dialog.setLayout(l)
    l.addWidget(QLabel(label))
    txt = ScanQRTextEdit()
    if default:
        txt.setText(default)
    l.addWidget(txt)
    l.addLayout(Buttons(CancelButton(dialog), OkButton(dialog, ok_label)))
    if dialog.exec_():
        return unicode(txt.toPlainText())
コード例 #7
0
 def __init__(self, parent=None, title=None, is_valid=None):
     QVBoxLayout.__init__(self)
     self.parent = parent
     self.is_valid = is_valid
     self.text_e = ScanQRTextEdit()
     self.text_e.textChanged.connect(self.on_edit)
     self.addWidget(WWLabel(title))
     self.addWidget(self.text_e)
コード例 #8
0
 def __init__(self, seed=None, title=None, icon=True, msg=None, options=None, is_seed=None, passphrase=None, parent=None):
     QVBoxLayout.__init__(self)
     self.parent = parent
     self.options = options
     if title:
         self.addWidget(WWLabel(title))
     if seed:
         self.seed_e = ShowQRTextEdit()
         self.seed_e.setText(seed)
     else:
         self.seed_e = ScanQRTextEdit()
         self.seed_e.setTabChangesFocus(True)
         self.is_seed = is_seed
         self.saved_is_seed = self.is_seed
         self.seed_e.textChanged.connect(self.on_edit)
     self.seed_e.setMaximumHeight(75)
     hbox = QHBoxLayout()
     if icon:
         logo = QLabel()
         logo.setPixmap(QPixmap(":icons/seed.png").scaledToWidth(64))
         logo.setMaximumWidth(60)
         hbox.addWidget(logo)
     hbox.addWidget(self.seed_e)
     self.addLayout(hbox)
     hbox = QHBoxLayout()
     hbox.addStretch(1)
     self.seed_type_label = QLabel('')
     hbox.addWidget(self.seed_type_label)
     if options:
         opt_button = EnterButton(_('Options'), self.seed_options)
         hbox.addWidget(opt_button)
         self.addLayout(hbox)
     if passphrase:
         hbox = QHBoxLayout()
         passphrase_e = QLineEdit()
         passphrase_e.setText(passphrase)
         passphrase_e.setReadOnly(True)
         hbox.addWidget(QLabel(_("Your seed extension is") + ':'))
         hbox.addWidget(passphrase_e)
         self.addLayout(hbox)
     self.addStretch(1)
     if msg:
         msg = seed_warning_msg(seed)
         self.addWidget(WWLabel(msg))
コード例 #9
0
ファイル: seed_dialog.py プロジェクト: akshayaurora/electrum
 def _seed_layout(self, seed=None, title=None, sid=None):
     logo = QLabel()
     logo.setPixmap(QPixmap(icon_filename(sid)).scaledToWidth(56))
     logo.setMaximumWidth(60)
     if seed:
         self.seed_e = ShowQRTextEdit()
         self.seed_e.setText(seed)
     else:
         self.seed_e = ScanQRTextEdit()
         self.seed_e.setTabChangesFocus(True)
     self.seed_e.setMaximumHeight(75)
     hbox = QHBoxLayout()
     hbox.addWidget(logo)
     hbox.addWidget(self.seed_e)
     if not title:
         return hbox
     vbox = QVBoxLayout()
     vbox.addWidget(WWLabel(title))
     vbox.addLayout(hbox)
     return vbox
コード例 #10
0
ファイル: seed_dialog.py プロジェクト: santiagorp/electrum
 def _seed_layout(self, seed=None, title=None, sid=None):
     logo = QLabel()
     logo.setPixmap(QPixmap(icon_filename(sid)).scaledToWidth(56))
     logo.setMaximumWidth(60)
     if seed:
         self.seed_e = ShowQRTextEdit()
         self.seed_e.setText(seed)
     else:
         self.seed_e = ScanQRTextEdit()
         self.seed_e.setTabChangesFocus(True)
     self.seed_e.setMaximumHeight(75)
     hbox = QHBoxLayout()
     hbox.addWidget(logo)
     hbox.addWidget(self.seed_e)
     if not title:
         return hbox
     vbox = QVBoxLayout()
     vbox.addWidget(WWLabel(title))
     vbox.addLayout(hbox)
     return vbox
コード例 #11
0
 def _seed_layout(self, seed=None, title=None, icon=True):
     if seed:
         self.seed_e = ShowQRTextEdit()
         self.seed_e.setText(seed)
     else:
         self.seed_e = ScanQRTextEdit()
         self.seed_e.setTabChangesFocus(True)
     self.seed_e.setMaximumHeight(75)
     hbox = QHBoxLayout()
     if icon:
         logo = QLabel()
         logo.setPixmap(QPixmap(":icons/seed.png").scaledToWidth(64))
         logo.setMaximumWidth(60)
         hbox.addWidget(logo)
     hbox.addWidget(self.seed_e)
     if not title:
         return hbox
     vbox = QVBoxLayout()
     vbox.addWidget(WWLabel(title))
     vbox.addLayout(hbox)
     return vbox
コード例 #12
0
ファイル: seed_dialog.py プロジェクト: FaSan/electrum-ltc
def enter_seed_box(msg, window, sid=None):
    vbox = QVBoxLayout()
    logo = QLabel()
    logo.setPixmap(QPixmap(icon_filename(sid)).scaledToWidth(56))
    logo.setMaximumWidth(60)

    label = QLabel(msg)
    label.setWordWrap(True)

    seed_e = ScanQRTextEdit(win=window)
    seed_e.setMaximumHeight(100)
    seed_e.setTabChangesFocus(True)

    vbox.addWidget(label)

    grid = QGridLayout()
    grid.addWidget(logo, 0, 0)
    grid.addWidget(seed_e, 0, 1)

    vbox.addLayout(grid)
    return vbox, seed_e
コード例 #13
0
class SeedLayoutBase(object):
    def _seed_layout(self, seed=None, title=None, icon=True):
        if seed:
            self.seed_e = ShowQRTextEdit()
            self.seed_e.setText(seed)
        else:
            self.seed_e = ScanQRTextEdit()
            self.seed_e.setTabChangesFocus(True)
        self.seed_e.setMaximumHeight(75)
        hbox = QHBoxLayout()
        if icon:
            logo = QLabel()
            logo.setPixmap(QPixmap(":icons/seed.png").scaledToWidth(64))
            logo.setMaximumWidth(60)
            # hbox.addWidget(logo)
        hbox.addWidget(self.seed_e)
        if not title:
            return hbox
        vbox = QVBoxLayout()
        # vbox.addWidget(WWLabel("<font style=\"font-weight:bold;\">"+title+"</font>"))
        vbox.addWidget(WWLabel(title))
        vbox.addLayout(hbox)
        return vbox

    def layout(self):
        return self.layout_

    def seed_edit(self):
        return self.seed_e
コード例 #14
0
class KeysLayout(QVBoxLayout):
    def __init__(self, parent=None, title=None, is_valid=None):
        QVBoxLayout.__init__(self)
        self.parent = parent
        self.is_valid = is_valid
        self.text_e = ScanQRTextEdit()
        self.text_e.textChanged.connect(self.on_edit)
        self.addWidget(WWLabel(title))
        self.addWidget(self.text_e)

    def get_text(self):
        return unicode(self.text_e.text())

    def on_edit(self):
        b = self.is_valid(self.get_text())
        self.parent.next_button.setEnabled(b)
コード例 #15
0
class KeysLayout(QVBoxLayout):
    def __init__(self, parent=None, title=None, is_valid=None):
        QVBoxLayout.__init__(self)
        self.parent = parent
        self.is_valid = is_valid
        self.text_e = ScanQRTextEdit()
        self.text_e.textChanged.connect(self.on_edit)
        self.addWidget(WWLabel(title))
        self.addWidget(self.text_e)

    def get_text(self):
        return unicode(self.text_e.text())

    def on_edit(self):
        b = self.is_valid(self.get_text())
        self.parent.next_button.setEnabled(b)
コード例 #16
0
def enter_seed_box(msg, window, sid=None, text=None):
    vbox = QVBoxLayout()
    logo = QLabel()
    logo.setPixmap(QPixmap(icon_filename(sid)).scaledToWidth(56))
    logo.setMaximumWidth(60)
    label = QLabel(msg)
    label.setWordWrap(True)
    if not text:
        seed_e = ScanQRTextEdit()
        seed_e.setTabChangesFocus(True)
    else:
        seed_e = ShowQRTextEdit(text=text)
    seed_e.setMaximumHeight(130)
    vbox.addWidget(label)
    grid = QGridLayout()
    grid.addWidget(logo, 0, 0)
    grid.addWidget(seed_e, 0, 1)
    vbox.addLayout(grid)
    return vbox, seed_e
コード例 #17
0
class SeedLayout(QVBoxLayout):
    #options
    is_bip39 = False
    is_ext = False

    def seed_options(self):
        dialog = QDialog()
        vbox = QVBoxLayout(dialog)
        if 'ext' in self.options:
            cb_ext = QCheckBox(_('Extend this seed with custom words'))
            cb_ext.setChecked(self.is_ext)
            vbox.addWidget(cb_ext)
        if 'bip39' in self.options:

            def f(b):
                if b:
                    msg = ' '.join([
                        '<b>' + _('Warning') + '</b>' + ': ',
                        _('BIP39 seeds may not be supported in the future.'),
                        '<br/><br/>',
                        _('As technology matures, Desire address generation may change.'
                          ),
                        _('However, BIP39 seeds do not include a version number.'
                          ),
                        _('As a result, it is not possible to infer your wallet type from a BIP39 seed.'
                          ),
                        '<br/><br/>',
                        _('We do not guarantee that BIP39 seeds will be supported in future versions of Electrum-DSR.'
                          ),
                        _('We recommend to use seeds generated by Electrum-DSR or compatible wallets.'
                          ),
                    ])
                    #self.parent.show_warning(msg)
                self.seed_type_label.setVisible(not b)
                self.is_seed = (lambda x: bool(x)) if b else self.saved_is_seed
                self.on_edit()

            cb_bip39 = QCheckBox(_('BIP39 seed'))
            cb_bip39.toggled.connect(f)
            cb_bip39.setChecked(self.is_bip39)
            vbox.addWidget(cb_bip39)
        vbox.addLayout(Buttons(OkButton(dialog)))
        if not dialog.exec_():
            return None
        self.is_ext = cb_ext.isChecked() if 'ext' in self.options else False
        self.is_bip39 = cb_bip39.isChecked(
        ) if 'bip39' in self.options else False

    def __init__(self,
                 seed=None,
                 title=None,
                 icon=True,
                 msg=None,
                 options=None,
                 is_seed=None,
                 passphrase=None,
                 parent=None):
        QVBoxLayout.__init__(self)
        self.parent = parent
        self.options = options
        if title:
            self.addWidget(WWLabel(title))
        if seed:
            self.seed_e = ShowQRTextEdit()
            self.seed_e.setText(seed)
        else:
            self.seed_e = ScanQRTextEdit()
            self.seed_e.setTabChangesFocus(True)
            self.is_seed = is_seed
            self.saved_is_seed = self.is_seed
            self.seed_e.textChanged.connect(self.on_edit)
        self.seed_e.setMaximumHeight(75)
        hbox = QHBoxLayout()
        if icon:
            logo = QLabel()
            logo.setPixmap(QPixmap(":icons/seed.png").scaledToWidth(64))
            logo.setMaximumWidth(60)
            hbox.addWidget(logo)
        hbox.addWidget(self.seed_e)
        self.addLayout(hbox)
        hbox = QHBoxLayout()
        hbox.addStretch(1)
        self.seed_type_label = QLabel('')
        hbox.addWidget(self.seed_type_label)
        if options:
            opt_button = EnterButton(_('Options'), self.seed_options)
            hbox.addWidget(opt_button)
            self.addLayout(hbox)
        if passphrase:
            hbox = QHBoxLayout()
            passphrase_e = QLineEdit()
            passphrase_e.setText(passphrase)
            passphrase_e.setReadOnly(True)
            hbox.addWidget(QLabel(_("Your seed extension is") + ':'))
            hbox.addWidget(passphrase_e)
            self.addLayout(hbox)
        self.addStretch(1)
        if msg:
            msg = seed_warning_msg(seed)
            self.addWidget(WWLabel(msg))

    def get_seed(self):
        text = unicode(self.seed_e.text())
        return ' '.join(text.split())

    def on_edit(self):
        from electrum_desire.bitcoin import seed_type
        s = self.get_seed()
        b = self.is_seed(s)
        t = seed_type(s)
        label = _('Seed Type') + ': ' + t if t else ''
        self.seed_type_label.setText(label)
        self.parent.next_button.setEnabled(b)
コード例 #18
0
class SeedLayout(QVBoxLayout):
    #options
    is_bip39 = False
    is_ext = False

    def seed_options(self):
        dialog = QDialog()
        vbox = QVBoxLayout(dialog)
        if 'ext' in self.options:
            cb_ext = QCheckBox(_('Extend this seed with custom words'))
            vbox.addWidget(cb_ext)
        if 'bip39' in self.options:
            def f(b):
                if b:
                    msg = ' '.join([
                        '<b>' + _('Warning') + '</b>' + ': ',
                        _('BIP39 seeds may not be supported in the future.'),
                        '<br/><br/>',
                        _('As technology matures, Litecoin address generation may change.'),
                        _('However, BIP39 seeds do not include a version number.'),
                        _('As a result, it is not possible to infer your wallet type from a BIP39 seed.'),
                        '<br/><br/>',
                        _('We do not guarantee that BIP39 seeds will be supported in future versions of Electrum.'),
                        _('We recommend to use seeds generated by Electrum or compatible wallets.'),
                    ])
                    #self.parent.show_warning(msg)
                self.seed_type_label.setVisible(not b)
                self.is_seed = (lambda x: bool(x)) if b else self.saved_is_seed
                self.on_edit()
            cb_bip39 = QCheckBox(_('BIP39 seed'))
            cb_bip39.toggled.connect(f)
            vbox.addWidget(cb_bip39)
        vbox.addLayout(Buttons(OkButton(dialog)))
        if not dialog.exec_():
            return None
        self.is_ext = cb_ext.isChecked() if 'ext' in self.options else False
        self.is_bip39 = cb_bip39.isChecked() if 'bip39' in self.options else False


    def __init__(self, seed=None, title=None, icon=True, msg=None, options=None, is_seed=None, passphrase=None, parent=None):
        QVBoxLayout.__init__(self)
        self.parent = parent
        self.options = options
        if title:
            self.addWidget(WWLabel(title))
        if seed:
            self.seed_e = ShowQRTextEdit()
            self.seed_e.setText(seed)
        else:
            self.seed_e = ScanQRTextEdit()
            self.seed_e.setTabChangesFocus(True)
            self.is_seed = is_seed
            self.saved_is_seed = self.is_seed
            self.seed_e.textChanged.connect(self.on_edit)
        self.seed_e.setMaximumHeight(75)
        hbox = QHBoxLayout()
        if icon:
            logo = QLabel()
            logo.setPixmap(QPixmap(":icons/seed.png").scaledToWidth(64))
            logo.setMaximumWidth(60)
            hbox.addWidget(logo)
        hbox.addWidget(self.seed_e)
        self.addLayout(hbox)
        hbox = QHBoxLayout()
        hbox.addStretch(1)
        self.seed_type_label = QLabel('')
        hbox.addWidget(self.seed_type_label)
        if options:
            opt_button = EnterButton(_('Options'), self.seed_options)
            hbox.addWidget(opt_button)
            self.addLayout(hbox)
        if passphrase:
            hbox = QHBoxLayout()
            passphrase_e = QLineEdit()
            passphrase_e.setText(passphrase)
            passphrase_e.setReadOnly(True)
            hbox.addWidget(QLabel(_("Your seed extension is") + ':'))
            hbox.addWidget(passphrase_e)
            self.addLayout(hbox)
        self.addStretch(1)
        if msg:
            msg = seed_warning_msg(seed)
            self.addWidget(WWLabel(msg))

    def get_seed(self):
        text = unicode(self.seed_e.text())
        return ' '.join(text.split())

    def on_edit(self):
        from electrum_ltc.bitcoin import seed_type
        s = self.get_seed()
        b = self.is_seed(s)
        t = seed_type(s)
        label = _('Seed Type') + ': ' + t if t else ''
        self.seed_type_label.setText(label)
        self.parent.next_button.setEnabled(b)
コード例 #19
0
class SeedLayout(QVBoxLayout):
    #options
    is_bip39 = False
    is_ext = False

    def seed_options(self):
        dialog = QDialog()
        vbox = QVBoxLayout(dialog)
        if 'ext' in self.options:
            cb_ext = QCheckBox(_('Extend this seed with custom words'))
            cb_ext.setChecked(self.is_ext)
            vbox.addWidget(cb_ext)
        if 'bip39' in self.options:

            def f(b):
                self.is_seed = (lambda x: bool(x)) if b else self.saved_is_seed
                self.on_edit()
                self.is_bip39 = b
                if b:
                    msg = ' '.join([
                        '<b>' + _('Warning') + ': BIP39 seeds are dangerous!' +
                        '</b><br/><br/>',
                        _('BIP39 seeds can be imported in Electrum so that users can access funds locked in other wallets.'
                          ),
                        _('However, BIP39 seeds do not include a version number, which compromises compatibility with future wallet software.'
                          ),
                        '<br/><br/>',
                        _('We do not guarantee that BIP39 imports will always be supported in Electrum.'
                          ),
                        _('In addition, Electrum does not verify the checksum of BIP39 seeds; make sure you type your seed correctly.'
                          ),
                    ])
                else:
                    msg = ''
                self.seed_warning.setText(msg)

            cb_bip39 = QCheckBox(_('BIP39 seed'))
            cb_bip39.toggled.connect(f)
            cb_bip39.setChecked(self.is_bip39)
            vbox.addWidget(cb_bip39)
        vbox.addLayout(Buttons(OkButton(dialog)))
        if not dialog.exec_():
            return None
        self.is_ext = cb_ext.isChecked() if 'ext' in self.options else False
        self.is_bip39 = cb_bip39.isChecked(
        ) if 'bip39' in self.options else False

    def __init__(self,
                 seed=None,
                 title=None,
                 icon=True,
                 msg=None,
                 options=None,
                 is_seed=None,
                 passphrase=None,
                 parent=None):
        QVBoxLayout.__init__(self)
        self.parent = parent
        self.options = options
        if title:
            self.addWidget(WWLabel(title))
        if seed:
            self.seed_e = ShowQRTextEdit()
            self.seed_e.setText(seed)
        else:
            self.seed_e = ScanQRTextEdit()
            self.seed_e.setTabChangesFocus(True)
            self.is_seed = is_seed
            self.saved_is_seed = self.is_seed
            self.seed_e.textChanged.connect(self.on_edit)
        self.seed_e.setMaximumHeight(75)
        hbox = QHBoxLayout()
        if icon:
            logo = QLabel()
            logo.setPixmap(QPixmap(":icons/seed.png").scaledToWidth(64))
            logo.setMaximumWidth(60)
            hbox.addWidget(logo)
        hbox.addWidget(self.seed_e)
        self.addLayout(hbox)
        hbox = QHBoxLayout()
        hbox.addStretch(1)
        self.seed_type_label = QLabel('')
        hbox.addWidget(self.seed_type_label)
        if options:
            opt_button = EnterButton(_('Options'), self.seed_options)
            hbox.addWidget(opt_button)
            self.addLayout(hbox)
        if passphrase:
            hbox = QHBoxLayout()
            passphrase_e = QLineEdit()
            passphrase_e.setText(passphrase)
            passphrase_e.setReadOnly(True)
            hbox.addWidget(QLabel(_("Your seed extension is") + ':'))
            hbox.addWidget(passphrase_e)
            self.addLayout(hbox)
        self.addStretch(1)
        self.seed_warning = WWLabel('')
        if msg:
            self.seed_warning.setText(seed_warning_msg(seed))
        self.addWidget(self.seed_warning)

    def get_seed(self):
        text = unicode(self.seed_e.text())
        return ' '.join(text.split())

    def on_edit(self):
        from electrum_ltc.bitcoin import seed_type
        s = self.get_seed()
        b = self.is_seed(s)
        if not self.is_bip39:
            t = seed_type(s)
            label = _('Seed Type') + ': ' + t if t else ''
        else:
            from electrum_ltc.keystore import bip39_is_checksum_valid
            is_checksum, is_wordlist = bip39_is_checksum_valid(s)
            status = ('checksum: ' + ('ok' if is_checksum else 'failed')
                      ) if is_wordlist else 'unknown wordlist'
            label = 'BIP39' + ' (%s)' % status
        self.seed_type_label.setText(label)
        self.parent.next_button.setEnabled(b)