forked from bitcoinafterlife/bal-electrum-plugin
Compare commits
1 Commits
main
...
fix/balbui
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f6b5738dfc |
40
qt.py
40
qt.py
@@ -2085,6 +2085,14 @@ class BalBuildWillDialog(BalDialog):
|
|||||||
self.setMinimumWidth(600)
|
self.setMinimumWidth(600)
|
||||||
self.setMinimumHeight(100)
|
self.setMinimumHeight(100)
|
||||||
self.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Preferred)
|
self.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Preferred)
|
||||||
|
|
||||||
|
# Coda per i messaggi (thread-safe)
|
||||||
|
self._message_queue = []
|
||||||
|
self._message_timer = QTimer(self)
|
||||||
|
self._message_timer.setSingleShot(True)
|
||||||
|
self._message_timer.setInterval(50) # Debounce: 50ms
|
||||||
|
self._message_timer.timeout.connect(self._process_message_queue)
|
||||||
|
|
||||||
self.labels = []
|
self.labels = []
|
||||||
self.check_row = None
|
self.check_row = None
|
||||||
self.inval_row = None
|
self.inval_row = None
|
||||||
@@ -2535,17 +2543,41 @@ class BalBuildWillDialog(BalDialog):
|
|||||||
w.deleteLater()
|
w.deleteLater()
|
||||||
|
|
||||||
def msg_update(self):
|
def msg_update(self):
|
||||||
|
"""Aggiorna l'interfaccia con i messaggi in coda."""
|
||||||
|
self._message_queue.extend(self.labels)
|
||||||
|
self.labels = []
|
||||||
|
if not self._message_timer.isActive():
|
||||||
|
self._message_timer.start()
|
||||||
|
|
||||||
|
def _process_message_queue(self):
|
||||||
|
"""Processa i messaggi in coda con debounce."""
|
||||||
|
if not self._message_queue:
|
||||||
|
return
|
||||||
|
|
||||||
|
# Pulisce il layout esistente
|
||||||
self.clear_layout(self.labelsbox)
|
self.clear_layout(self.labelsbox)
|
||||||
for label in self.labels:
|
|
||||||
label=label.replace("\n","<br>")
|
# Aggiunge solo i messaggi nuovi
|
||||||
qlabel=QLabel(label)
|
for text in self._message_queue:
|
||||||
self.labelsbox.addWidget(QLabel(label),1)
|
formatted_text = text.replace("\n", "<br>")
|
||||||
|
qlabel = QLabel(formatted_text)
|
||||||
|
qlabel.setWordWrap(True)
|
||||||
|
self.labelsbox.addWidget(qlabel)
|
||||||
|
|
||||||
|
self._message_queue = []
|
||||||
self.setMinimumHeight(30*(len(self.labels)+2))
|
self.setMinimumHeight(30*(len(self.labels)+2))
|
||||||
|
|
||||||
|
|
||||||
def get_text(self):
|
def get_text(self):
|
||||||
return self.message_label.text()
|
return self.message_label.text()
|
||||||
|
|
||||||
|
def __del__(self):
|
||||||
|
"""Cleanup per evitare memory leak."""
|
||||||
|
if hasattr(self, '_message_timer') and self._message_timer:
|
||||||
|
self._message_timer.stop()
|
||||||
|
self._message_timer.deleteLater()
|
||||||
|
self.clear_layout(self.labelsbox)
|
||||||
|
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user