From 10695eb106494974c0eae5622098a64399ce675b Mon Sep 17 00:00:00 2001 From: Thomas White Date: Wed, 17 Feb 2021 11:21:50 +0100 Subject: GUI: Use unified job notes routine for indexing Like with merging, this makes the required job name more prominent. --- src/gui_index.c | 86 +++++++++++++-------------------------------------------- 1 file changed, 19 insertions(+), 67 deletions(-) (limited to 'src') 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), - "This name will be used for a working subfolder"); - 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), - "The notes above will be placed in the job's folder as 'notes.txt'"); - 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); -- cgit v1.2.3