New crop guide: square center, closes #6342 (#6345)

* New crop guide: square center, closes #6342

* Turn `CropParams::guide` into an `enum`

This saves recurring string comparisons.

Co-authored-by: Flössie <floessie.mail@gmail.com>
This commit is contained in:
Ingo Weyrich
2021-08-25 15:25:59 +02:00
committed by GitHub
parent 55ceb5b248
commit 8bd9bddfc7
8 changed files with 171 additions and 100 deletions

View File

@@ -24,6 +24,7 @@
#include "rtimage.h"
#include "../rtengine/procparams.h"
#include "../rtengine/utils.h"
using namespace rtengine;
using namespace rtengine::procparams;
@@ -295,6 +296,7 @@ Crop::Crop():
guide->append (M("TP_CROP_GTTRIANGLE1"));
guide->append (M("TP_CROP_GTTRIANGLE2"));
guide->append (M("TP_CROP_GTEPASSPORT"));
guide->append (M("TP_CROP_GTCENTEREDSQUARE"));
guide->set_active (0);
w->set_range (1, maxw);
@@ -413,24 +415,19 @@ void Crop::read (const ProcParams* pp, const ParamsEdited* pedited)
orientation->set_active (2);
}
if (pp->crop.guide == "None") {
guide->set_active (0);
} else if (pp->crop.guide == "Frame") {
guide->set_active (1);
} else if (pp->crop.guide == "Rule of thirds") {
guide->set_active (2);
} else if (pp->crop.guide == "Rule of diagonals") {
guide->set_active (3);
} else if (!strncmp(pp->crop.guide.data(), "Harmonic means", 14)) {
guide->set_active (4);
} else if (pp->crop.guide == "Grid") {
guide->set_active (5);
} else if (pp->crop.guide == "Golden Triangle 1") {
guide->set_active (6);
} else if (pp->crop.guide == "Golden Triangle 2") {
guide->set_active (7);
} else if (pp->crop.guide == "ePassport") {
guide->set_active (8);
switch (pp->crop.guide) {
case procparams::CropParams::Guide::NONE:
case procparams::CropParams::Guide::FRAME:
case procparams::CropParams::Guide::RULE_OF_THIRDS:
case procparams::CropParams::Guide::RULE_OF_DIAGONALS:
case procparams::CropParams::Guide::HARMONIC_MEANS:
case procparams::CropParams::Guide::GRID:
case procparams::CropParams::Guide::GOLDEN_TRIANGLE_1:
case procparams::CropParams::Guide::GOLDEN_TRIANGLE_2:
case procparams::CropParams::Guide::EPASSPORT:
case procparams::CropParams::Guide::CENTERED_SQUARE: {
guide->set_active(toUnderlying(pp->crop.guide));
}
}
x->set_value(pp->crop.x);
@@ -531,25 +528,7 @@ void Crop::write (ProcParams* pp, ParamsEdited* pedited)
pp->crop.orientation = "As Image";
}
if (guide->get_active_row_number() == 0) {
pp->crop.guide = "None";
} else if (guide->get_active_row_number() == 1) {
pp->crop.guide = "Frame";
} else if (guide->get_active_row_number() == 2) {
pp->crop.guide = "Rule of thirds";
} else if (guide->get_active_row_number() == 3) {
pp->crop.guide = "Rule of diagonals";
} else if (guide->get_active_row_number() == 4) {
pp->crop.guide = "Harmonic means";
} else if (guide->get_active_row_number() == 5) {
pp->crop.guide = "Grid";
} else if (guide->get_active_row_number() == 6) {
pp->crop.guide = "Golden Triangle 1";
} else if (guide->get_active_row_number() == 7) {
pp->crop.guide = "Golden Triangle 2";
} else if (guide->get_active_row_number() == 8) {
pp->crop.guide = "ePassport";
}
pp->crop.guide = procparams::CropParams::Guide(guide->get_active_row_number());
if (pedited) {
pedited->crop.enabled = !get_inconsistent();