tbugfix for "QObject: Cannot create children for a parent that is in a different thread." - electrum - Electrum Bitcoin wallet HTML git clone https://git.parazyd.org/electrum DIR Log DIR Files DIR Refs DIR Submodules --- DIR commit 9c0bb13366bad67da4c5beb8d2c50d8eb4f702f0 DIR parent d825578099e257d7b778ad1ebb4902fcf47249ac HTML Author: Amir Taaki <genjix@riseup.net> Date: Fri, 29 Jun 2012 02:33:21 +0200 bugfix for "QObject: Cannot create children for a parent that is in a different thread." Diffstat: M lib/gui_lite.py | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) --- DIR diff --git a/lib/gui_lite.py b/lib/gui_lite.py t@@ -50,10 +50,6 @@ class MiniWindow(QDialog): expand_button.setObjectName("expand_button") self.balance_label = BalanceLabel() - # WTF?! - # TODO: Fix this! - import time - time.sleep(0.1) self.balance_label.setObjectName("balance_label") copy_button = QPushButton(_("&Copy Address")) t@@ -252,7 +248,7 @@ class MiniActuator: def is_valid(self, address): return self.wallet.is_valid(address) -class MiniDriver: +class MiniDriver(QObject): INITIALIZING = 0 CONNECTING = 1 t@@ -260,13 +256,23 @@ class MiniDriver: READY = 3 def __init__(self, wallet, window): + super(QObject, self).__init__() + self.wallet = wallet self.window = window - self.wallet.gui_callback = self.update + self.wallet.gui_callback = self.update_callback self.state = None - self.update() + + self.initializing() + self.connect(self, SIGNAL("updatesignal"), self.update) + + # This is a hack to workaround that Qt does not like changing the + # window properties from this other thread before the runloop has + # been called from. + def update_callback(self): + self.emit(SIGNAL("updatesignal")) def update(self): if not self.wallet.interface: