commit 14363f8f2fe75382fd3b7c291fc1b14c678a51a8
parent 3184d6f369cb113432ebbc55ed3ab22ace7233e4
Author: Calin Culianu <calin.culianu@gmail.com>
Date: Wed, 12 Dec 2018 00:53:55 +0200
[Qt] Got rid of qt.util.Timer class and instead replaced the functionality with the more efficient QTimer. Also added disconnection from the timer on window close.
(cherry picked from https://github.com/Electron-Cash/Electron-Cash/commit/19a21eb08d4c3bb665d4a3b50daf38d51b6589b3)
Diffstat:
3 files changed, 8 insertions(+), 18 deletions(-)
diff --git a/electrum/gui/qt/__init__.py b/electrum/gui/qt/__init__.py
@@ -105,7 +105,11 @@ class ElectrumGui(PrintError):
self.efilter = OpenFileEventFilter(self.windows)
self.app = QElectrumApplication(sys.argv)
self.app.installEventFilter(self.efilter)
- self.timer = Timer()
+ # timer
+ self.timer = QTimer(self.app)
+ self.timer.setSingleShot(False)
+ self.timer.setInterval(500) # msec
+
self.nd = None
self.network_updated_signal_obj = QNetworkUpdatedSignalObject()
self._num_wizards_in_progress = 0
diff --git a/electrum/gui/qt/main_window.py b/electrum/gui/qt/main_window.py
@@ -222,7 +222,7 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError):
# update fee slider in case we missed the callback
self.fee_slider.update()
self.load_wallet(wallet)
- self.connect_slots(gui_object.timer)
+ gui_object.timer.timeout.connect(self.timer_actions)
self.fetch_alias()
def on_history(self, b):
@@ -670,9 +670,6 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError):
self.config.set_key('io_dir', os.path.dirname(fileName), True)
return fileName
- def connect_slots(self, sender):
- sender.timer_signal.connect(self.timer_actions)
-
def timer_actions(self):
# Note this runs in the GUI thread
if self.need_update.is_set():
@@ -3134,6 +3131,8 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError):
if self.qr_window:
self.qr_window.close()
self.close_wallet()
+
+ self.gui_object.timer.timeout.disconnect(self.timer_actions)
self.gui_object.close_window(self)
def plugins_dialog(self):
diff --git a/electrum/gui/qt/util.py b/electrum/gui/qt/util.py
@@ -48,19 +48,6 @@ expiration_values = [
]
-class Timer(QThread):
- stopped = False
- timer_signal = pyqtSignal()
-
- def run(self):
- while not self.stopped:
- self.timer_signal.emit()
- time.sleep(0.5)
-
- def stop(self):
- self.stopped = True
- self.wait()
-
class EnterButton(QPushButton):
def __init__(self, text, func):
QPushButton.__init__(self, text)