More procparams.h relaxation

This commit is contained in:
Flössie
2019-03-01 17:40:02 +01:00
parent 0cbc4923bc
commit 57d030881d
76 changed files with 597 additions and 538 deletions

View File

@@ -18,62 +18,146 @@
*/
#include "clipboard.h"
#include "../rtengine/procparams.h"
Clipboard clipboard;
Clipboard::Clipboard () : _hasIPTC(false), partProfile (false), hasDiagonalCurveDataType(DCT_Empty), hasFlatCurveDataType(FCT_Empty) {}
Clipboard::Clipboard () :
_hasIPTC(false),
iptc(new rtengine::procparams::IPTCPairs),
partProfile(new rtengine::procparams::PartialProfile(false)),
hasDiagonalCurveDataType(DCT_Empty),
hasFlatCurveDataType(FCT_Empty)
{
}
Clipboard::~Clipboard ()
{
partProfile.deleteInstance();
partProfile->deleteInstance();
}
bool Clipboard::hasIPTC() const
{
return _hasIPTC;
}
const rtengine::procparams::IPTCPairs& Clipboard::getIPTC() const
{
return *iptc;
}
void Clipboard::setIPTC(const rtengine::procparams::IPTCPairs& iptcc)
{
*iptc = iptcc;
_hasIPTC = true;
}
const rtengine::procparams::PartialProfile& Clipboard::getPartialProfile() const
{
return *partProfile;
}
/*
* set both the "pparams" and "pedited" field of the PartialProfile; each one can be NULL
*/
void Clipboard::setPartialProfile (const rtengine::procparams::PartialProfile& pprofile)
void Clipboard::setPartialProfile(const rtengine::procparams::PartialProfile& pprofile)
{
if (pprofile.pparams) {
if (!partProfile.pparams) {
partProfile.pparams = new rtengine::procparams::ProcParams();
if (!partProfile->pparams) {
partProfile->pparams = new rtengine::procparams::ProcParams();
}
*partProfile.pparams = *pprofile.pparams;
*partProfile->pparams = *pprofile.pparams;
} else {
if (partProfile.pparams) {
delete partProfile.pparams;
partProfile.pparams = nullptr;
if (partProfile->pparams) {
delete partProfile->pparams;
partProfile->pparams = nullptr;
}
}
if (pprofile.pedited) {
if (!partProfile.pedited) {
partProfile.pedited = new ParamsEdited();
if (!partProfile->pedited) {
partProfile->pedited = new ParamsEdited();
}
*partProfile.pedited = *pprofile.pedited;
*partProfile->pedited = *pprofile.pedited;
} else {
if (partProfile.pedited) {
delete partProfile.pedited;
partProfile.pedited = nullptr;
if (partProfile->pedited) {
delete partProfile->pedited;
partProfile->pedited = nullptr;
}
}
}
const rtengine::procparams::ProcParams& Clipboard::getProcParams() const
{
return *partProfile->pparams;
}
/*
* this method copy the procparams to "pparams" and delete "pedited"
*/
void Clipboard::setProcParams (const rtengine::procparams::ProcParams& pparams)
void Clipboard::setProcParams(const rtengine::procparams::ProcParams& pparams)
{
// copy procparams
if (!partProfile.pparams) {
partProfile.pparams = new rtengine::procparams::ProcParams();
if (!partProfile->pparams) {
partProfile->pparams = new rtengine::procparams::ProcParams();
}
*partProfile.pparams = pparams;
*partProfile->pparams = pparams;
// delete pedited
if (partProfile.pedited) {
delete partProfile.pedited;
partProfile.pedited = nullptr;
if (partProfile->pedited) {
delete partProfile->pedited;
partProfile->pedited = nullptr;
}
}
const ParamsEdited& Clipboard::getParamsEdited() const
{
return *partProfile->pedited;
}
bool Clipboard::hasProcParams() const
{
return partProfile->pparams;
}
bool Clipboard::hasPEdited() const
{
return partProfile->pedited;
}
DiagonalCurveType Clipboard::hasDiagonalCurveData() const
{
return hasDiagonalCurveDataType;
}
const std::vector<double>& Clipboard::getDiagonalCurveData() const
{
return diagonalCurve;
}
void Clipboard::setDiagonalCurveData(const std::vector<double>& p, DiagonalCurveType type)
{
diagonalCurve = p;
hasDiagonalCurveDataType = type;
return;
}
FlatCurveType Clipboard::hasFlatCurveData() const
{
return hasFlatCurveDataType;
}
const std::vector<double>& Clipboard:: getFlatCurveData() const
{
return flatCurve;
}
void Clipboard::setFlatCurveData(const std::vector<double>& p, FlatCurveType type)
{
flatCurve = p;
hasFlatCurveDataType = type;
return;
}