Use delegating c'tors (#4789)

This commit is contained in:
Flössie
2018-09-12 19:10:40 +02:00
parent ddfe7e0c18
commit f653b01f61
2 changed files with 38 additions and 93 deletions

View File

@@ -44,17 +44,6 @@
#define DEFPROFILE_DYNAMIC "Dynamic"
struct SaveFormat {
SaveFormat() :
format ("jpg"),
pngBits (8),
jpegQuality (90),
jpegSubSamp (2),
tiffBits (8),
tiffFloat(false),
tiffUncompressed (true),
saveParams (true)
{
}
SaveFormat(
const Glib::ustring& _format,
int _png_bits,
@@ -75,6 +64,28 @@ struct SaveFormat {
saveParams(_save_params)
{
}
SaveFormat(
const Glib::ustring& _format,
int _png_bits,
int _tiff_bits,
bool _tiff_float
) :
SaveFormat(
_format,
_png_bits,
90,
2,
_tiff_bits,
_tiff_float,
true,
true
)
{
}
SaveFormat() :
SaveFormat("jpg", 8, 8, false)
{
}
Glib::ustring format;
int pngBits;

View File

@@ -17,6 +17,7 @@
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
*/
#include <array>
#include <utility>
#include "saveformatpanel.h"
#include "multilangmgr.h"
@@ -25,78 +26,15 @@
namespace
{
const std::array<SaveFormat, 7> sf_templates = {
SaveFormat(
"jpg",
8,
90,
2,
8,
false,
true,
true
),
SaveFormat(
"tif",
8,
90,
2,
8,
false,
true,
true
),
SaveFormat(
"tif",
8,
90,
2,
16,
false,
true,
true
),
SaveFormat(
"tif",
8,
90,
2,
16,
true,
true,
true
),
SaveFormat(
"tif",
8,
90,
2,
32,
true,
true,
true
),
SaveFormat(
"png",
8,
90,
2,
8,
false,
true,
true
),
SaveFormat(
"png",
16,
90,
2,
8,
false,
true,
true
)
};
const std::array<std::pair<const char*, SaveFormat>, 7> sf_templates = {{
{"JPEG (8-bit)", SaveFormat("jpg", 8, 8, false)},
{"TIFF (8-bit)", SaveFormat("tif", 8, 8, false)},
{"TIFF (16-bit)", SaveFormat("tif", 8, 16, false)},
{"TIFF (16-bit float)", SaveFormat("tif", 8, 16, true)},
{"TIFF (32-bit float)", SaveFormat("tif", 8, 32, true)},
{"PNG (8-bit)", SaveFormat("png", 8, 8, false)},
{"PNG (16-bit)", SaveFormat("png", 16, 8, false)}
}};
}
@@ -117,13 +55,9 @@ SaveFormatPanel::SaveFormatPanel () : listener (nullptr)
setExpandAlignProperties(format, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER);
format->signal_changed ().connect (sigc::mem_fun (*this, &SaveFormatPanel::formatChanged));
format->append ("JPEG (8-bit)");
format->append ("TIFF (8-bit)");
format->append ("TIFF (16-bit)");
format->append ("TIFF (16-bit float)");
format->append ("TIFF (32-bit float)");
format->append ("PNG (8-bit)");
format->append ("PNG (16-bit)");
for (const auto& sf_template : sf_templates) {
format->append(sf_template.first);
}
hb1->attach (*flab, 0, 0, 1, 1);
hb1->attach (*format, 1, 0, 1, 1);
@@ -225,7 +159,7 @@ SaveFormat SaveFormatPanel::getFormat ()
const unsigned int sel = format->get_active_row_number();
if (sel < sf_templates.size()) {
sf = sf_templates[sel];
sf = sf_templates[sel].second;
}
sf.jpegQuality = jpegQual->getValue();
@@ -244,7 +178,7 @@ void SaveFormatPanel::formatChanged ()
return;
}
const Glib::ustring& fr = sf_templates[act].format;
const Glib::ustring& fr = sf_templates[act].second.format;
if (fr == "jpg") {
jpegOpts->show_all();
@@ -271,6 +205,6 @@ void SaveFormatPanel::adjusterChanged (Adjuster* a, double newval)
}
if (listener) {
listener->formatChanged(sf_templates[act].format);
listener->formatChanged(sf_templates[act].second.format);
}
}