From d3c241db4c1171584cf4c7486cf1504631429ab0 Mon Sep 17 00:00:00 2001 From: SomberNight Date: Mon, 13 Mar 2023 16:12:50 +0000 Subject: [PATCH] qt: MyTreeView: use enum.auto() in Columns enum --- electrum/gui/qt/address_list.py | 15 ++++++++------- electrum/gui/qt/channels_list.py | 20 ++++++++++---------- electrum/gui/qt/contact_list.py | 8 ++++---- electrum/gui/qt/invoice_list.py | 12 ++++++------ electrum/gui/qt/request_list.py | 16 ++++++++-------- electrum/gui/qt/util.py | 7 +++++++ electrum/gui/qt/utxo_list.py | 14 +++++++------- 7 files changed, 50 insertions(+), 42 deletions(-) diff --git a/electrum/gui/qt/address_list.py b/electrum/gui/qt/address_list.py index e869ddfd5..cbcf3c47b 100644 --- a/electrum/gui/qt/address_list.py +++ b/electrum/gui/qt/address_list.py @@ -23,6 +23,7 @@ # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. +import enum from enum import IntEnum from PyQt5.QtCore import Qt, QPersistentModelIndex, QModelIndex @@ -70,13 +71,13 @@ class AddressTypeFilter(IntEnum): class AddressList(MyTreeView): - class Columns(IntEnum): - TYPE = 0 - ADDRESS = 1 - LABEL = 2 - COIN_BALANCE = 3 - FIAT_BALANCE = 4 - NUM_TXS = 5 + class Columns(MyTreeView.BaseColumnsEnum): + TYPE = enum.auto() + ADDRESS = enum.auto() + LABEL = enum.auto() + COIN_BALANCE = enum.auto() + FIAT_BALANCE = enum.auto() + NUM_TXS = enum.auto() filter_columns = [Columns.TYPE, Columns.ADDRESS, Columns.LABEL, Columns.COIN_BALANCE] diff --git a/electrum/gui/qt/channels_list.py b/electrum/gui/qt/channels_list.py index 81d2515ef..2fca083ff 100644 --- a/electrum/gui/qt/channels_list.py +++ b/electrum/gui/qt/channels_list.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- import traceback -from enum import IntEnum +import enum from typing import Sequence, Optional, Dict from abc import abstractmethod, ABC @@ -33,15 +33,15 @@ class ChannelsList(MyTreeView): update_single_row = QtCore.pyqtSignal(Abstract_Wallet, AbstractChannel) gossip_db_loaded = QtCore.pyqtSignal() - class Columns(IntEnum): - FEATURES = 0 - SHORT_CHANID = 1 - NODE_ALIAS = 2 - CAPACITY = 3 - LOCAL_BALANCE = 4 - REMOTE_BALANCE = 5 - CHANNEL_STATUS = 6 - LONG_CHANID = 7 + class Columns(MyTreeView.BaseColumnsEnum): + FEATURES = enum.auto() + SHORT_CHANID = enum.auto() + NODE_ALIAS = enum.auto() + CAPACITY = enum.auto() + LOCAL_BALANCE = enum.auto() + REMOTE_BALANCE = enum.auto() + CHANNEL_STATUS = enum.auto() + LONG_CHANID = enum.auto() headers = { Columns.SHORT_CHANID: _('Short Channel ID'), diff --git a/electrum/gui/qt/contact_list.py b/electrum/gui/qt/contact_list.py index 446f5e5a2..291461f66 100644 --- a/electrum/gui/qt/contact_list.py +++ b/electrum/gui/qt/contact_list.py @@ -23,7 +23,7 @@ # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. -from enum import IntEnum +import enum from PyQt5.QtGui import QStandardItemModel, QStandardItem from PyQt5.QtCore import Qt, QPersistentModelIndex, QModelIndex @@ -39,9 +39,9 @@ from .util import MyTreeView, webopen class ContactList(MyTreeView): - class Columns(IntEnum): - NAME = 0 - ADDRESS = 1 + class Columns(MyTreeView.BaseColumnsEnum): + NAME = enum.auto() + ADDRESS = enum.auto() headers = { Columns.NAME: _('Name'), diff --git a/electrum/gui/qt/invoice_list.py b/electrum/gui/qt/invoice_list.py index 87abf84e3..f1d6078eb 100644 --- a/electrum/gui/qt/invoice_list.py +++ b/electrum/gui/qt/invoice_list.py @@ -23,7 +23,7 @@ # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. -from enum import IntEnum +import enum from typing import Sequence, TYPE_CHECKING from PyQt5.QtCore import Qt, QItemSelectionModel @@ -53,11 +53,11 @@ ROLE_SORT_ORDER = Qt.UserRole + 2 class InvoiceList(MyTreeView): key_role = ROLE_REQUEST_ID - class Columns(IntEnum): - DATE = 0 - DESCRIPTION = 1 - AMOUNT = 2 - STATUS = 3 + class Columns(MyTreeView.BaseColumnsEnum): + DATE = enum.auto() + DESCRIPTION = enum.auto() + AMOUNT = enum.auto() + STATUS = enum.auto() headers = { Columns.DATE: _('Date'), diff --git a/electrum/gui/qt/request_list.py b/electrum/gui/qt/request_list.py index 49cead064..8fe5a7898 100644 --- a/electrum/gui/qt/request_list.py +++ b/electrum/gui/qt/request_list.py @@ -23,7 +23,7 @@ # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. -from enum import IntEnum +import enum from typing import Optional, TYPE_CHECKING from PyQt5.QtGui import QStandardItemModel, QStandardItem @@ -50,13 +50,13 @@ ROLE_SORT_ORDER = Qt.UserRole + 2 class RequestList(MyTreeView): key_role = ROLE_KEY - class Columns(IntEnum): - DATE = 0 - DESCRIPTION = 1 - AMOUNT = 2 - STATUS = 3 - ADDRESS = 4 - LN_RHASH = 5 + class Columns(MyTreeView.BaseColumnsEnum): + DATE = enum.auto() + DESCRIPTION = enum.auto() + AMOUNT = enum.auto() + STATUS = enum.auto() + ADDRESS = enum.auto() + LN_RHASH = enum.auto() headers = { Columns.DATE: _('Date'), diff --git a/electrum/gui/qt/util.py b/electrum/gui/qt/util.py index 2b7e267e2..dfc726929 100644 --- a/electrum/gui/qt/util.py +++ b/electrum/gui/qt/util.py @@ -1,4 +1,5 @@ import asyncio +import enum import os.path import time import sys @@ -617,6 +618,12 @@ class MyTreeView(QTreeView): filter_columns: Iterable[int] + class BaseColumnsEnum(enum.IntEnum): + @staticmethod + def _generate_next_value_(name: str, start: int, count: int, last_values): + # this is overridden to get a 0-based counter + return count + def __init__(self, parent: 'ElectrumWindow', create_menu, *, stretch_column=None, editable_columns=None): super().__init__(parent) diff --git a/electrum/gui/qt/utxo_list.py b/electrum/gui/qt/utxo_list.py index f0a00cfa8..635ee09c3 100644 --- a/electrum/gui/qt/utxo_list.py +++ b/electrum/gui/qt/utxo_list.py @@ -24,7 +24,7 @@ # SOFTWARE. from typing import Optional, List, Dict, Sequence, Set -from enum import IntEnum +import enum import copy from PyQt5.QtCore import Qt @@ -44,12 +44,12 @@ class UTXOList(MyTreeView): _spend_set: Set[str] # coins selected by the user to spend from _utxo_dict: Dict[str, PartialTxInput] # coin name -> coin - class Columns(IntEnum): - OUTPOINT = 0 - ADDRESS = 1 - LABEL = 2 - AMOUNT = 3 - PARENTS = 4 + class Columns(MyTreeView.BaseColumnsEnum): + OUTPOINT = enum.auto() + ADDRESS = enum.auto() + LABEL = enum.auto() + AMOUNT = enum.auto() + PARENTS = enum.auto() headers = { Columns.OUTPOINT: _('Output point'),