diff --git a/mantidimaging/gui/test/gui_system_liveviewer_test.py b/mantidimaging/gui/test/gui_system_liveviewer_test.py index a0e3564c0c6..8945bb2498f 100644 --- a/mantidimaging/gui/test/gui_system_liveviewer_test.py +++ b/mantidimaging/gui/test/gui_system_liveviewer_test.py @@ -37,6 +37,7 @@ def tearDown(self) -> None: def test_open_close_intensity_profile(self): self.assertEqual(self.live_viewer_window.splitter.sizes()[1], 0) + QTest.qWait(SHORT_DELAY * 4) self.live_viewer_window.intensity_action.trigger() QTest.qWait(SHORT_DELAY) QTest.qWait(SHOW_DELAY) @@ -49,6 +50,7 @@ def test_open_close_intensity_profile(self): QTest.qWait(SHOW_DELAY) def test_roi_resized(self): + QTest.qWait(SHORT_DELAY * 4) self.live_viewer_window.intensity_action.trigger() QTest.qWait(SHORT_DELAY) wait_until(lambda: not np.isnan(self.live_viewer_window.presenter.model.mean).any(), max_retry=600) diff --git a/mantidimaging/gui/windows/live_viewer/presenter.py b/mantidimaging/gui/windows/live_viewer/presenter.py index 03cea3fe9a9..227bc5c5889 100644 --- a/mantidimaging/gui/windows/live_viewer/presenter.py +++ b/mantidimaging/gui/windows/live_viewer/presenter.py @@ -52,6 +52,7 @@ class LiveViewerWindowPresenter(BasePresenter): op_func: Callable thread: QThread worker: Worker + old_image_list_paths: list[Path] = [] def __init__(self, view: LiveViewerWindowView, main_window: MainWindowView): super().__init__(view) @@ -96,20 +97,25 @@ def update_image_list(self, images_list: list[Image_Data]) -> None: self.handle_deleted() self.view.set_load_as_dataset_enabled(False) else: + images_list_paths = [image.image_path for image in images_list] if not self.view.live_viewer.roi_object and self.view.intensity_action.isChecked(): self.view.live_viewer.add_roi() self.model.roi = self.view.live_viewer.get_roi() self.model.images = images_list - if images_list[-1].image_path not in self.model.mean_paths: + if (sorted(list(self.old_image_list_paths) + images_list_paths[-1:])) == images_list_paths: try: image_data = self.model.image_cache.load_image(images_list[-1]) self.model.add_mean(images_list[-1], image_data) + self.update_intensity_with_mean() except ImageLoadFailError as error: logger.error(error.message) - self.update_intensity(self.model.mean) + else: + self.model.clear_mean_partial() + self.run_mean_chunk_calc() self.view.set_image_range((0, len(images_list) - 1)) self.view.set_image_index(len(images_list) - 1) self.view.set_load_as_dataset_enabled(True) + self.old_image_list_paths = images_list_paths def select_image(self, index: int) -> None: if not self.model.images: