mirror of
https://github.com/LBRYFoundation/LBRY-Vault.git
synced 2025-09-12 05:29:52 +00:00
Merge pull request #3985 from SomberNight/addresses_tab_type_col
qt addresses tab: new column for type
This commit is contained in:
commit
26a6fa3082
4 changed files with 29 additions and 17 deletions
|
@ -24,18 +24,19 @@
|
||||||
# SOFTWARE.
|
# SOFTWARE.
|
||||||
import webbrowser
|
import webbrowser
|
||||||
|
|
||||||
from .util import *
|
|
||||||
from electrum.i18n import _
|
from electrum.i18n import _
|
||||||
from electrum.util import block_explorer_URL
|
from electrum.util import block_explorer_URL
|
||||||
from electrum.plugins import run_hook
|
from electrum.plugins import run_hook
|
||||||
from electrum.bitcoin import is_address
|
from electrum.bitcoin import is_address
|
||||||
|
|
||||||
|
from .util import *
|
||||||
|
|
||||||
|
|
||||||
class AddressList(MyTreeWidget):
|
class AddressList(MyTreeWidget):
|
||||||
filter_columns = [0, 1, 2] # Address, Label, Balance
|
filter_columns = [0, 1, 2, 3] # Type, Address, Label, Balance
|
||||||
|
|
||||||
def __init__(self, parent=None):
|
def __init__(self, parent=None):
|
||||||
MyTreeWidget.__init__(self, parent, self.create_menu, [], 1)
|
MyTreeWidget.__init__(self, parent, self.create_menu, [], 2)
|
||||||
self.refresh_headers()
|
self.refresh_headers()
|
||||||
self.setSelectionMode(QAbstractItemView.ExtendedSelection)
|
self.setSelectionMode(QAbstractItemView.ExtendedSelection)
|
||||||
self.show_change = 0
|
self.show_change = 0
|
||||||
|
@ -53,7 +54,7 @@ class AddressList(MyTreeWidget):
|
||||||
return QLabel(_("Filter:")), self.change_button, self.used_button
|
return QLabel(_("Filter:")), self.change_button, self.used_button
|
||||||
|
|
||||||
def refresh_headers(self):
|
def refresh_headers(self):
|
||||||
headers = [ _('Address'), _('Label'), _('Balance')]
|
headers = [_('Type'), _('Address'), _('Label'), _('Balance')]
|
||||||
fx = self.parent.fx
|
fx = self.parent.fx
|
||||||
if fx and fx.get_fiat_address_config():
|
if fx and fx.get_fiat_address_config():
|
||||||
headers.extend([_(fx.get_currency()+' Balance')])
|
headers.extend([_(fx.get_currency()+' Balance')])
|
||||||
|
@ -95,23 +96,30 @@ class AddressList(MyTreeWidget):
|
||||||
continue
|
continue
|
||||||
if self.show_used == 3 and not is_used:
|
if self.show_used == 3 and not is_used:
|
||||||
continue
|
continue
|
||||||
balance_text = self.parent.format_amount(balance)
|
balance_text = self.parent.format_amount(balance, whitespaces=True)
|
||||||
fx = self.parent.fx
|
fx = self.parent.fx
|
||||||
if fx and fx.get_fiat_address_config():
|
if fx and fx.get_fiat_address_config():
|
||||||
rate = fx.exchange_rate()
|
rate = fx.exchange_rate()
|
||||||
fiat_balance = fx.value_str(balance, rate)
|
fiat_balance = fx.value_str(balance, rate)
|
||||||
address_item = QTreeWidgetItem([address, label, balance_text, fiat_balance, "%d"%num])
|
address_item = QTreeWidgetItem(['', address, label, balance_text, fiat_balance, "%d"%num])
|
||||||
address_item.setTextAlignment(3, Qt.AlignRight)
|
address_item.setTextAlignment(4, Qt.AlignRight)
|
||||||
|
address_item.setFont(4, QFont(MONOSPACE_FONT))
|
||||||
else:
|
else:
|
||||||
address_item = QTreeWidgetItem([address, label, balance_text, "%d"%num])
|
address_item = QTreeWidgetItem(['', address, label, balance_text, "%d"%num])
|
||||||
address_item.setTextAlignment(2, Qt.AlignRight)
|
address_item.setFont(3, QFont(MONOSPACE_FONT))
|
||||||
address_item.setFont(0, QFont(MONOSPACE_FONT))
|
if self.wallet.is_change(address):
|
||||||
address_item.setData(0, Qt.UserRole, address)
|
address_item.setText(0, _('change'))
|
||||||
address_item.setData(0, Qt.UserRole+1, True) # label can be edited
|
address_item.setBackground(0, ColorScheme.YELLOW.as_color(True))
|
||||||
|
else:
|
||||||
|
address_item.setText(0, _('receiving'))
|
||||||
|
address_item.setBackground(0, ColorScheme.GREEN.as_color(True))
|
||||||
|
address_item.setFont(1, QFont(MONOSPACE_FONT))
|
||||||
|
address_item.setData(1, Qt.UserRole, address)
|
||||||
|
address_item.setData(1, Qt.UserRole+1, True) # label can be edited
|
||||||
if self.wallet.is_frozen(address):
|
if self.wallet.is_frozen(address):
|
||||||
address_item.setBackground(0, ColorScheme.BLUE.as_color(True))
|
address_item.setBackground(1, ColorScheme.BLUE.as_color(True))
|
||||||
if self.wallet.is_beyond_limit(address):
|
if self.wallet.is_beyond_limit(address):
|
||||||
address_item.setBackground(0, ColorScheme.RED.as_color(True))
|
address_item.setBackground(1, ColorScheme.RED.as_color(True))
|
||||||
self.addChild(address_item)
|
self.addChild(address_item)
|
||||||
if address == current_address:
|
if address == current_address:
|
||||||
self.setCurrentItem(address_item)
|
self.setCurrentItem(address_item)
|
||||||
|
@ -122,7 +130,7 @@ class AddressList(MyTreeWidget):
|
||||||
can_delete = self.wallet.can_delete_address()
|
can_delete = self.wallet.can_delete_address()
|
||||||
selected = self.selectedItems()
|
selected = self.selectedItems()
|
||||||
multi_select = len(selected) > 1
|
multi_select = len(selected) > 1
|
||||||
addrs = [item.text(0) for item in selected]
|
addrs = [item.text(1) for item in selected]
|
||||||
if not addrs:
|
if not addrs:
|
||||||
return
|
return
|
||||||
if not multi_select:
|
if not multi_select:
|
||||||
|
|
|
@ -263,7 +263,7 @@ class TxDialog(QDialog, MessageBoxMixin):
|
||||||
rec.setBackground(QBrush(ColorScheme.GREEN.as_color(background=True)))
|
rec.setBackground(QBrush(ColorScheme.GREEN.as_color(background=True)))
|
||||||
rec.setToolTip(_("Wallet receive address"))
|
rec.setToolTip(_("Wallet receive address"))
|
||||||
chg = QTextCharFormat()
|
chg = QTextCharFormat()
|
||||||
chg.setBackground(QBrush(QColor("yellow")))
|
chg.setBackground(QBrush(ColorScheme.YELLOW.as_color(background=True)))
|
||||||
chg.setToolTip(_("Wallet change address"))
|
chg.setToolTip(_("Wallet change address"))
|
||||||
|
|
||||||
def text_format(addr):
|
def text_format(addr):
|
||||||
|
|
|
@ -405,6 +405,8 @@ class MyTreeWidget(QTreeWidget):
|
||||||
self.update_headers(headers)
|
self.update_headers(headers)
|
||||||
self.current_filter = ""
|
self.current_filter = ""
|
||||||
|
|
||||||
|
self.setRootIsDecorated(False) # remove left margin
|
||||||
|
|
||||||
def update_headers(self, headers):
|
def update_headers(self, headers):
|
||||||
self.setColumnCount(len(headers))
|
self.setColumnCount(len(headers))
|
||||||
self.setHeaderLabels(headers)
|
self.setHeaderLabels(headers)
|
||||||
|
@ -656,6 +658,7 @@ class ColorScheme:
|
||||||
dark_scheme = False
|
dark_scheme = False
|
||||||
|
|
||||||
GREEN = ColorSchemeItem("#117c11", "#8af296")
|
GREEN = ColorSchemeItem("#117c11", "#8af296")
|
||||||
|
YELLOW = ColorSchemeItem("#ffff00", "#ffff00")
|
||||||
RED = ColorSchemeItem("#7c1111", "#f18c8c")
|
RED = ColorSchemeItem("#7c1111", "#f18c8c")
|
||||||
BLUE = ColorSchemeItem("#123b7c", "#8cb3f2")
|
BLUE = ColorSchemeItem("#123b7c", "#8cb3f2")
|
||||||
DEFAULT = ColorSchemeItem("black", "white")
|
DEFAULT = ColorSchemeItem("black", "white")
|
||||||
|
|
|
@ -46,9 +46,10 @@ class UTXOList(MyTreeWidget):
|
||||||
height = x.get('height')
|
height = x.get('height')
|
||||||
name = self.get_name(x)
|
name = self.get_name(x)
|
||||||
label = self.wallet.get_label(x.get('prevout_hash'))
|
label = self.wallet.get_label(x.get('prevout_hash'))
|
||||||
amount = self.parent.format_amount(x['value'])
|
amount = self.parent.format_amount(x['value'], whitespaces=True)
|
||||||
utxo_item = QTreeWidgetItem([address, label, amount, '%d'%height, name[0:10] + '...' + name[-2:]])
|
utxo_item = QTreeWidgetItem([address, label, amount, '%d'%height, name[0:10] + '...' + name[-2:]])
|
||||||
utxo_item.setFont(0, QFont(MONOSPACE_FONT))
|
utxo_item.setFont(0, QFont(MONOSPACE_FONT))
|
||||||
|
utxo_item.setFont(2, QFont(MONOSPACE_FONT))
|
||||||
utxo_item.setFont(4, QFont(MONOSPACE_FONT))
|
utxo_item.setFont(4, QFont(MONOSPACE_FONT))
|
||||||
utxo_item.setData(0, Qt.UserRole, name)
|
utxo_item.setData(0, Qt.UserRole, name)
|
||||||
if self.wallet.is_frozen(address):
|
if self.wallet.is_frozen(address):
|
||||||
|
|
Loading…
Add table
Reference in a new issue