From 1deed95e55c5a45d4887bb53a83976e4ead78bcb Mon Sep 17 00:00:00 2001 From: Thomas White Date: Fri, 4 Mar 2022 13:58:42 +0100 Subject: GUI: Fix stream rescan logic Fixes: https://gitlab.desy.de/thomas.white/crystfel/-/issues/64 --- src/crystfel_gui.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'src/crystfel_gui.c') diff --git a/src/crystfel_gui.c b/src/crystfel_gui.c index 31f2b4d2..daf9172f 100644 --- a/src/crystfel_gui.c +++ b/src/crystfel_gui.c @@ -180,11 +180,6 @@ static int should_rescan_streams(struct crystfelproject *proj) if ( !proj->rescan_on_change ) return 0; - if ( !proj->scanned_since_last_job_finished ) { - proj->scanned_since_last_job_finished = 1; - return 1; - } - while ( item != NULL ) { struct gui_task *task = item->data; if ( task->running ) return 1; @@ -1249,13 +1244,21 @@ static gboolean update_info_bar(gpointer data) frac_complete); if ( !running && task->running ) { + + int i; + /* Task is no longer running */ task->running = 0; gtk_widget_destroy(task->cancel_button); gtk_info_bar_set_show_close_button(GTK_INFO_BAR(task->info_bar), TRUE); - task->proj->scanned_since_last_job_finished = 0; + /* We don't have an easy way to get the result name from the + * task structure, so cheat by marking all of the results as + * "possibly out of date" */ + for ( i=0; iproj->n_results; i++ ) { + task->proj->results[i].need_rescan = 1; + } return G_SOURCE_REMOVE; } -- cgit v1.2.3