Browse Source

qt ChannelsList: some clean-up

master
SomberNight 7 years ago committed by ThomasV
parent
commit
3413eb05b9
  1. 34
      electrum/gui/qt/channels_list.py

34
electrum/gui/qt/channels_list.py

@ -1,8 +1,11 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import traceback import traceback
import asyncio import asyncio
from enum import IntEnum
from PyQt5 import QtCore, QtWidgets, QtGui from PyQt5 import QtCore, QtWidgets, QtGui
from PyQt5.QtWidgets import * from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QMenu, QHBoxLayout, QLabel, QVBoxLayout, QGridLayout, QLineEdit
from electrum.util import inv_dict, bh2u, bfh from electrum.util import inv_dict, bh2u, bfh
from electrum.i18n import _ from electrum.i18n import _
@ -13,12 +16,29 @@ from .util import MyTreeView, WindowModalDialog, Buttons, OkButton, CancelButton
from .amountedit import BTCAmountEdit from .amountedit import BTCAmountEdit
from .channel_details import ChannelDetailsDialog from .channel_details import ChannelDetailsDialog
ROLE_CHANNEL_ID = Qt.UserRole
class ChannelsList(MyTreeView): class ChannelsList(MyTreeView):
update_rows = QtCore.pyqtSignal() update_rows = QtCore.pyqtSignal()
update_single_row = QtCore.pyqtSignal(Channel) update_single_row = QtCore.pyqtSignal(Channel)
class Columns(IntEnum):
NODE_ID = 0
LOCAL_BALANCE = 1
REMOTE_BALANCE = 2
CHANNEL_STATUS = 3
headers = {
Columns.NODE_ID: _('Node ID'),
Columns.LOCAL_BALANCE: _('Local'),
Columns.REMOTE_BALANCE: _('Remote'),
Columns.CHANNEL_STATUS: _('Status'),
}
def __init__(self, parent): def __init__(self, parent):
super().__init__(parent, self.create_menu, 0) super().__init__(parent, self.create_menu, stretch_column=self.Columns.NODE_ID)
self.setModel(QtGui.QStandardItemModel(self)) self.setModel(QtGui.QStandardItemModel(self))
self.main_window = parent self.main_window = parent
self.update_rows.connect(self.do_update_rows) self.update_rows.connect(self.do_update_rows)
@ -75,7 +95,7 @@ class ChannelsList(MyTreeView):
item = self.model().itemFromIndex(idx) item = self.model().itemFromIndex(idx)
if not item: if not item:
return return
channel_id = idx.sibling(idx.row(), 0).data(QtCore.Qt.UserRole) channel_id = idx.sibling(idx.row(), self.Columns.NODE_ID).data(ROLE_CHANNEL_ID)
chan = self.lnworker.channels[channel_id] chan = self.lnworker.channels[channel_id]
menu.addAction(_("Details..."), lambda: self.details(channel_id)) menu.addAction(_("Details..."), lambda: self.details(channel_id))
if not chan.is_closed(): if not chan.is_closed():
@ -92,18 +112,18 @@ class ChannelsList(MyTreeView):
@QtCore.pyqtSlot(Channel) @QtCore.pyqtSlot(Channel)
def do_update_single_row(self, chan): def do_update_single_row(self, chan):
for row in range(self.model().rowCount()): for row in range(self.model().rowCount()):
item = self.model().item(row,0) item = self.model().item(row, self.Columns.NODE_ID)
if item.data(QtCore.Qt.UserRole) == chan.channel_id: if item.data(ROLE_CHANNEL_ID) == chan.channel_id:
for column, v in enumerate(self.format_fields(chan)): for column, v in enumerate(self.format_fields(chan)):
self.model().item(row, column).setData(v, QtCore.Qt.DisplayRole) self.model().item(row, column).setData(v, QtCore.Qt.DisplayRole)
@QtCore.pyqtSlot() @QtCore.pyqtSlot()
def do_update_rows(self): def do_update_rows(self):
self.model().clear() self.model().clear()
self.update_headers([_('Node ID'), _('Local'), _('Remote'), _('Status')]) self.update_headers(self.headers)
for chan in self.parent.wallet.lnworker.channels.values(): for chan in self.parent.wallet.lnworker.channels.values():
items = [QtGui.QStandardItem(x) for x in self.format_fields(chan)] items = [QtGui.QStandardItem(x) for x in self.format_fields(chan)]
items[0].setData(chan.channel_id, QtCore.Qt.UserRole) items[self.Columns.NODE_ID].setData(chan.channel_id, ROLE_CHANNEL_ID)
self.model().insertRow(0, items) self.model().insertRow(0, items)
def get_toolbar(self): def get_toolbar(self):

Loading…
Cancel
Save