1
0

delete channel

This commit is contained in:
Sander van Grieken
2022-06-30 22:57:20 +02:00
parent 456b6048ea
commit db9e2ab311
4 changed files with 46 additions and 3 deletions

View File

@@ -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 {

View File

@@ -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)

View File

@@ -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

View File

@@ -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)