Example #1
0
    def wallet_widgets(self, wallet: Wallet):
        usechange_cb = QCheckBox(_('Use change addresses'))
        usechange_cb.setChecked(wallet.get_use_change())
        usechange_cb.setEnabled(app_state.config.is_modifiable('use_change'))
        usechange_cb.setToolTip(
            _('Using a different change key each time improves your privacy by '
              'making it more difficult for others to analyze your transactions.'
              ))

        def on_usechange(state):
            usechange_result = state == Qt.Checked
            if wallet.get_use_change() != usechange_result:
                wallet.set_use_change(usechange_result)
                multiple_cb.setEnabled(wallet.get_use_change())

        usechange_cb.stateChanged.connect(on_usechange)

        multiple_cb = QCheckBox(_('Use multiple change addresses'))
        multiple_cb.setChecked(wallet.get_multiple_change())
        multiple_cb.setEnabled(wallet.get_use_change())
        multiple_cb.setToolTip('\n'.join([
            _('In some cases, use up to 3 change keys in order to break '
              'up large coin amounts and obfuscate the recipient key.'),
            _('This may result in higher transactions fees.')
        ]))

        def on_multiple(state):
            multiple = state == Qt.Checked
            if wallet.get_multiple_change() != multiple:
                wallet.set_multiple_change(multiple)

        multiple_cb.stateChanged.connect(on_multiple)

        return [
            (usechange_cb, ),
            (multiple_cb, ),
        ]
Example #2
0
    def wallet_widgets(self, wallet: Wallet, tab: QWidget) -> None:
        usechange_cb = QCheckBox(_('Use change addresses'))
        usechange_cb.setChecked(wallet.get_use_change())
        usechange_cb.setEnabled(app_state.config.is_modifiable('use_change'))
        usechange_cb.setToolTip(
            _('Using a different change key each time improves your privacy by '
              'making it more difficult for others to analyze your transactions.'
              ))

        def on_usechange(state):
            usechange_result = state == Qt.Checked
            if wallet.get_use_change() != usechange_result:
                wallet.set_use_change(usechange_result)
                multiple_cb.setEnabled(wallet.get_use_change())

        usechange_cb.stateChanged.connect(on_usechange)

        multiple_cb = QCheckBox(_('Use multiple change addresses'))
        multiple_cb.setChecked(wallet.get_multiple_change())
        multiple_cb.setEnabled(wallet.get_use_change())
        multiple_cb.setToolTip('\n'.join([
            _('In some cases, use up to 3 change keys in order to break '
              'up large coin amounts and obfuscate the recipient key.'),
            _('This may result in higher transactions fees.')
        ]))

        def on_multiple(state):
            multiple = state == Qt.Checked
            if wallet.get_multiple_change() != multiple:
                wallet.set_multiple_change(multiple)

        multiple_cb.stateChanged.connect(on_multiple)

        options_box = QGroupBox()
        options_vbox = QVBoxLayout()
        options_box.setLayout(options_vbox)
        options_vbox.addWidget(usechange_cb)
        options_vbox.addWidget(multiple_cb)

        transaction_cache_size = wallet.get_cache_size_for_tx_bytedata()
        # nz_label = HelpLabel(_('Transaction Cache Size (MB)') + ':',
        #     _("This allows setting a per-wallet limit on the amount of transaction data cached "
        #     "in memory. A value of 0 will disable the cache, and setting low values can cause "
        #     "wallet slowness due to continual fetching of transaction data from the database."))
        nz_modifiable = app_state.config.is_modifiable(
            'tx_bytedata_cache_size')
        nz = QSpinBox()
        nz.setAlignment(Qt.AlignRight)
        nz.setMinimum(MINIMUM_TXDATA_CACHE_SIZE_MB)
        nz.setMaximum(MAXIMUM_TXDATA_CACHE_SIZE_MB)
        nz.setValue(transaction_cache_size)
        nz.setEnabled(nz_modifiable)

        def on_nz():
            value = nz.value()
            # This will not resize the cache, as we do not want to be doing it with every
            # change and some changes may be bad to actually put in place.
            wallet.set_cache_size_for_tx_bytedata(value)

        nz.valueChanged.connect(on_nz)

        tx_cache_layout = QHBoxLayout()
        tx_cache_layout.setSpacing(15)
        tx_cache_layout.addWidget(nz)
        tx_cache_layout.addWidget(QLabel(_("MiB")))

        form = FormSectionWidget(minimum_label_width=120)
        form.add_row(_('Options'), options_box, True)
        form.add_row(_('Transaction Cache Size'), tx_cache_layout)

        vbox = QVBoxLayout()
        vbox.addWidget(form)
        vbox.addStretch(1)
        tab.setLayout(vbox)