From 40116573c431143031ecd3d2b4e426cd867f88ac Mon Sep 17 00:00:00 2001 From: Thomas White Date: Fri, 23 Jul 2021 15:42:08 +0200 Subject: GUI: Expose partialator --no-logs --- src/crystfelmergeopts.c | 18 ++++++++++++++++++ src/crystfelmergeopts.h | 3 +++ src/gui_merge.c | 6 ++++++ src/gui_project.c | 6 ++++++ src/gui_project.h | 1 + 5 files changed, 34 insertions(+) (limited to 'src') diff --git a/src/crystfelmergeopts.c b/src/crystfelmergeopts.c index 0cf1fd76..a2ae9ce4 100644 --- a/src/crystfelmergeopts.c +++ b/src/crystfelmergeopts.c @@ -271,6 +271,12 @@ static GtkWidget *merge_parameters(CrystFELMergeOpts *mo) check_on_toggle(mo->custom_split, mo); gtk_widget_set_tooltip_text(hbox, "--custom-split"); + /* --no-logs */ + mo->pr_logs = gtk_check_button_new_with_label("Write partiality model diagnostics"); + gtk_box_pack_start(GTK_BOX(box), GTK_WIDGET(mo->pr_logs), + FALSE, FALSE, 0); + gtk_widget_set_tooltip_text(mo->pr_logs, "--no-logs"); + /* Minimum pattern resolution */ hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 8); gtk_box_pack_start(GTK_BOX(box), GTK_WIDGET(hbox), @@ -472,6 +478,12 @@ void crystfel_merge_opts_set_custom_split(CrystFELMergeOpts *opts, } +void crystfel_merge_opts_set_pr_logs(CrystFELMergeOpts *opts, int val) +{ + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(opts->pr_logs), val); +} + + void crystfel_merge_opts_set_twin_sym(CrystFELMergeOpts *opts, const char *twin_sym) { @@ -572,6 +584,12 @@ const char *crystfel_merge_opts_get_custom_split(CrystFELMergeOpts *opts) } +int crystfel_merge_opts_get_pr_logs(CrystFELMergeOpts *opts) +{ + return get_bool(opts->pr_logs); +} + + const char *crystfel_merge_opts_get_twin_sym(CrystFELMergeOpts *opts) { if ( get_bool(opts->detwin) == 0 ) { diff --git a/src/crystfelmergeopts.h b/src/crystfelmergeopts.h index a08abc66..70f13464 100644 --- a/src/crystfelmergeopts.h +++ b/src/crystfelmergeopts.h @@ -67,6 +67,7 @@ struct _crystfelmergeopts GtkWidget *max_adu; GtkWidget *custom_split; GtkWidget *custom_split_file; + GtkWidget *pr_logs; GtkWidget *detwin; GtkWidget *detwin_sym; GtkWidget *min_res; @@ -108,6 +109,7 @@ extern void crystfel_merge_opts_set_max_adu(CrystFELMergeOpts *opts, float max_adu); extern void crystfel_merge_opts_set_custom_split(CrystFELMergeOpts *opts, const char *custom_split_file); +extern void crystfel_merge_opts_set_pr_logs(CrystFELMergeOpts *opts, int val); extern void crystfel_merge_opts_set_twin_sym(CrystFELMergeOpts *opts, const char *twin_sym); extern void crystfel_merge_opts_set_min_res(CrystFELMergeOpts *opts, @@ -126,6 +128,7 @@ extern int crystfel_merge_opts_get_deltacchalf(CrystFELMergeOpts *opts); extern int crystfel_merge_opts_get_min_measurements(CrystFELMergeOpts *opts); extern float crystfel_merge_opts_get_max_adu(CrystFELMergeOpts *opts); extern const char *crystfel_merge_opts_get_custom_split(CrystFELMergeOpts *opts); +extern int crystfel_merge_opts_get_pr_logs(CrystFELMergeOpts *opts); extern const char *crystfel_merge_opts_get_twin_sym(CrystFELMergeOpts *opts); extern float crystfel_merge_opts_get_min_res(CrystFELMergeOpts *opts); extern float crystfel_merge_opts_get_push_res(CrystFELMergeOpts *opts); diff --git a/src/gui_merge.c b/src/gui_merge.c index 51e0d8d4..aa1fffcc 100644 --- a/src/gui_merge.c +++ b/src/gui_merge.c @@ -82,6 +82,7 @@ static void get_merging_opts(struct merging_params *opts, free(opts->custom_split); opts->custom_split = safe_strdup(crystfel_merge_opts_get_custom_split(mo)); free(opts->twin_sym); + opts->pr_logs = crystfel_merge_opts_get_pr_logs(mo); opts->twin_sym = safe_strdup(crystfel_merge_opts_get_twin_sym(mo)); opts->min_res = crystfel_merge_opts_get_min_res(mo); opts->push_res = crystfel_merge_opts_get_push_res(mo); @@ -182,6 +183,7 @@ static void set_merging_opts(struct merging_params *opts, crystfel_merge_opts_set_min_measurements(mo, opts->min_measurements); crystfel_merge_opts_set_max_adu(mo, opts->max_adu); crystfel_merge_opts_set_custom_split(mo, opts->custom_split); + crystfel_merge_opts_set_pr_logs(mo, opts->pr_logs); crystfel_merge_opts_set_twin_sym(mo, opts->twin_sym); crystfel_merge_opts_set_min_res(mo, opts->min_res); crystfel_merge_opts_set_push_res(mo, opts->push_res); @@ -411,6 +413,10 @@ static int write_partialator_script(const char *filename, fprintf(fh, " --no-deltacchalf"); } + if ( !params->pr_logs ) { + fprintf(fh, " --no-logs"); + } + fprintf(fh, " --iterations=%i", params->niter); fprintf(fh, " --harvest-file=%s", harvest_filename); fprintf(fh, " --log-folder=%s", log_folder); diff --git a/src/gui_project.c b/src/gui_project.c index 952bbbe6..d1af3583 100644 --- a/src/gui_project.c +++ b/src/gui_project.c @@ -482,6 +482,10 @@ static void parse_merging_opt(const char *key, const char *val, proj->merging_params.custom_split = strdup(val); } + if ( strcmp(key, "merging.pr_logs") == 0 ) { + proj->merging_params.pr_logs = parse_int(val); + } + if ( strcmp(key, "merging.twin_sym") == 0 ) { proj->merging_params.twin_sym = strdup(val); } @@ -1098,6 +1102,7 @@ int save_project(struct crystfelproject *proj) fprintf(fh, "merging.custom_split %s\n", proj->merging_params.custom_split); } + fprintf(fh, "merging.pr_logs %i\n", proj->merging_params.pr_logs); if ( proj->merging_params.twin_sym != NULL ) { fprintf(fh, "merging.twin_sym %s\n", proj->merging_params.twin_sym); @@ -1304,6 +1309,7 @@ int default_project(struct crystfelproject *proj) proj->merging_params.min_measurements = 2; proj->merging_params.max_adu = INFINITY; proj->merging_params.custom_split = NULL; + proj->merging_params.pr_logs = 1; proj->merging_params.twin_sym = NULL; proj->merging_params.min_res = INFINITY; proj->merging_params.push_res = INFINITY; diff --git a/src/gui_project.h b/src/gui_project.h index 45ced0c9..12a2ca55 100644 --- a/src/gui_project.h +++ b/src/gui_project.h @@ -123,6 +123,7 @@ struct merging_params { int min_measurements; float max_adu; char *custom_split; + int pr_logs; char *twin_sym; float min_res; float push_res; -- cgit v1.2.3