URI: 
       tMerge pull request #3985 from SomberNight/addresses_tab_type_col - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit 26a6fa3082ccfe1336460ddc2db3e550e2a355ea
   DIR parent 2aaf250a4a4094ea52c980e682d666e2ffd6947e
  HTML Author: ThomasV <thomasv@electrum.org>
       Date:   Wed, 28 Feb 2018 09:01:27 +0100
       
       Merge pull request #3985 from SomberNight/addresses_tab_type_col
       
       qt addresses tab: new column for type
       Diffstat:
         M gui/qt/address_list.py              |      38 +++++++++++++++++++------------
         M gui/qt/transaction_dialog.py        |       2 +-
         M gui/qt/util.py                      |       3 +++
         M gui/qt/utxo_list.py                 |       3 ++-
       
       4 files changed, 29 insertions(+), 17 deletions(-)
       ---
   DIR diff --git a/gui/qt/address_list.py b/gui/qt/address_list.py
       t@@ -24,18 +24,19 @@
        # SOFTWARE.
        import webbrowser
        
       -from .util import *
        from electrum.i18n import _
        from electrum.util import block_explorer_URL
        from electrum.plugins import run_hook
        from electrum.bitcoin import is_address
        
       +from .util import *
       +
        
        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):
       -        MyTreeWidget.__init__(self, parent, self.create_menu, [], 1)
       +        MyTreeWidget.__init__(self, parent, self.create_menu, [], 2)
                self.refresh_headers()
                self.setSelectionMode(QAbstractItemView.ExtendedSelection)
                self.show_change = 0
       t@@ -53,7 +54,7 @@ class AddressList(MyTreeWidget):
                return QLabel(_("Filter:")), self.change_button, self.used_button
        
            def refresh_headers(self):
       -        headers = [ _('Address'), _('Label'), _('Balance')]
       +        headers = [_('Type'), _('Address'), _('Label'), _('Balance')]
                fx = self.parent.fx
                if fx and fx.get_fiat_address_config():
                    headers.extend([_(fx.get_currency()+' Balance')])
       t@@ -95,23 +96,30 @@ class AddressList(MyTreeWidget):
                        continue
                    if self.show_used == 3 and not is_used:
                        continue
       -            balance_text = self.parent.format_amount(balance)
       +            balance_text = self.parent.format_amount(balance, whitespaces=True)
                    fx = self.parent.fx
                    if fx and fx.get_fiat_address_config():
                        rate = fx.exchange_rate()
                        fiat_balance = fx.value_str(balance, rate)
       -                address_item = QTreeWidgetItem([address, label, balance_text, fiat_balance, "%d"%num])
       -                address_item.setTextAlignment(3, Qt.AlignRight)
       +                address_item = QTreeWidgetItem(['', address, label, balance_text, fiat_balance, "%d"%num])
       +                address_item.setTextAlignment(4, Qt.AlignRight)
       +                address_item.setFont(4, QFont(MONOSPACE_FONT))
       +            else:
       +                address_item = QTreeWidgetItem(['', address, label, balance_text, "%d"%num])
       +            address_item.setFont(3, QFont(MONOSPACE_FONT))
       +            if self.wallet.is_change(address):
       +                address_item.setText(0, _('change'))
       +                address_item.setBackground(0, ColorScheme.YELLOW.as_color(True))
                    else:
       -                address_item = QTreeWidgetItem([address, label, balance_text, "%d"%num])
       -                address_item.setTextAlignment(2, Qt.AlignRight)
       -            address_item.setFont(0, QFont(MONOSPACE_FONT))
       -            address_item.setData(0, Qt.UserRole, address)
       -            address_item.setData(0, Qt.UserRole+1, True) # label can be edited
       +                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):
       -                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):
       -                address_item.setBackground(0, ColorScheme.RED.as_color(True))
       +                address_item.setBackground(1, ColorScheme.RED.as_color(True))
                    self.addChild(address_item)
                    if address == current_address:
                        self.setCurrentItem(address_item)
       t@@ -122,7 +130,7 @@ class AddressList(MyTreeWidget):
                can_delete = self.wallet.can_delete_address()
                selected = self.selectedItems()
                multi_select = len(selected) > 1
       -        addrs = [item.text(0) for item in selected]
       +        addrs = [item.text(1) for item in selected]
                if not addrs:
                    return
                if not multi_select:
   DIR diff --git a/gui/qt/transaction_dialog.py b/gui/qt/transaction_dialog.py
       t@@ -263,7 +263,7 @@ class TxDialog(QDialog, MessageBoxMixin):
                rec.setBackground(QBrush(ColorScheme.GREEN.as_color(background=True)))
                rec.setToolTip(_("Wallet receive address"))
                chg = QTextCharFormat()
       -        chg.setBackground(QBrush(QColor("yellow")))
       +        chg.setBackground(QBrush(ColorScheme.YELLOW.as_color(background=True)))
                chg.setToolTip(_("Wallet change address"))
        
                def text_format(addr):
   DIR diff --git a/gui/qt/util.py b/gui/qt/util.py
       t@@ -405,6 +405,8 @@ class MyTreeWidget(QTreeWidget):
                self.update_headers(headers)
                self.current_filter = ""
        
       +        self.setRootIsDecorated(False)  # remove left margin
       +
            def update_headers(self, headers):
                self.setColumnCount(len(headers))
                self.setHeaderLabels(headers)
       t@@ -656,6 +658,7 @@ class ColorScheme:
            dark_scheme = False
        
            GREEN = ColorSchemeItem("#117c11", "#8af296")
       +    YELLOW = ColorSchemeItem("#ffff00", "#ffff00")
            RED = ColorSchemeItem("#7c1111", "#f18c8c")
            BLUE = ColorSchemeItem("#123b7c", "#8cb3f2")
            DEFAULT = ColorSchemeItem("black", "white")
   DIR diff --git a/gui/qt/utxo_list.py b/gui/qt/utxo_list.py
       t@@ -46,9 +46,10 @@ class UTXOList(MyTreeWidget):
                    height = x.get('height')
                    name = self.get_name(x)
                    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.setFont(0, QFont(MONOSPACE_FONT))
       +            utxo_item.setFont(2, QFont(MONOSPACE_FONT))
                    utxo_item.setFont(4, QFont(MONOSPACE_FONT))
                    utxo_item.setData(0, Qt.UserRole, name)
                    if self.wallet.is_frozen(address):