Pamhyr: Add update propagation mechanism.

This commit is contained in:
Pierre-Antoine Rouby committed 2024-02-13 09:23:36 +01:00
1 parent e03ebedfdf
commit e96e291ec4
4 files changed
+69 -17

No files matched your search

+27 -1
View File
@@ -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 #
#########