Automatic matching in SaveFormatPanel::init() (#4789)

This commit is contained in:
Flössie 2018-09-12 20:07:48 +02:00
parent f653b01f61
commit 37c0b3bfe2

View File

@ -124,31 +124,29 @@ SaveFormatPanel::~SaveFormatPanel ()
void SaveFormatPanel::init (SaveFormat &sf) void SaveFormatPanel::init (SaveFormat &sf)
{ {
FormatChangeListener* const tmp = listener;
FormatChangeListener* tmp = listener;
listener = nullptr; listener = nullptr;
if (sf.format == "jpg") { std::pair<int, std::size_t> index;
format->set_active (0);
} else if (sf.format == "png" && sf.pngBits == 16) { for (std::size_t i = 0; i < sf_templates.size(); ++i) {
format->set_active (6); const int weight =
} else if (sf.format == "png" && sf.pngBits == 8) { 10 * (sf.format == sf_templates[i].second.format)
format->set_active (5); + (sf.tiffBits == sf_templates[i].second.tiffBits)
} else if (sf.format == "tif" && sf.tiffBits == 32) { + (sf.tiffFloat == sf_templates[i].second.tiffFloat)
format->set_active (4); + (sf.pngBits == sf_templates[i].second.pngBits);
} else if (sf.format == "tif" && sf.tiffBits == 16 && sf.tiffFloat) { if (weight > index.first) {
format->set_active (3); index = {weight, i};
} else if (sf.format == "tif" && sf.tiffBits == 16) { }
format->set_active (2);
} else if (sf.format == "tif" && sf.tiffBits == 8) {
format->set_active (1);
} }
jpegSubSamp->set_active (sf.jpegSubSamp - 1); format->set_active(index.second);
jpegSubSamp->set_active(sf.jpegSubSamp - 1);
jpegQual->setValue(sf.jpegQuality); jpegQual->setValue(sf.jpegQuality);
savesPP->set_active(sf.saveParams); savesPP->set_active(sf.saveParams);
tiffUncompressed->set_active(sf.tiffUncompressed); tiffUncompressed->set_active(sf.tiffUncompressed);
listener = tmp; listener = tmp;
} }