diff --git a/electrum/gui/qt/channels_list.py b/electrum/gui/qt/channels_list.py index 70514bdbfd8..c62d49c5a93 100644 --- a/electrum/gui/qt/channels_list.py +++ b/electrum/gui/qt/channels_list.py @@ -368,7 +368,11 @@ def create_toolbar(self, config): # and maybe add item "main_window.init_lightning_dialog()" when applicable menu.setEnabled(self.wallet.has_lightning()) self.new_channel_button = EnterButton(_('New Channel'), self.main_window.new_channel_dialog) - self.new_channel_button.setEnabled(self.wallet.can_have_lightning()) + if not self.wallet.can_have_lightning(): + self.new_channel_button.setEnabled(False) + self.new_channel_button.setToolTip(_("Lightning is not available for this wallet.")) + else: + self.new_channel_button.setToolTip(_("Open a channel to send payments over the Lightning network.")) toolbar.insertWidget(2, self.new_channel_button) return toolbar diff --git a/electrum/gui/qt/confirm_tx_dialog.py b/electrum/gui/qt/confirm_tx_dialog.py index 3961c09014b..5456fa04d95 100644 --- a/electrum/gui/qt/confirm_tx_dialog.py +++ b/electrum/gui/qt/confirm_tx_dialog.py @@ -303,7 +303,8 @@ def update_tab_visibility(self): # always show onchain payment tab self.tab_widget.addTab(self.onchain_tab, _('Onchain Transaction')) - allow_swaps = self.allow_preview and self.payee_outputs # allow_preview is false for ln channel opening txs + # allow_preview is false for ln channel opening txs + allow_swaps = self.allow_preview and self.payee_outputs and self.swap_manager if self.config.WALLET_ENABLE_SUBMARINE_PAYMENTS and allow_swaps: i = self.tab_widget.addTab(self.submarine_payment_tab, _('Submarine Payment')) tooltip = self.config.cv.WALLET_ENABLE_SUBMARINE_PAYMENTS.get_long_desc() @@ -499,8 +500,23 @@ def cb(): self.resize_to_fit_content() self.pref_menu.addConfig(self.config.cv.GUI_QT_TX_EDITOR_SHOW_LOCKTIME, callback=cb) self.pref_menu.addSeparator() - self.pref_menu.addConfig(self.config.cv.WALLET_SEND_CHANGE_TO_LIGHTNING, callback=self.trigger_update) - self.pref_menu.addConfig(self.config.cv.WALLET_ENABLE_SUBMARINE_PAYMENTS, callback=self.update_tab_visibility) + can_have_lightning = self.wallet.can_have_lightning() + send_ch_to_ln = self.pref_menu.addConfig( + self.config.cv.WALLET_SEND_CHANGE_TO_LIGHTNING, + callback=self.trigger_update, + checked=False if not can_have_lightning else None, + ) + sub_payments = self.pref_menu.addConfig( + self.config.cv.WALLET_ENABLE_SUBMARINE_PAYMENTS, + callback=self.update_tab_visibility, + checked=False if not can_have_lightning else None, + ) + if not can_have_lightning: # disable the buttons and override tooltip + ln_unavailable_msg = _("Not available for this wallet.") \ + + "\n" + _("Requires a wallet with Lightning network support.") + for ln_conf in (send_ch_to_ln, sub_payments): + ln_conf.setEnabled(False) + ln_conf.setToolTip(ln_unavailable_msg) self.pref_menu.addToggle( _('Use change addresses'), self.toggle_use_change, @@ -523,6 +539,8 @@ def cb(): self.pref_menu.addConfig(self.config.cv.WALLET_COIN_CHOOSER_OUTPUT_ROUNDING, callback=self.trigger_update) self.pref_button = QToolButton() self.pref_button.setIcon(read_QIcon("preferences.png")) + self.pref_button.setText(_('Tools')) + self.pref_button.setToolButtonStyle(Qt.ToolButtonStyle.ToolButtonTextBesideIcon) self.pref_button.setMenu(self.pref_menu) self.pref_button.setPopupMode(QToolButton.ToolButtonPopupMode.InstantPopup) self.pref_button.setFocusPolicy(Qt.FocusPolicy.NoFocus)