Browse Source

delete channel

patch-4
Sander van Grieken 3 years ago
parent
commit
db9e2ab311
  1. 27
      electrum/gui/qml/components/ChannelDetails.qml
  2. 8
      electrum/gui/qml/qechanneldetails.py
  3. 13
      electrum/gui/qml/qechannellistmodel.py
  4. 1
      electrum/gui/qml/qetransactionlistmodel.py

27
electrum/gui/qml/components/ChannelDetails.qml

@ -24,7 +24,7 @@ Pane {
text: qsTr('Backup');
enabled: false
onTriggered: {}
//icon.source: '../../icons/wallet.png'
icon.source: '../../icons/file.png'
}
}
MenuItem {
@ -36,7 +36,30 @@ Pane {
var dialog = closechannel.createObject(root, { 'channelid': channelid })
dialog.open()
}
//icon.source: '../../icons/wallet.png'
icon.source: '../../icons/closebutton.png'
}
}
MenuItem {
icon.color: 'transparent'
action: Action {
text: qsTr('Delete channel');
enabled: channeldetails.canDelete
onTriggered: {
var dialog = app.messageDialog.createObject(root,
{
'text': qsTr('Are you sure you want to delete this channel? This will purge associated transactions from your wallet history.'),
'yesno': true
}
)
dialog.yesClicked.connect(function() {
channeldetails.deleteChannel()
app.stack.pop()
Daemon.currentWallet.historyModel.init_model() // needed here?
Daemon.currentWallet.channelModel.remove_channel(channelid)
})
dialog.open()
}
icon.source: '../../icons/delete.png'
}
}
MenuItem {

8
electrum/gui/qml/qechanneldetails.py

@ -134,6 +134,10 @@ class QEChannelDetails(QObject):
def canForceClose(self):
return ChanCloseOption.LOCAL_FCLOSE in self._channel.get_close_options()
@pyqtProperty(bool, notify=channelChanged)
def canDelete(self):
return self._channel.can_be_deleted()
@pyqtProperty(str, notify=channelChanged)
def message_force_close(self, notify=channelChanged):
return _(messages.MSG_REQUEST_FORCE_CLOSE)
@ -173,3 +177,7 @@ class QEChannelDetails(QObject):
loop = self._wallet.wallet.network.asyncio_loop
coro = do_close(closetype, self._channel.channel_id)
asyncio.run_coroutine_threadsafe(coro, loop)
@pyqtSlot()
def deleteChannel(self):
self._wallet.wallet.lnworker.remove_channel(self._channel.channel_id)

13
electrum/gui/qml/qechannellistmodel.py

@ -149,4 +149,15 @@ class QEChannelListModel(QAbstractListModel):
self.beginInsertRows(QModelIndex(), 0, 0)
self.channels.insert(0,item)
self.endInsertRows()
self.numOpenChannelsChanged.emit()
@pyqtSlot(str)
def remove_channel(self, cid):
i = 0
for channel in self.channels:
if cid == channel['cid']:
self._logger.debug(cid)
self.beginRemoveRows(QModelIndex(), i, i)
self.channels.remove(channel)
self.endRemoveRows()
return
i = i + 1

1
electrum/gui/qml/qetransactionlistmodel.py

@ -102,6 +102,7 @@ class QETransactionListModel(QAbstractListModel):
return date.strftime(dfmt[section])
# initial model data
@pyqtSlot()
def init_model(self):
history = self.wallet.get_full_history(onchain_domain=self.onchain_domain,
include_lightning=self.include_lightning)

Loading…
Cancel
Save