plug-ins: fix #7086 Can't remove color space from a 1bit monochrome palette
For 1-bit BMP export we did not show the save dialog, making it impossible to change settings interactively. We enable the save dialog for 1-bit too, making sure to disable RLE, which is not available for 1-bit.
This commit is contained in:
@ -66,7 +66,8 @@ static void write_image (FILE *f,
|
|||||||
gint mask_info_size,
|
gint mask_info_size,
|
||||||
gint color_space_size);
|
gint color_space_size);
|
||||||
|
|
||||||
static gboolean save_dialog (gint channels);
|
static gboolean save_dialog (gint channels,
|
||||||
|
gint bpp);
|
||||||
|
|
||||||
|
|
||||||
static struct
|
static struct
|
||||||
@ -259,9 +260,10 @@ save_image (const gchar *filename,
|
|||||||
|
|
||||||
if (run_mode == GIMP_RUN_INTERACTIVE &&
|
if (run_mode == GIMP_RUN_INTERACTIVE &&
|
||||||
(BitsPerPixel == 8 ||
|
(BitsPerPixel == 8 ||
|
||||||
BitsPerPixel == 4))
|
BitsPerPixel == 4 ||
|
||||||
|
BitsPerPixel == 1))
|
||||||
{
|
{
|
||||||
if (! save_dialog (1))
|
if (! save_dialog (1, BitsPerPixel))
|
||||||
return GIMP_PDB_CANCEL;
|
return GIMP_PDB_CANCEL;
|
||||||
}
|
}
|
||||||
else if (BitsPerPixel == 24 ||
|
else if (BitsPerPixel == 24 ||
|
||||||
@ -269,7 +271,7 @@ save_image (const gchar *filename,
|
|||||||
{
|
{
|
||||||
if (run_mode == GIMP_RUN_INTERACTIVE)
|
if (run_mode == GIMP_RUN_INTERACTIVE)
|
||||||
{
|
{
|
||||||
if (! save_dialog (channels))
|
if (! save_dialog (channels, BitsPerPixel))
|
||||||
return GIMP_PDB_CANCEL;
|
return GIMP_PDB_CANCEL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -714,6 +716,8 @@ write_image (FILE *f,
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
if (bpp == 1)
|
||||||
|
use_run_length_encoding = 0;
|
||||||
switch (use_run_length_encoding) /* now it gets more difficult */
|
switch (use_run_length_encoding) /* now it gets more difficult */
|
||||||
{ /* uncompressed 1,4 and 8 bit */
|
{ /* uncompressed 1,4 and 8 bit */
|
||||||
case 0:
|
case 0:
|
||||||
@ -893,7 +897,7 @@ format_callback (GtkToggleButton *toggle,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
save_dialog (gint channels)
|
save_dialog (gint channels, gint bpp)
|
||||||
{
|
{
|
||||||
GtkWidget *dialog;
|
GtkWidget *dialog;
|
||||||
GtkWidget *toggle;
|
GtkWidget *toggle;
|
||||||
@ -922,7 +926,7 @@ save_dialog (gint channels)
|
|||||||
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (toggle),
|
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (toggle),
|
||||||
BMPSaveData.use_run_length_encoding);
|
BMPSaveData.use_run_length_encoding);
|
||||||
gtk_widget_show (toggle);
|
gtk_widget_show (toggle);
|
||||||
if (channels > 1)
|
if (channels > 1 || bpp == 1)
|
||||||
gtk_widget_set_sensitive (toggle, FALSE);
|
gtk_widget_set_sensitive (toggle, FALSE);
|
||||||
|
|
||||||
g_signal_connect (toggle, "toggled",
|
g_signal_connect (toggle, "toggled",
|
||||||
|
Reference in New Issue
Block a user