URI: 
       tqt: follow-up passing-around-config - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit 112ad72ceec6decfa2a5afa84fd411f5b8852a64
   DIR parent 731756f6e86a009dc3bd85dc72c5d5a8e897637a
  HTML Author: SomberNight <somber.night@protonmail.com>
       Date:   Wed, 23 Dec 2020 17:34:21 +0100
       
       qt: follow-up passing-around-config
       
       follow-up b28b3994c7c879d43325faa8db8f4691be1f920f
       
       E | gui.qt.exception_window.Exception_Hook | exception caught by crash reporter
       Traceback (most recent call last):
         File "...\electrum\electrum\gui\qt\main_window.py", line 670, in new_wallet
           self.gui_object.start_new_window(full_path, None)
         File "...\electrum\electrum\gui\qt\__init__.py", line 245, in wrapper
           return func(self, *args, **kwargs)
         File "...\electrum\electrum\gui\qt\__init__.py", line 269, in start_new_window
           wallet = self._start_wizard_to_select_or_create_wallet(path)
         File "...\electrum\electrum\gui\qt\__init__.py", line 311, in _start_wizard_to_select_or_create_wallet
           wizard.run('new')
         File "...\electrum\electrum\base_wizard.py", line 115, in run
           f(*args, **kwargs)
         File "...\electrum\electrum\base_wizard.py", line 153, in new
           self.choice_dialog(title=title, message=message, choices=choices, run_next=self.on_wallet_type)
         File "...\electrum\electrum\gui\qt\installwizard.py", line 120, in func_wrapper
           run_next(*out)
         File "...\electrum\electrum\base_wizard.py", line 193, in on_wallet_type
           self.run(action)
         File "...\electrum\electrum\base_wizard.py", line 115, in run
           f(*args, **kwargs)
         File "...\electrum\electrum\base_wizard.py", line 201, in choose_multisig
           self.multisig_dialog(run_next=on_multisig)
         File "...\electrum\electrum\gui\qt\installwizard.py", line 120, in func_wrapper
           run_next(*out)
         File "...\electrum\electrum\base_wizard.py", line 200, in on_multisig
           self.run('choose_keystore')
         File "...\electrum\electrum\base_wizard.py", line 115, in run
           f(*args, **kwargs)
         File "...\electrum\electrum\base_wizard.py", line 225, in choose_keystore
           self.choice_dialog(title=title, message=message, choices=choices, run_next=self.run)
         File "...\electrum\electrum\gui\qt\installwizard.py", line 120, in func_wrapper
           run_next(*out)
         File "...\electrum\electrum\base_wizard.py", line 115, in run
           f(*args, **kwargs)
         File "...\electrum\electrum\base_wizard.py", line 275, in choose_hw_device
           self._choose_hw_device(purpose=purpose, storage=storage)
         File "...\electrum\electrum\base_wizard.py", line 358, in _choose_hw_device
           self.choice_dialog(title=title, message=msg, choices=choices,
         File "...\electrum\electrum\gui\qt\installwizard.py", line 120, in func_wrapper
           run_next(*out)
         File "...\electrum\electrum\base_wizard.py", line 359, in <lambda>
           run_next=lambda *args: self.on_device(*args, purpose=purpose, storage=storage))
         File "...\electrum\electrum\base_wizard.py", line 394, in on_device
           self.derivation_and_script_type_dialog(f)
         File "...\electrum\electrum\base_wizard.py", line 441, in derivation_and_script_type_dialog
           self.derivation_and_script_type_gui_specific_dialog(
         File "...\electrum\electrum\gui\qt\installwizard.py", line 120, in func_wrapper
           run_next(*out)
         File "...\electrum\electrum\base_wizard.py", line 393, in f
           self.run('on_hw_derivation', name, device_info, derivation, script_type)
         File "...\electrum\electrum\base_wizard.py", line 115, in run
           f(*args, **kwargs)
         File "...\electrum\electrum\base_wizard.py", line 490, in on_hw_derivation
           self.on_keystore(k)
         File "...\electrum\electrum\base_wizard.py", line 592, in on_keystore
           self.run('show_xpub_and_add_cosigners', xpub)
         File "...\electrum\electrum\base_wizard.py", line 115, in run
           f(*args, **kwargs)
         File "...\electrum\electrum\base_wizard.py", line 686, in show_xpub_and_add_cosigners
           self.show_xpub_dialog(xpub=xpub, run_next=lambda x: self.run('choose_keystore'))
         File "...\electrum\electrum\gui\qt\installwizard.py", line 106, in func_wrapper
           out = func(*args, **kwargs)
         File "...\electrum\electrum\gui\qt\installwizard.py", line 700, in show_xpub_dialog
           layout = SeedLayout(xpub, title=msg, icon=False, for_seed_words=False)
         File "...\electrum\electrum\gui\qt\seed_dialog.py", line 108, in __init__
           self.seed_e = ShowQRTextEdit(config=self.config)
       AttributeError: 'SeedLayout' object has no attribute 'config'
       
       Diffstat:
         M electrum/gui/qt/installwizard.py    |      26 ++++++++++++++++++++++----
         M electrum/gui/qt/main_window.py      |       2 +-
         M electrum/gui/qt/seed_dialog.py      |      27 +++++++++++++++++++++++----
       
       3 files changed, 46 insertions(+), 9 deletions(-)
       ---
   DIR diff --git a/electrum/gui/qt/installwizard.py b/electrum/gui/qt/installwizard.py
       t@@ -452,7 +452,13 @@ class InstallWizard(QDialog, MessageBoxMixin, BaseWizard):
                return slayout.get_text()
        
            def seed_input(self, title, message, is_seed, options):
       -        slayout = SeedLayout(title=message, is_seed=is_seed, options=options, parent=self)
       +        slayout = SeedLayout(
       +            title=message,
       +            is_seed=is_seed,
       +            options=options,
       +            parent=self,
       +            config=self.config,
       +        )
                self.exec_layout(slayout, title, next_enabled=False)
                return slayout.get_seed(), slayout.is_bip39, slayout.is_ext
        
       t@@ -500,8 +506,14 @@ class InstallWizard(QDialog, MessageBoxMixin, BaseWizard):
        
            @wizard_dialog
            def show_seed_dialog(self, run_next, seed_text):
       -        title =  _("Your wallet generation seed is:")
       -        slayout = SeedLayout(seed=seed_text, title=title, msg=True, options=['ext'])
       +        title = _("Your wallet generation seed is:")
       +        slayout = SeedLayout(
       +            seed=seed_text,
       +            title=title,
       +            msg=True,
       +            options=['ext'],
       +            config=self.config,
       +        )
                self.exec_layout(slayout)
                return slayout.is_ext
        
       t@@ -697,7 +709,13 @@ class InstallWizard(QDialog, MessageBoxMixin, BaseWizard):
                    _("Please share it with your cosigners.")
                ])
                vbox = QVBoxLayout()
       -        layout = SeedLayout(xpub, title=msg, icon=False, for_seed_words=False)
       +        layout = SeedLayout(
       +            xpub,
       +            title=msg,
       +            icon=False,
       +            for_seed_words=False,
       +            config=self.config,
       +        )
                vbox.addLayout(layout.layout())
                self.exec_layout(vbox, _('Master Public Key'))
                return None
   DIR diff --git a/electrum/gui/qt/main_window.py b/electrum/gui/qt/main_window.py
       t@@ -2430,7 +2430,7 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, Logger):
                    self.show_error(repr(e))
                    return
                from .seed_dialog import SeedDialog
       -        d = SeedDialog(self, seed, passphrase)
       +        d = SeedDialog(self, seed, passphrase, config=self.config)
                d.exec_()
        
            def show_qrcode(self, data, title = _("QR code"), parent=None, *,
   DIR diff --git a/electrum/gui/qt/seed_dialog.py b/electrum/gui/qt/seed_dialog.py
       t@@ -94,11 +94,24 @@ class SeedLayout(QVBoxLayout):
                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, for_seed_words=True):
       +    def __init__(
       +            self,
       +            seed=None,
       +            title=None,
       +            icon=True,
       +            msg=None,
       +            options=None,
       +            is_seed=None,
       +            passphrase=None,
       +            parent=None,
       +            for_seed_words=True,
       +            *,
       +            config: 'SimpleConfig',
       +    ):
                QVBoxLayout.__init__(self)
                self.parent = parent
                self.options = options
       +        self.config = config
                if title:
                    self.addWidget(WWLabel(title))
                if seed:  # "read only", we already have the text
       t@@ -238,11 +251,17 @@ class KeysLayout(QVBoxLayout):
        
        class SeedDialog(WindowModalDialog):
        
       -    def __init__(self, parent, seed, passphrase):
       +    def __init__(self, parent, seed, passphrase, *, config: 'SimpleConfig'):
                WindowModalDialog.__init__(self, parent, ('Electrum - ' + _('Seed')))
                self.setMinimumWidth(400)
                vbox = QVBoxLayout(self)
                title =  _("Your wallet generation seed is:")
       -        slayout = SeedLayout(title=title, seed=seed, msg=True, passphrase=passphrase)
       +        slayout = SeedLayout(
       +            title=title,
       +            seed=seed,
       +            msg=True,
       +            passphrase=passphrase,
       +            config=config,
       +        )
                vbox.addLayout(slayout)
                vbox.addLayout(Buttons(CloseButton(self)))