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" #define DEFPROFILE_DYNAMIC "Dynamic"
struct SaveFormat { struct SaveFormat {
SaveFormat() :
format ("jpg"),
pngBits (8),
jpegQuality (90),
jpegSubSamp (2),
tiffBits (8),
tiffFloat(false),
tiffUncompressed (true),
saveParams (true)
{
}
SaveFormat( SaveFormat(
const Glib::ustring& _format, const Glib::ustring& _format,
int _png_bits, int _png_bits,
@@ -75,6 +64,28 @@ struct SaveFormat {
saveParams(_save_params) 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; Glib::ustring format;
int pngBits; int pngBits;

View File

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