URI: 
       tMerge pull request #5913 from roth-a/master - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit e876cb0d931fc5fe9fd7763d15aa59112cfdd357
   DIR parent aa51df0a1a49115ddc82b9ef7c92b3d2a846a8a6
  HTML Author: ThomasV <thomasv@electrum.org>
       Date:   Sat,  1 Feb 2020 19:38:22 +0100
       
       Merge pull request #5913 from roth-a/master
       
       Kivy: Adding address coloring to AddressPopup (Address Details)
       Diffstat:
         M electrum/gui/kivy/main.kv           |       3 ++-
         M electrum/gui/kivy/uix/dialogs/addr… |       6 ++++++
         M electrum/gui/kivy/uix/dialogs/tx_d… |      25 ++-----------------------
         A electrum/gui/kivy/util.py           |      23 +++++++++++++++++++++++
       
       4 files changed, 33 insertions(+), 24 deletions(-)
       ---
   DIR diff --git a/electrum/gui/kivy/main.kv b/electrum/gui/kivy/main.kv
       t@@ -151,6 +151,7 @@
            text: self.data if self.data else _('Tap to show')
            touched: False
            padding: '10dp', '10dp'
       +    background_color: .3, .3, .3, 1
            on_touch_down:
                touch = args[1]
                touched = bool(self.collide_point(*touch.pos))
       t@@ -158,7 +159,7 @@
                if touched: self.touched = True
            canvas.before:
                Color:
       -            rgb: .3, .3, .3
       +            rgba: root.background_color
                Rectangle:
                    size: self.size
                    pos: self.pos
   DIR diff --git a/electrum/gui/kivy/uix/dialogs/addresses.py b/electrum/gui/kivy/uix/dialogs/addresses.py
       t@@ -8,6 +8,7 @@ from decimal import Decimal
        from kivy.uix.popup import Popup
        
        from electrum.gui.kivy.i18n import _
       +from ...util import address_colors
        
        if TYPE_CHECKING:
            from ...main_window import ElectrumWindow
       t@@ -111,6 +112,8 @@ Builder.load_string('''
            status: ''
            script_type: ''
            pk: ''
       +    address_color: 1, 1, 1, 1
       +    address_background_color: 0.3, 0.3, 0.3, 1
            BoxLayout:
                orientation: 'vertical'
                ScrollView:
       t@@ -123,6 +126,8 @@ Builder.load_string('''
                        TopLabel:
                            text: _('Address')
                        RefLabel:
       +                    color: root.address_color
       +                    background_color: root.address_background_color
                            data: root.address
                            name: _('Address')
                        GridLayout:
       t@@ -175,6 +180,7 @@ class AddressPopup(Popup):
                self.status = status
                self.script_type = self.app.wallet.get_txin_type(self.address)
                self.balance = self.app.format_amount_and_units(balance)
       +        self.address_color, self.address_background_color = address_colors(self.app.wallet, address)
        
            def receive_at(self):
                self.dismiss()
   DIR diff --git a/electrum/gui/kivy/uix/dialogs/tx_dialog.py b/electrum/gui/kivy/uix/dialogs/tx_dialog.py
       t@@ -10,7 +10,6 @@ from kivy.clock import Clock
        from kivy.uix.label import Label
        from kivy.uix.dropdown import DropDown
        from kivy.uix.button import Button
       -from kivy.utils import get_color_from_hex
        
        from .question import Question
        from electrum.gui.kivy.i18n import _
       t@@ -19,6 +18,7 @@ from electrum.util import InvalidPassword
        from electrum.address_synchronizer import TX_HEIGHT_LOCAL
        from electrum.wallet import CannotBumpFee
        from electrum.transaction import Transaction, PartialTransaction
       +from ...util import address_colors
        
        if TYPE_CHECKING:
            from ...main_window import ElectrumWindow
       t@@ -183,29 +183,8 @@ class TxDialog(Factory.Popup):
                    self.feerate_str = _('unknown')
                self.ids.output_list.update(self.tx.outputs())
        
       -        def text_format(addr):
       -            """
       -            Chooses the appropriate text color and background color to 
       -            mark receiving, change and billing addresses.
       -
       -            Returns: color, background_color
       -            """
       -            
       -            # modified colors (textcolor, background_color) from electrum/gui/qt/util.py
       -            GREEN = ("#000000", "#8af296")
       -            YELLOW = ("#000000", "#ffff00")
       -            BLUE = ("#000000", "#8cb3f2")
       -            DEFAULT = ('#ffffff', '#4c4c4c')
       -
       -            colors = DEFAULT
       -            if self.wallet.is_mine(addr):
       -                colors = YELLOW if self.wallet.is_change(addr) else GREEN
       -            elif self.wallet.is_billing_address(addr):
       -                colors = BLUE
       -            return (get_color_from_hex(color) for color in colors)
       -
                for dict_entry in self.ids.output_list.data:
       -            dict_entry['color'], dict_entry['background_color'] = text_format(dict_entry['address'])
       +            dict_entry['color'], dict_entry['background_color'] = address_colors(self.wallet, dict_entry['address'])
        
                self.is_local_tx = tx_mined_status.height == TX_HEIGHT_LOCAL
                self.update_action_button()
   DIR diff --git a/electrum/gui/kivy/util.py b/electrum/gui/kivy/util.py
       t@@ -0,0 +1,23 @@
       +from kivy.utils import get_color_from_hex
       +
       +
       +def address_colors(wallet, addr):
       +    """
       +    Chooses the appropriate text color and background color to 
       +    mark receiving, change and billing addresses.
       +
       +    Returns: color, background_color
       +    """
       +    
       +    # modified colors (textcolor, background_color) from electrum/gui/qt/util.py
       +    GREEN = ("#000000", "#8af296")
       +    YELLOW = ("#000000", "#ffff00")
       +    BLUE = ("#000000", "#8cb3f2")
       +    DEFAULT = ('#ffffff', '#4c4c4c')
       +
       +    colors = DEFAULT
       +    if wallet.is_mine(addr):
       +        colors = YELLOW if wallet.is_change(addr) else GREEN
       +    elif wallet.is_billing_address(addr):
       +        colors = BLUE
       +    return (get_color_from_hex(color) for color in colors)