app: move the "Show on Start" checkbox inside "Create" tab.

I think I may even have been the one who suggested to make this checkbox always
visible, but after more thought and usage, I just realize that this option is
not about showing the Welcome dialog, but about showing the Create tab of the
Welcome dialog. So I move it to the Create tab.

A very obvious case where the previous option location could have been
considered wrong is that we will always show the dialog (on the "Welcome" tab)
for updates, even if this checkbox had been unchecked. So if we left it as a
global option of the dialog, this could be considered a bug (the option is
disabled, but the dialog still opens on updates), whereas the new position and
shortened label make it clearer that this settings only apply to whether or not
we show specifically the Create dialog on start.
This commit is contained in:
Jehan 2024-03-14 00:31:20 +01:00
parent 3b261e3b31
commit 4f14e89ed9
1 changed files with 14 additions and 9 deletions

View File

@ -92,6 +92,7 @@ static void welcome_dialog_create_contribute_page (Gimp *gimp,
GtkWidget *welcome_dialog, GtkWidget *welcome_dialog,
GtkWidget *main_vbox); GtkWidget *main_vbox);
static void welcome_dialog_create_creation_page (Gimp *gimp, static void welcome_dialog_create_creation_page (Gimp *gimp,
GimpConfig *config,
GtkWidget *welcome_dialog, GtkWidget *welcome_dialog,
GtkWidget *main_vbox); GtkWidget *main_vbox);
static void welcome_dialog_create_release_page (Gimp *gimp, static void welcome_dialog_create_release_page (Gimp *gimp,
@ -173,7 +174,6 @@ welcome_dialog_new (Gimp *gimp,
GtkWidget *prefs_box; GtkWidget *prefs_box;
GtkWidget *main_vbox; GtkWidget *main_vbox;
GtkWidget *toggle;
gchar *title; gchar *title;
@ -272,7 +272,7 @@ welcome_dialog_new (Gimp *gimp,
&top_iter); &top_iter);
gtk_container_set_border_width (GTK_CONTAINER (main_vbox), 12); gtk_container_set_border_width (GTK_CONTAINER (main_vbox), 12);
welcome_dialog_create_creation_page (gimp, dialog, main_vbox); welcome_dialog_create_creation_page (gimp, config, dialog, main_vbox);
gtk_widget_set_visible (main_vbox, TRUE); gtk_widget_set_visible (main_vbox, TRUE);
/* If dialog is set to always show on load, switch to the Create page */ /* If dialog is set to always show on load, switch to the Create page */
@ -291,13 +291,6 @@ welcome_dialog_new (Gimp *gimp,
welcome_dialog_create_release_page (gimp, dialog, main_vbox); welcome_dialog_create_release_page (gimp, dialog, main_vbox);
gtk_widget_set_visible (main_vbox, TRUE); gtk_widget_set_visible (main_vbox, TRUE);
/* "Always show welcome dialog" checkbox */
toggle = prefs_check_button_add (G_OBJECT (config), "show-welcome-dialog",
_("Show Welcome Dialog On Start "
"(You can show it again from the \"Help\" menu)"),
GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (dialog))));
gtk_widget_set_margin_start (toggle, 8);
return dialog; return dialog;
} }
@ -689,6 +682,7 @@ welcome_dialog_create_personalize_page (Gimp *gimp,
static void static void
welcome_dialog_create_creation_page (Gimp *gimp, welcome_dialog_create_creation_page (Gimp *gimp,
GimpConfig *config,
GtkWidget *welcome_dialog, GtkWidget *welcome_dialog,
GtkWidget *main_vbox) GtkWidget *main_vbox)
{ {
@ -696,6 +690,7 @@ welcome_dialog_create_creation_page (Gimp *gimp,
GtkWidget *hbox; GtkWidget *hbox;
GtkWidget *button; GtkWidget *button;
GtkWidget *listbox; GtkWidget *listbox;
GtkWidget *toggle;
gint num_images; gint num_images;
gint list_count; gint list_count;
@ -829,6 +824,16 @@ welcome_dialog_create_creation_page (Gimp *gimp,
g_signal_connect (button, "clicked", g_signal_connect (button, "clicked",
G_CALLBACK (welcome_open_images_callback), G_CALLBACK (welcome_open_images_callback),
listbox); listbox);
/* "Always show welcome dialog" checkbox */
toggle = prefs_check_button_add (G_OBJECT (config), "show-welcome-dialog",
_("Show on Start "
"(You can show the Welcome dialog again from the \"Help\" menu)"),
GTK_BOX (main_vbox));
gtk_container_child_set (GTK_CONTAINER (main_vbox), toggle,
"fill", TRUE,
"pack-type", GTK_PACK_END,
NULL);
} }
static void static void