diff options
Diffstat (limited to 'src/utilities/setup/setupdcraw.cpp')
| -rw-r--r-- | src/utilities/setup/setupdcraw.cpp | 150 | 
1 files changed, 150 insertions, 0 deletions
| diff --git a/src/utilities/setup/setupdcraw.cpp b/src/utilities/setup/setupdcraw.cpp new file mode 100644 index 00000000..57f9cb2d --- /dev/null +++ b/src/utilities/setup/setupdcraw.cpp @@ -0,0 +1,150 @@ +/* ============================================================ + * + * This file is a part of digiKam project + * http://www.digikam.org + * + * Date        : 2007-02-06 + * Description : setup RAW decoding settings. + * + * Copyright (C) 2007-2008 by Gilles Caulier <caulier dot gilles at gmail dot com> + * + * This program is free software; you can redistribute it + * and/or modify it under the terms of the GNU General + * Public License as published by the Free Software Foundation; + * either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * ============================================================ */ + +// TQt includes. + +#include <tqlayout.h> +#include <tqlabel.h> +#include <tqcolor.h> +#include <tqhbox.h> +#include <tqvgroupbox.h> +#include <tqlabel.h> +#include <tqwhatsthis.h> +#include <tqcheckbox.h> +#include <tqcombobox.h> + +// KDE includes. + +#include <tdelocale.h> +#include <kiconloader.h> +#include <kdialog.h> +#include <tdeconfig.h> +#include <tdeapplication.h> + +// LibKDcraw includes. + +#include <libkdcraw/version.h> +#include <libkdcraw/dcrawsettingswidget.h> + +// Local includes. + +#include "drawdecoding.h" +#include "setupdcraw.h" +#include "setupdcraw.moc" + +using namespace KDcrawIface; + +namespace Digikam +{ + +class SetupDcrawPriv +{ +public: + + +    SetupDcrawPriv() +    { +        dcrawSettings = 0; +    } + +    KDcrawIface::DcrawSettingsWidget *dcrawSettings; +}; + +SetupDcraw::SetupDcraw(TQWidget* parent ) +          : TQWidget(parent) +{ +    d = new SetupDcrawPriv; +    TQVBoxLayout *layout = new TQVBoxLayout(parent, 0, KDialog::spacingHint()); +    d->dcrawSettings    = new DcrawSettingsWidget(parent, DcrawSettingsWidget::SIXTEENBITS); +    d->dcrawSettings->setItemIconSet(0, SmallIconSet("kdcraw")); +    d->dcrawSettings->setItemIconSet(1, SmallIconSet("whitebalance")); +    d->dcrawSettings->setItemIconSet(2, SmallIconSet("lensdistortion")); +    layout->addWidget(d->dcrawSettings); +    layout->addStretch(); + +    connect(d->dcrawSettings, TQ_SIGNAL(signalSixteenBitsImageToggled(bool)), +            this, TQ_SLOT(slotSixteenBitsImageToggled(bool))); + +    readSettings(); +} + +SetupDcraw::~SetupDcraw() +{ +    delete d; +} + +void SetupDcraw::slotSixteenBitsImageToggled(bool) +{ +    // Dcraw do not provide a way to set brigness of image in 16 bits color depth. +    // We always set on this option. We drive brightness adjustment in digiKam Raw image loader. +    d->dcrawSettings->setEnabledBrightnessSettings(true); +} + +void SetupDcraw::applySettings() +{ +    TDEConfig* config = kapp->config(); +    config->setGroup("ImageViewer Settings"); +    config->writeEntry("SixteenBitsImage",        d->dcrawSettings->sixteenBits()); +    config->writeEntry("WhiteBalance",            d->dcrawSettings->whiteBalance()); +    config->writeEntry("CustomWhiteBalance",      d->dcrawSettings->customWhiteBalance()); +    config->writeEntry("CustomWhiteBalanceGreen", d->dcrawSettings->customWhiteBalanceGreen()); +    config->writeEntry("RGBInterpolate4Colors",   d->dcrawSettings->useFourColor()); +    config->writeEntry("DontStretchPixels",       d->dcrawSettings->useDontStretchPixels()); +    config->writeEntry("EnableNoiseReduction",    d->dcrawSettings->useNoiseReduction()); +    config->writeEntry("NRThreshold",             d->dcrawSettings->NRThreshold()); +    config->writeEntry("EnableCACorrection",      d->dcrawSettings->useCACorrection()); +    config->writeEntry("caRedMultiplier",         d->dcrawSettings->caRedMultiplier()); +    config->writeEntry("caBlueMultiplier",        d->dcrawSettings->caBlueMultiplier()); +    config->writeEntry("UnclipColors",            d->dcrawSettings->unclipColor()); +    config->writeEntry("RAWBrightness",           d->dcrawSettings->brightness()); +    config->writeEntry("RAWQuality",              d->dcrawSettings->quality()); +    config->writeEntry("MedianFilterPasses",      d->dcrawSettings->medianFilterPasses()); +    config->sync(); +} + +void SetupDcraw::readSettings() +{ +    TDEConfig* config = kapp->config(); +    config->setGroup("ImageViewer Settings"); +    d->dcrawSettings->setSixteenBits(config->readBoolEntry("SixteenBitsImage", false)); +    d->dcrawSettings->setNoiseReduction(config->readBoolEntry("EnableNoiseReduction", false)); +    d->dcrawSettings->setNRThreshold(config->readNumEntry("NRThreshold", 100)); +    d->dcrawSettings->setUseCACorrection(config->readBoolEntry("EnableCACorrection", false)); +    d->dcrawSettings->setcaRedMultiplier(config->readDoubleNumEntry("caRedMultiplier", 1.0)); +    d->dcrawSettings->setcaBlueMultiplier(config->readDoubleNumEntry("caBlueMultiplier", 1.0)); +    d->dcrawSettings->setDontStretchPixels(config->readBoolEntry("DontStretchPixels", false)); +    d->dcrawSettings->setUnclipColor(config->readNumEntry("UnclipColors", 0)); +    d->dcrawSettings->setWhiteBalance((DRawDecoding::WhiteBalance) +                                      config->readNumEntry("WhiteBalance", +                                      DRawDecoding::CAMERA)); +    d->dcrawSettings->setCustomWhiteBalance(config->readNumEntry("CustomWhiteBalance", 6500)); +    d->dcrawSettings->setCustomWhiteBalanceGreen(config->readDoubleNumEntry("CustomWhiteBalanceGreen", 1.0)); +    d->dcrawSettings->setFourColor(config->readBoolEntry("RGBInterpolate4Colors", false)); +    d->dcrawSettings->setQuality((DRawDecoding::DecodingQuality) +                                  config->readNumEntry("RAWQuality", +                                  DRawDecoding::BILINEAR)); +    d->dcrawSettings->setBrightness(config->readDoubleNumEntry("RAWBrightness", 1.0)); +    d->dcrawSettings->setMedianFilterPasses(config->readNumEntry("MedianFilterPasses", 0)); +} + +}  // namespace Digikam | 
