From ce9cf2f8013e0ef6623da51669302ded4fe96dc5 Mon Sep 17 00:00:00 2001 From: Alx Sa Date: Sat, 21 Dec 2024 08:56:26 -0500 Subject: [PATCH 1/2] plug-ins: Reduce JPEG dialogue height Because of all the options, the JPEG export dialogue is too tall on smaller displays or resolutions and goes off-screen. This patch attempts to mitigate the problem by putting some options in a two column layout. --- plug-ins/file-jpeg/jpeg-export.c | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/plug-ins/file-jpeg/jpeg-export.c b/plug-ins/file-jpeg/jpeg-export.c index 1460313a2ee..3bf393ecb54 100644 --- a/plug-ins/file-jpeg/jpeg-export.c +++ b/plug-ins/file-jpeg/jpeg-export.c @@ -842,6 +842,7 @@ save_dialog (GimpProcedure *procedure, { GtkWidget *dialog; GtkWidget *widget; + GtkWidget *box; GtkWidget *profile_label; GimpColorProfile *cmyk_profile = NULL; gint orig_quality; @@ -967,8 +968,7 @@ save_dialog (GimpProcedure *procedure, } gimp_procedure_dialog_fill_box (GIMP_PROCEDURE_DIALOG (dialog), - "advanced-options", - "smoothing", + "advanced-options-1", "progressive", "cmyk-frame", #ifdef C_ARITH_CODING_SUPPORTED @@ -976,10 +976,32 @@ save_dialog (GimpProcedure *procedure, #else "optimize", #endif + NULL); + + /* Put options in two column form so the dialog fits on + * smaller screens. */ + gimp_procedure_dialog_fill_box (GIMP_PROCEDURE_DIALOG (dialog), + "advanced-options-2", "restart-frame", "sub-sampling", "dct", NULL); + + box = gimp_procedure_dialog_fill_box (GIMP_PROCEDURE_DIALOG (dialog), + "advanced-options-horizontal", + "advanced-options-1", + "advanced-options-2", + NULL); + gtk_orientable_set_orientation (GTK_ORIENTABLE (box), + GTK_ORIENTATION_HORIZONTAL); + gtk_box_set_spacing (GTK_BOX (box), 12); + + gimp_procedure_dialog_fill_box (GIMP_PROCEDURE_DIALOG (dialog), + "advanced-options", + "smoothing", + "advanced-options-horizontal", + NULL); + gimp_procedure_dialog_fill_frame (GIMP_PROCEDURE_DIALOG (dialog), "advanced-frame", "advanced-title", FALSE, "advanced-options"); @@ -990,8 +1012,6 @@ save_dialog (GimpProcedure *procedure, "advanced-frame", NULL); - gtk_window_set_resizable (GTK_WINDOW (dialog), FALSE); - /* Run make_preview() when various config are changed. */ g_signal_connect (config, "notify", G_CALLBACK (make_preview), -- GitLab From d6f98e6d6373ebb39184337e5bef5684b8523c9a Mon Sep 17 00:00:00 2001 From: Alx Sa Date: Thu, 6 Mar 2025 03:55:22 +0000 Subject: [PATCH 2/2] plug-ins: Two column JPEG layout --- plug-ins/file-jpeg/jpeg-export.c | 52 ++++++++++++++++---------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/plug-ins/file-jpeg/jpeg-export.c b/plug-ins/file-jpeg/jpeg-export.c index 3bf393ecb54..56fe58fe55a 100644 --- a/plug-ins/file-jpeg/jpeg-export.c +++ b/plug-ins/file-jpeg/jpeg-export.c @@ -858,6 +858,10 @@ save_dialog (GimpProcedure *procedure, GIMP_PROCEDURE_CONFIG (config), gimp_item_get_image (GIMP_ITEM (drawable))); + gimp_procedure_dialog_get_label (GIMP_PROCEDURE_DIALOG (dialog), + "option-title", _("Options"), + FALSE, FALSE); + /* custom quantization tables - now used also for original quality */ gimp_procedure_dialog_set_sensitive (GIMP_PROCEDURE_DIALOG (dialog), "use-original-quality", @@ -967,50 +971,46 @@ save_dialog (GimpProcedure *procedure, NULL); } + /* Put options in two column form so the dialog fits on + * smaller screens. */ gimp_procedure_dialog_fill_box (GIMP_PROCEDURE_DIALOG (dialog), - "advanced-options-1", + "options", + "quality", + "use-original-quality", + "preview-size", + "show-preview", "progressive", "cmyk-frame", + NULL); + gimp_procedure_dialog_fill_frame (GIMP_PROCEDURE_DIALOG (dialog), + "option-frame", "option-title", FALSE, + "options"); + + gimp_procedure_dialog_fill_box (GIMP_PROCEDURE_DIALOG (dialog), + "advanced-options", + "smoothing", #ifdef C_ARITH_CODING_SUPPORTED "arithmetic-frame", #else "optimize", #endif - NULL); - - /* Put options in two column form so the dialog fits on - * smaller screens. */ - gimp_procedure_dialog_fill_box (GIMP_PROCEDURE_DIALOG (dialog), - "advanced-options-2", "restart-frame", "sub-sampling", "dct", NULL); + gimp_procedure_dialog_fill_frame (GIMP_PROCEDURE_DIALOG (dialog), + "advanced-frame", "advanced-title", FALSE, + "advanced-options"); box = gimp_procedure_dialog_fill_box (GIMP_PROCEDURE_DIALOG (dialog), - "advanced-options-horizontal", - "advanced-options-1", - "advanced-options-2", - NULL); + "jpeg-hbox", "option-frame", + "advanced-frame", NULL); + gtk_box_set_spacing (GTK_BOX (box), 12); gtk_orientable_set_orientation (GTK_ORIENTABLE (box), GTK_ORIENTATION_HORIZONTAL); - gtk_box_set_spacing (GTK_BOX (box), 12); - - gimp_procedure_dialog_fill_box (GIMP_PROCEDURE_DIALOG (dialog), - "advanced-options", - "smoothing", - "advanced-options-horizontal", - NULL); - - gimp_procedure_dialog_fill_frame (GIMP_PROCEDURE_DIALOG (dialog), - "advanced-frame", "advanced-title", FALSE, - "advanced-options"); gimp_procedure_dialog_fill (GIMP_PROCEDURE_DIALOG (dialog), - "quality", "use-original-quality", - "preview-size", "show-preview", - "advanced-frame", - NULL); + "jpeg-hbox", NULL); /* Run make_preview() when various config are changed. */ g_signal_connect (config, "notify", -- GitLab