SVN commit 624106 by cgilles:
digiKam from trunk : Auto-Color Correction tool : Add capability to remember settings between plugin session. CCMAIL: [hidden email] M +40 -24 imageeffect_autocorrection.cpp M +18 -15 imageeffect_autocorrection.h --- trunk/extragear/graphics/digikam/imageplugins/imageeffect_autocorrection.cpp #624105:624106 @@ -1,9 +1,9 @@ /* ============================================================ * Authors: Gilles Caulier <caulier dot gilles at kdemail dot net> - * Date : 2005-05-31 + * Date : 2005-05-31 * Description : Auto-Color correction tool. * - * Copyright 2005-2006 by Gilles Caulier + * Copyright 2005-2007 by Gilles Caulier * * This program is free software; you can redistribute it * and/or modify it under the terms of the GNU General @@ -43,6 +43,7 @@ // KDE includes. #include <kcursor.h> +#include <kconfig.h> #include <klocale.h> #include <kstandarddirs.h> #include <kapplication.h> @@ -60,21 +61,22 @@ // Local includes. #include "imageeffect_autocorrection.h" +#include "imageeffect_autocorrection.moc" namespace DigikamImagesPluginCore { ImageEffect_AutoCorrection::ImageEffect_AutoCorrection(QWidget* parent) - : Digikam::ImageDlgBase(parent, i18n("Auto Color Correction"), "autocorrection", false) - ,m_destinationPreviewData(0L) + : Digikam::ImageDlgBase(parent, i18n("Auto Color Correction"), + "autocorrection", false), m_destinationPreviewData(0L) { setHelp("autocolorcorrectiontool.anchor", "digikam"); // ------------------------------------------------------------- m_previewWidget = new Digikam::ImageWidget("autocorrection Tool Dialog", plainPage(), - i18n("<p>Here you can see the auto-color correction tool preview. " - "You can pick color on image " + i18n("<p>Here you can see the auto-color correction tool " + "preview. You can pick color on image " "to see the color level corresponding on histogram.")); setPreviewAreaWidget(m_previewWidget); @@ -136,8 +138,8 @@ // ------------------------------------------------------------- m_histogramWidget = new Digikam::HistogramWidget(256, 140, gboxSettings, false, true, true); - QWhatsThis::add( m_histogramWidget, i18n("<p>Here you can see the target preview image histogram drawing of the " - "selected image channel. This one is re-computed at any " + QWhatsThis::add( m_histogramWidget, i18n("<p>Here you can see the target preview image histogram drawing " + "of the selected image channel. This one is re-computed at any " "settings changes.")); m_hGradient = new Digikam::ColorGradientWidget( Digikam::ColorGradientWidget::Horizontal, 10, gboxSettings ); @@ -156,7 +158,7 @@ QPixmap pix = getThumbnailForEffect(AutoLevelsCorrection); - QListBoxItem *item = new Digikam::ListBoxPreviewItem(pix, i18n("Auto Levels")); + Digikam::ListBoxPreviewItem *item = new Digikam::ListBoxPreviewItem(pix, i18n("Auto Levels")); whatsThis->add( item, i18n("<img source=\"%1\"> <b>Auto Levels</b>:" "<p>This option maximizes the tonal range in the Red, " @@ -178,14 +180,14 @@ pix = getThumbnailForEffect(EqualizeCorrection); item = new Digikam::ListBoxPreviewItem(pix, i18n("Equalize")); whatsThis->add( item, i18n("<img source=\"%1\"> <b>Equalize</b>:" - "<p>This option adjusts the brightness of colors across the " - "active image so that the histogram for the value channel " - "is as nearly as possible flat, that is, so that each possible " - "brightness value appears at about the same number of pixels " - "as each other value. Sometimes Equalize works wonderfully at " - "enhancing the contrasts in an image. Other times it gives " - "garbage. It is a very powerful operation, which can either work " - "miracles on an image or destroy it.</p>").arg(previewEffectPic("equalize"))); + "<p>This option adjusts the brightness of colors across the " + "active image so that the histogram for the value channel " + "is as nearly as possible flat, that is, so that each possible " + "brightness value appears at about the same number of pixels " + "as each other value. Sometimes Equalize works wonderfully at " + "enhancing the contrasts in an image. Other times it gives " + "garbage. It is a very powerful operation, which can either work " + "miracles on an image or destroy it.</p>").arg(previewEffectPic("equalize"))); m_correctionTools->insertItem(item, EqualizeCorrection); pix = getThumbnailForEffect(StretchContrastCorrection); @@ -204,9 +206,6 @@ gridSettings->setRowStretch(3, 10); setUserAreaWidget(gboxSettings); - // Reset all parameters to the default values. - QTimer::singleShot(0, this, SLOT(slotDefault())); - // ------------------------------------------------------------- connect(m_channelCB, SIGNAL(activated(int)), @@ -281,12 +280,30 @@ return ( KGlobal::dirs()->findResourceDir(name.ascii(), name + ".png") + name + ".png" ); } -void ImageEffect_AutoCorrection::slotDefault() +void ImageEffect_AutoCorrection::readUserSettings() { + KConfig* config = kapp->config(); + config->setGroup("autocorrection Tool Dialog"); + m_channelCB->setCurrentItem(config->readNumEntry("Histogram Channel", 0)); // Luminosity. + m_scaleBG->setButton(config->readNumEntry("Histogram Scale", Digikam::HistogramWidget::LogScaleHistogram)); + m_correctionTools->setCurrentItem(config->readNumEntry("Auto Correction Filter", AutoLevelsCorrection)); +} + +void ImageEffect_AutoCorrection::writeUserSettings() +{ + KConfig* config = kapp->config(); + config->setGroup("autocorrection Tool Dialog"); + config->writeEntry("Histogram Channel", m_channelCB->currentItem()); + config->writeEntry("Histogram Scale", m_scaleBG->selectedId()); + config->writeEntry("Auto Correction Filter", m_correctionTools->currentItem()); + config->sync(); +} + +void ImageEffect_AutoCorrection::resetValues() +{ m_correctionTools->blockSignals(true); - m_correctionTools->setCurrentItem( AutoLevelsCorrection ); + m_correctionTools->setCurrentItem(AutoLevelsCorrection); m_correctionTools->blockSignals(false); - slotEffect(); } void ImageEffect_AutoCorrection::slotEffect() @@ -392,4 +409,3 @@ } // NameSpace DigikamImagesPluginCore -#include "imageeffect_autocorrection.moc" --- trunk/extragear/graphics/digikam/imageplugins/imageeffect_autocorrection.h #624105:624106 @@ -1,9 +1,9 @@ /* ============================================================ * Authors: Gilles Caulier <caulier dot gilles at kdemail dot net> - * Date : 2005-05-31 + * Date : 2005-05-31 * Description : Auto-Color correction tool. * - * Copyright 2005-2006 by Gilles Caulier + * Copyright 2005-2007 by Gilles Caulier * * This program is free software; you can redistribute it * and/or modify it under the terms of the GNU General @@ -55,6 +55,17 @@ ImageEffect_AutoCorrection(QWidget *parent); ~ImageEffect_AutoCorrection(); +protected: + + void finalRendering(); + +private slots: + + void slotEffect(); + void slotChannelChanged(int channel); + void slotScaleChanged(int scale); + void slotColorSelectedFromTarget(const Digikam::DColor &color); + private: enum AutoCorrectionType @@ -94,24 +105,16 @@ Digikam::HistogramWidget *m_histogramWidget; Digikam::DImg m_thumbnailImage; - + private: + void readUserSettings(); + void writeUserSettings(); + void resetValues(); + void autoCorrection(uchar *data, int w, int h, bool sb, int type); QString previewEffectPic(QString name); QPixmap getThumbnailForEffect(AutoCorrectionType type); - -private slots: - - void slotDefault(); - void slotEffect(); - void slotChannelChanged(int channel); - void slotScaleChanged(int scale); - void slotColorSelectedFromTarget( const Digikam::DColor &color ); - -protected: - - void finalRendering(); }; } // NameSpace DigikamImagesPluginCore _______________________________________________ Digikam-devel mailing list [hidden email] https://mail.kde.org/mailman/listinfo/digikam-devel |
Free forum by Nabble | Edit this page |