aboutsummaryrefslogtreecommitdiff
path: root/src/crystfel_gui.c
diff options
context:
space:
mode:
authorThomas White <taw@physics.org>2022-03-04 13:58:42 +0100
committerThomas White <taw@physics.org>2022-03-04 13:58:42 +0100
commit1deed95e55c5a45d4887bb53a83976e4ead78bcb (patch)
tree98900bf5f5173985f9fc244783651678bf4aa124 /src/crystfel_gui.c
parent634ac34f8ffde1d3991751230c57eba70529f005 (diff)
GUI: Fix stream rescan logic
Fixes: https://gitlab.desy.de/thomas.white/crystfel/-/issues/64
Diffstat (limited to 'src/crystfel_gui.c')
-rw-r--r--src/crystfel_gui.c15
1 files changed, 9 insertions, 6 deletions
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; i<task->proj->n_results; i++ ) {
+ task->proj->results[i].need_rescan = 1;
+ }
return G_SOURCE_REMOVE;
}