diff --git a/electrum/gui/qt/channels_list.py b/electrum/gui/qt/channels_list.py index e8f1434a2..245be0221 100644 --- a/electrum/gui/qt/channels_list.py +++ b/electrum/gui/qt/channels_list.py @@ -234,30 +234,10 @@ class ChannelsList(MyTreeView): return chan = self.lnworker.channels[channel_id] menu.addAction(_("Details..."), lambda: self.parent.show_channel(channel_id)) - cc = self.add_copy_menu(menu, idx) - cc.addAction(_("Node ID"), lambda: self.place_text_on_clipboard( - chan.node_id.hex(), title=_("Node ID"))) - cc.addAction(_("Long Channel ID"), lambda: self.place_text_on_clipboard( - channel_id.hex(), title=_("Long Channel ID"))) - if not chan.is_closed(): - if not chan.is_frozen_for_sending(): - menu.addAction(_("Freeze (for sending)"), lambda: self.freeze_channel_for_sending(chan, True)) # - else: - menu.addAction(_("Unfreeze (for sending)"), lambda: self.freeze_channel_for_sending(chan, False)) - if not chan.is_frozen_for_receiving(): - menu.addAction(_("Freeze (for receiving)"), lambda: chan.set_frozen_for_receiving(True)) - else: - menu.addAction(_("Unfreeze (for receiving)"), lambda: chan.set_frozen_for_receiving(False)) - funding_tx = self.parent.wallet.db.get_transaction(chan.funding_outpoint.txid) if funding_tx: menu.addAction(_("View funding transaction"), lambda: self.parent.show_transaction(funding_tx)) - if not chan.is_closed(): - menu.addSeparator() - if chan.peer_state == PeerState.GOOD: - menu.addAction(_("Close channel"), lambda: self.close_channel(channel_id)) - menu.addAction(_("Force-close channel"), lambda: self.force_close(channel_id)) - else: + if chan.is_closed(): item = chan.get_closing_height() if item: txid, height, timestamp = item @@ -265,6 +245,27 @@ class ChannelsList(MyTreeView): if closing_tx: menu.addAction(_("View closing transaction"), lambda: self.parent.show_transaction(closing_tx)) menu.addSeparator() + + cc = self.add_copy_menu(menu, idx) + cc.addAction(_("Node ID"), lambda: self.place_text_on_clipboard( + chan.node_id.hex(), title=_("Node ID"))) + cc.addAction(_("Long Channel ID"), lambda: self.place_text_on_clipboard( + channel_id.hex(), title=_("Long Channel ID"))) + if not chan.is_closed(): + fm = menu.addMenu(_("Freeze")) + if not chan.is_frozen_for_sending(): + fm.addAction(_("Freeze for sending"), lambda: self.freeze_channel_for_sending(chan, True)) + else: + fm.addAction(_("Unfreeze for sending"), lambda: self.freeze_channel_for_sending(chan, False)) + if not chan.is_frozen_for_receiving(): + fm.addAction(_("Freeze for receiving"), lambda: chan.set_frozen_for_receiving(True)) + else: + fm.addAction(_("Unfreeze for receiving"), lambda: chan.set_frozen_for_receiving(False)) + if not chan.is_closed(): + cm = menu.addMenu(_("Close")) + if chan.peer_state == PeerState.GOOD: + cm.addAction(_("Cooperative close"), lambda: self.close_channel(channel_id)) + cm.addAction(_("Force-close"), lambda: self.force_close(channel_id)) menu.addAction(_("Export backup"), lambda: self.export_channel_backup(channel_id)) if chan.can_be_deleted(): menu.addSeparator() diff --git a/electrum/gui/qt/util.py b/electrum/gui/qt/util.py index c9638a8b6..fbf2dcf2c 100644 --- a/electrum/gui/qt/util.py +++ b/electrum/gui/qt/util.py @@ -757,7 +757,7 @@ class MyTreeView(QTreeView): self.show_toolbar(not self.toolbar_shown, config) def add_copy_menu(self, menu: QMenu, idx) -> QMenu: - cc = menu.addMenu(_("Copy")) + cc = menu.addMenu(_("Copy Column")) for column in self.Columns: column_title = self.original_model().horizontalHeaderItem(column).text() if not column_title: