libgimp: always keep the same number of columns for metadata settings.

I was trying to avoid too large dialogs as this `metadata` frame can
hold random plug-in settings. But let's go for always the same number as
columns as the max number of common settings (i.e. most often 3
columns).
This commit is contained in:
Jehan 2020-12-30 22:32:52 +01:00
parent ba4f24e49c
commit ce9bfdca8d

View file

@ -194,6 +194,9 @@ gimp_save_procedure_dialog_fill_list (GimpProcedureDialog *dialog,
n_metadata = gimp_save_procedure_get_support_exif (save_procedure) + n_metadata = gimp_save_procedure_get_support_exif (save_procedure) +
gimp_save_procedure_get_support_iptc (save_procedure) + gimp_save_procedure_get_support_iptc (save_procedure) +
gimp_save_procedure_get_support_xmp (save_procedure); gimp_save_procedure_get_support_xmp (save_procedure);
n_metadata = MAX (n_metadata,
gimp_save_procedure_get_support_profile (save_procedure) +
gimp_save_procedure_get_support_thumbnail (save_procedure));
if (gimp_save_procedure_get_support_exif (save_procedure)) if (gimp_save_procedure_get_support_exif (save_procedure))
{ {
@ -228,8 +231,6 @@ gimp_save_procedure_dialog_fill_list (GimpProcedureDialog *dialog,
/* Line for specific metadata: profile, thumbnail. */ /* Line for specific metadata: profile, thumbnail. */
left = 0; left = 0;
n_metadata = gimp_save_procedure_get_support_profile (save_procedure) +
gimp_save_procedure_get_support_thumbnail (save_procedure);
if (gimp_save_procedure_get_support_profile (save_procedure)) if (gimp_save_procedure_get_support_profile (save_procedure))
{ {
@ -252,25 +253,22 @@ gimp_save_procedure_dialog_fill_list (GimpProcedureDialog *dialog,
if (n_metadata > 0) if (n_metadata > 0)
top++; top++;
/* Custom metadata: 2 items per line. */ /* Custom metadata: n_metadata items per line. */
left = 0; left = 0;
for (iter = save_dialog->priv->additional_metadata; iter; iter = iter->next) for (iter = save_dialog->priv->additional_metadata; iter; iter = iter->next)
{ {
widget = gimp_procedure_dialog_get_widget (dialog, iter->data, G_TYPE_NONE); widget = gimp_procedure_dialog_get_widget (dialog, iter->data, G_TYPE_NONE);
g_object_ref (widget); g_object_ref (widget);
gtk_grid_attach (GTK_GRID (grid), widget, left, top, 3, 1); gtk_grid_attach (GTK_GRID (grid), widget, left, top, 6 / n_metadata, 1);
if (left == 0) left += 6 / n_metadata;
if (left >= 6)
{ {
left = 3;
}
else
{
left = 0;
top++; top++;
left = 0;
} }
gtk_widget_show (widget); gtk_widget_show (widget);
} }
if (left == 3)
top++; top++;
/* Last line for comment field. */ /* Last line for comment field. */