mirror of
https://gitlab.com/pamhyr/pamhyr2.git
synced 2026-10-30 03:20:41 +01:00
Pamhyr: Add update propagation mechanism.
This commit is contained in:
1 parent
e03ebedfdf
commit
e96e291ec4
4 files changed
+69
-17
No files matched your search
+27
-1
@@ -28,7 +28,7 @@ from PyQt5.QtGui import (
|
||||
)
|
||||
|
||||
from PyQt5.QtCore import (
|
||||
Qt, QTranslator, QEvent, QUrl,
|
||||
Qt, QTranslator, QEvent, QUrl, QTimer,
|
||||
)
|
||||
from PyQt5.QtWidgets import (
|
||||
QMainWindow, QApplication, QAction,
|
||||
@@ -140,6 +140,7 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
|
||||
self.default_style()
|
||||
self.setup_debug_mode(init=True)
|
||||
self.setup_results()
|
||||
self.setup_timer()
|
||||
|
||||
self.trans = QTranslator(self)
|
||||
# self.ui.retranslateUi()
|
||||
@@ -321,6 +322,31 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
|
||||
menu.removeAction(self.debug_sqlite_action)
|
||||
self.set_debug_lvl(debug=False)
|
||||
|
||||
def setup_timer(self):
|
||||
self._init_propagation_keys()
|
||||
|
||||
self._propagation_timer = QTimer(self)
|
||||
self._propagation_timer.start(2000)
|
||||
|
||||
self._propagation_timer.timeout.connect(
|
||||
self._do_propagate_update
|
||||
)
|
||||
|
||||
def _init_propagation_keys(self):
|
||||
self._propagation_keys = set()
|
||||
|
||||
def _propagate_update(self, key=None):
|
||||
self._propagation_keys.add(key)
|
||||
logger.debug(f"Propagation keys: {self._propagation_keys}")
|
||||
|
||||
def _do_propagate_update(self):
|
||||
for key in self._propagation_keys:
|
||||
logger.debug(f"Propagation of {key}")
|
||||
for _, window in self.sub_win_list:
|
||||
window._propagated_update(key=key)
|
||||
|
||||
self._init_propagation_keys()
|
||||
|
||||
#########
|
||||
# MODEL #
|
||||
#########
|
||||
|
||||
Reference in new issue
Block a user