forked from bitcoinafterlife/bal-electrum-plugin
Compare commits
1 Commits
fix/balbui
...
fix/balbui
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f6b5738dfc |
40
qt.py
40
qt.py
@@ -2085,6 +2085,14 @@ class BalBuildWillDialog(BalDialog):
|
||||
self.setMinimumWidth(600)
|
||||
self.setMinimumHeight(100)
|
||||
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.check_row = None
|
||||
self.inval_row = None
|
||||
@@ -2535,17 +2543,41 @@ class BalBuildWillDialog(BalDialog):
|
||||
w.deleteLater()
|
||||
|
||||
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)
|
||||
for label in self.labels:
|
||||
label=label.replace("\n","<br>")
|
||||
qlabel=QLabel(label)
|
||||
self.labelsbox.addWidget(QLabel(label),1)
|
||||
|
||||
# Aggiunge solo i messaggi nuovi
|
||||
for text in self._message_queue:
|
||||
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))
|
||||
|
||||
|
||||
def get_text(self):
|
||||
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
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user