aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas White <taw@physics.org>2021-07-23 15:42:08 +0200
committerThomas White <taw@physics.org>2021-07-23 15:42:08 +0200
commit40116573c431143031ecd3d2b4e426cd867f88ac (patch)
tree2fbb71967ae385d4c4c1c2d304d277a4073962ff
parentfd51a276d510ac754685c3bcfc1707645217271f (diff)
GUI: Expose partialator --no-logs
-rw-r--r--src/crystfelmergeopts.c18
-rw-r--r--src/crystfelmergeopts.h3
-rw-r--r--src/gui_merge.c6
-rw-r--r--src/gui_project.c6
-rw-r--r--src/gui_project.h1
5 files changed, 34 insertions, 0 deletions
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;