URI: 
       tQt history/address tab: defer refreshing while editing (e.g. label) - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit 1ea4e42a96f1dfc8aeb89dc8079cafcf7837e008
   DIR parent caa68e2fe81bd5d9d068393b220db02c5e0ba621
  HTML Author: SomberNight <somber.night@protonmail.com>
       Date:   Wed, 16 Sep 2020 18:26:08 +0200
       
       Qt history/address tab: defer refreshing while editing (e.g. label)
       
       This functionality was originally added in 0371a3dc32350c1923348c216ee2c2f8eee2d4d1,
       but was lost with #4915 in version 3.3.
       
       Diffstat:
         M electrum/gui/qt/util.py             |       8 +++++++-
       
       1 file changed, 7 insertions(+), 1 deletion(-)
       ---
   DIR diff --git a/electrum/gui/qt/util.py b/electrum/gui/qt/util.py
       t@@ -476,6 +476,9 @@ class ElectrumItemDelegate(QStyledItemDelegate):
                self.opened = None
                def on_closeEditor(editor: QLineEdit, hint):
                    self.opened = None
       +            self.tv.is_editor_open = False
       +            if self.tv._pending_update:
       +                self.tv.update()
                def on_commitData(editor: QLineEdit):
                    new_text = editor.text()
                    idx = QModelIndex(self.opened)
       t@@ -489,6 +492,7 @@ class ElectrumItemDelegate(QStyledItemDelegate):
        
            def createEditor(self, parent, option, idx):
                self.opened = QPersistentModelIndex(idx)
       +        self.tv.is_editor_open = True
                return super().createEditor(parent, option, idx)
        
        
       t@@ -517,6 +521,7 @@ class MyTreeView(QTreeView):
                self.editable_columns = editable_columns
                self.setItemDelegate(ElectrumItemDelegate(self))
                self.current_filter = ""
       +        self.is_editor_open = False
        
                self.setRootIsDecorated(False)  # remove left margin
                self.toolbar_shown = False
       t@@ -705,7 +710,8 @@ class MyTreeView(QTreeView):
        
            def maybe_defer_update(self) -> bool:
                """Returns whether we should defer an update/refresh."""
       -        defer = not self.isVisible() and not self._forced_update
       +        defer = (not self._forced_update
       +                 and (not self.isVisible() or self.is_editor_open))
                # side-effect: if we decide to defer update, the state will become stale:
                self._pending_update = defer
                return defer