aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorThomas White <taw@physics.org>2021-02-17 11:21:50 +0100
committerThomas White <taw@physics.org>2021-02-17 11:23:51 +0100
commit10695eb106494974c0eae5622098a64399ce675b (patch)
tree4a18e7c551f778f4e6075b25be6edec4b8a6c02e /src
parent7a0ded3dd6dd66230b1b59084aee141a44e49087 (diff)
GUI: Use unified job notes routine for indexing
Like with merging, this makes the required job name more prominent.
Diffstat (limited to 'src')
-rw-r--r--src/gui_index.c86
1 files changed, 19 insertions, 67 deletions
diff --git a/src/gui_index.c b/src/gui_index.c
index 89fd62e7..68c89ca2 100644
--- a/src/gui_index.c
+++ b/src/gui_index.c
@@ -157,11 +157,11 @@ static int run_indexing_all(struct crystfelproject *proj,
struct new_index_job_params {
struct crystfelproject *proj;
+ struct gui_job_notes_page *notes_page;
GtkWidget *indexing_backend_combo;
GtkWidget *indexing_backend_opts_widget;
GtkWidget *indexing_backend_opts_box;
GtkWidget *job_title_entry;
- GtkWidget *job_notes_text;
};
@@ -181,7 +181,7 @@ static void index_all_response_sig(GtkWidget *dialog, gint resp,
if ( backend_idx < 0 ) return;
job_title = gtk_entry_get_text(GTK_ENTRY(njp->job_title_entry));
- job_notes = get_all_text(GTK_TEXT_VIEW(njp->job_notes_text));
+ job_notes = get_all_text(GTK_TEXT_VIEW(njp->notes_page->textview));
if ( job_title[0] == '\0' ) {
ERROR("You must provide a job name.\n");
@@ -232,65 +232,6 @@ static void indexing_backend_changed_sig(GtkWidget *combo,
}
-static GtkWidget *make_job_opts(struct crystfelproject *proj,
- struct new_index_job_params *njp)
-{
- GtkWidget *box;
- GtkWidget *hbox;
- GtkWidget *label;
- GtkWidget *scroll;
-
- box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 8);
- gtk_container_set_border_width(GTK_CONTAINER(box), 8);
-
- hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 8);
- gtk_box_pack_start(GTK_BOX(box), GTK_WIDGET(hbox),
- FALSE, FALSE, 0);
- label = gtk_label_new("Job name:");
- gtk_box_pack_start(GTK_BOX(hbox), GTK_WIDGET(label),
- FALSE, FALSE, 0);
- njp->job_title_entry = gtk_entry_new();
- gtk_box_pack_start(GTK_BOX(hbox), GTK_WIDGET(njp->job_title_entry),
- TRUE, TRUE, 2.0);
- if ( proj->indexing_new_job_title != NULL ) {
- gtk_entry_set_text(GTK_ENTRY(njp->job_title_entry),
- proj->indexing_new_job_title);
- }
-
- label = gtk_label_new("This name will be used for a working subfolder");
- gtk_label_set_markup(GTK_LABEL(label),
- "<i>This name will be used for a working subfolder</i>");
- gtk_box_pack_start(GTK_BOX(box), GTK_WIDGET(label),
- FALSE, FALSE, 0);
- gtk_entry_set_placeholder_text(GTK_ENTRY(njp->job_title_entry),
- "indexing-trial-1");
-
- hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 8);
- gtk_box_pack_start(GTK_BOX(box), GTK_WIDGET(hbox),
- TRUE, TRUE, 0);
- label = gtk_label_new("Notes:");
- gtk_box_pack_start(GTK_BOX(hbox), GTK_WIDGET(label),
- FALSE, FALSE, 0);
- njp->job_notes_text = gtk_text_view_new();
- gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(njp->job_notes_text),
- GTK_WRAP_WORD_CHAR);
- scroll = gtk_scrolled_window_new(NULL, NULL);
- gtk_container_add(GTK_CONTAINER(scroll), njp->job_notes_text);
- gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scroll),
- GTK_SHADOW_ETCHED_IN);
- gtk_box_pack_start(GTK_BOX(hbox), GTK_WIDGET(scroll),
- TRUE, TRUE, 2.0);
-
- label = gtk_label_new("The notes above will be placed in the job's folder as 'notes.txt'");
- gtk_label_set_markup(GTK_LABEL(label),
- "<i>The notes above will be placed in the job's folder as 'notes.txt'</i>");
- gtk_box_pack_start(GTK_BOX(box), GTK_WIDGET(label),
- FALSE, FALSE, 0);
-
- return box;
-}
-
-
static GtkWidget *make_backend_opts(struct new_index_job_params *njp)
{
GtkWidget *box;
@@ -382,8 +323,9 @@ gint index_all_sig(GtkWidget *widget, struct crystfelproject *proj)
GtkWidget *dialog;
GtkWidget *content_area;
GtkWidget *vbox;
+ GtkWidget *hbox;
+ GtkWidget *label;
GtkWidget *backend_page;
- GtkWidget *job_page;
struct new_index_job_params *njp;
if ( proj->indexing_opts != NULL ) return FALSE;
@@ -409,6 +351,19 @@ gint index_all_sig(GtkWidget *widget, struct crystfelproject *proj)
gtk_container_add(GTK_CONTAINER(content_area), vbox);
gtk_container_set_border_width(GTK_CONTAINER(content_area), 8);
+ hbox = gtk_hbox_new(FALSE, 0.0);
+ gtk_box_pack_start(GTK_BOX(vbox), GTK_WIDGET(hbox),
+ FALSE, FALSE, 4.0);
+ label = gtk_label_new("Job/output name:");
+ gtk_box_pack_start(GTK_BOX(hbox), GTK_WIDGET(label),
+ FALSE, FALSE, 4.0);
+ njp->job_title_entry = gtk_entry_new();
+ gtk_entry_set_width_chars(GTK_ENTRY(njp->job_title_entry), 16);
+ gtk_entry_set_placeholder_text(GTK_ENTRY(njp->job_title_entry),
+ "indexing-trial-1");
+ gtk_box_pack_start(GTK_BOX(hbox), GTK_WIDGET(njp->job_title_entry),
+ TRUE, TRUE, 4.0);
+
proj->indexing_opts = crystfel_indexing_opts_new();
crystfel_indexing_opts_set_show_stream_opts(CRYSTFEL_INDEXING_OPTS(proj->indexing_opts),
TRUE);
@@ -418,14 +373,11 @@ gint index_all_sig(GtkWidget *widget, struct crystfelproject *proj)
CRYSTFEL_INDEXING_OPTS(proj->indexing_opts));
backend_page = make_backend_opts(njp);
- gtk_notebook_prepend_page(GTK_NOTEBOOK(proj->indexing_opts),
+ gtk_notebook_append_page(GTK_NOTEBOOK(proj->indexing_opts),
backend_page,
gtk_label_new("Cluster/batch system"));
- job_page = make_job_opts(proj, njp);
- gtk_notebook_prepend_page(GTK_NOTEBOOK(proj->indexing_opts),
- job_page,
- gtk_label_new("Job name"));
+ njp->notes_page = add_job_notes_page(proj->indexing_opts);
gtk_dialog_set_default_response(GTK_DIALOG(dialog),
GTK_RESPONSE_OK);