SVN commit 624482 by cgilles:
digiKam from trunk : Channel Mixer Tool : remember the settings between plugin sessions CCMAIL: [hidden email] M +75 -17 channelmixer.cpp M +5 -6 channelmixer.h --- trunk/extragear/graphics/digikamimageplugins/channelmixer/channelmixer.cpp #624481:624482 @@ -1,9 +1,10 @@ /* ============================================================ - * Author: Gilles Caulier <caulier dot gilles at kdemail dot net> - * Date : 2005-02-26 + * Authors: Gilles Caulier <caulier dot gilles at kdemail dot net> + * Date : 2005-02-26 * Description : * * Copyright 2005-2007 by Gilles Caulier + * * Load and save mixer gains methods inspired from * Gimp 2.2.3 and copyrighted 2002 by Martin Guldahl * <mguldahl at xmission dot com>. @@ -50,6 +51,7 @@ // KDE includes. +#include <kconfig.h> #include <kcursor.h> #include <klocale.h> #include <knuminput.h> @@ -85,7 +87,7 @@ digikamimageplugins_version, I18N_NOOP("An image color channel mixer plugin for digiKam."), KAboutData::License_GPL, - "(c) 2005-2006, Gilles Caulier", + "(c) 2005-2007, Gilles Caulier", 0, "http://extragear.kde.org/apps/digikamimageplugins"); @@ -210,11 +212,6 @@ setUserAreaWidget(gboxSettings); // ------------------------------------------------------------- - - // Reset all parameters to the default values. - QTimer::singleShot(0, this, SLOT(slotDefault())); - - // ------------------------------------------------------------- // Channels and scale selection slots. connect(m_channelCB, SIGNAL(activated(int)), @@ -509,23 +506,85 @@ m_histogramWidget->repaint(false); } -// Reset all gains. -void ChannelMixerDialog::slotDefault() +void ChannelMixerDialog::readUserSettings() { + KConfig* config = kapp->config(); + config->setGroup("channelmixer Tool Dialog"); + + m_channelCB->setCurrentItem(config->readNumEntry("Histogram Channel", 0)); // Luminosity. + m_scaleBG->setButton(config->readNumEntry("Histogram Scale", Digikam::HistogramWidget::LogScaleHistogram)); + + m_monochrome->setChecked(config->readBoolEntry("Monochrome", false)); + m_preserveLuminosity->setChecked(config->readNumEntry("PreserveLuminosity", false)); + + m_redRedGain = config->readDoubleNumEntry("RedRedGain", 1.0); + m_redGreenGain = config->readDoubleNumEntry("RedGreenGain", 0.0); + m_redBlueGain = config->readDoubleNumEntry("RedBlueGain", 0.0); + + m_greenRedGain = config->readDoubleNumEntry("GreenRedGain", 0.0); + m_greenGreenGain = config->readDoubleNumEntry("GreenGreenGain", 1.0); + m_greenBlueGain = config->readDoubleNumEntry("GreenBlueGain", 0.0); + + m_blueRedGain = config->readDoubleNumEntry("BlueRedGain", 0.0); + m_blueGreenGain = config->readDoubleNumEntry("BlueGreenGain", 0.0); + m_blueBlueGain = config->readDoubleNumEntry("BlueBlueGain", 1.0); + + m_blackRedGain = config->readDoubleNumEntry("BlackRedGain", 1.0); + m_blackGreenGain = config->readDoubleNumEntry("BlackGreenGain", 0.0); + m_blackBlueGain = config->readDoubleNumEntry("BlackBlueGain", 0.0); + + adjustSliders(); + m_histogramWidget->reset(); + + slotChannelChanged(m_channelCB->currentItem()); + slotScaleChanged(m_scaleBG->selectedId()); +} + +void ChannelMixerDialog::writeUserSettings() +{ + KConfig* config = kapp->config(); + config->setGroup("channelmixer Tool Dialog"); + config->writeEntry("Histogram Channel", m_channelCB->currentItem()); + config->writeEntry("Histogram Scale", m_scaleBG->selectedId()); + + config->writeEntry("Monochrome", m_monochrome->isChecked()); + config->writeEntry("PreserveLuminosity", m_preserveLuminosity->isChecked()); + + config->writeEntry("RedRedGain", m_redRedGain); + config->writeEntry("RedGreenGain", m_redGreenGain); + config->writeEntry("RedBlueGain", m_redBlueGain); + + config->writeEntry("GreenRedGain", m_greenRedGain); + config->writeEntry("GreenGreenGain", m_greenGreenGain); + config->writeEntry("GreenBlueGain", m_greenBlueGain); + + config->writeEntry("BlueRedGain", m_blueRedGain); + config->writeEntry("BlueGreenGain", m_blueGreenGain); + config->writeEntry("BlueBlueGain", m_blueBlueGain); + + config->writeEntry("BlackRedGain", m_blackRedGain); + config->writeEntry("BlackGreenGain", m_blackGreenGain); + config->writeEntry("BlackBlueGain", m_blackBlueGain); + + config->sync(); +} + +void ChannelMixerDialog::resetValues() +{ m_monochrome->blockSignals(true); m_preserveLuminosity->blockSignals(true); - m_redRedGain = 1.0; - m_redGreenGain = 0.0; - m_redBlueGain = 0.0; + m_redRedGain = 1.0; + m_redGreenGain = 0.0; + m_redBlueGain = 0.0; m_greenRedGain = 0.0; m_greenGreenGain = 1.0; m_greenBlueGain = 0.0; - m_blueRedGain = 0.0; - m_blueGreenGain = 0.0; - m_blueBlueGain = 1.0; + m_blueRedGain = 0.0; + m_blueGreenGain = 0.0; + m_blueBlueGain = 1.0; m_blackRedGain = 1.0; m_blackGreenGain = 0.0; @@ -540,7 +599,6 @@ m_histogramWidget->reset(); slotChannelChanged(RedChannelGains); - slotEffect(); } // Load all gains. --- trunk/extragear/graphics/digikamimageplugins/channelmixer/channelmixer.h #624481:624482 @@ -44,17 +44,16 @@ ChannelMixerDialog(QWidget *parent, QString title, QFrame* banner); ~ChannelMixerDialog(); -protected: - - void finalRendering(); - private: - void adjustSliders(void); + void readUserSettings(); + void writeUserSettings(); + void resetValues(); + void finalRendering(); + void adjustSliders(); private slots: - void slotDefault(); void slotUser2(); void slotUser3(); void slotResetCurrentChannel(); _______________________________________________ Digikam-devel mailing list [hidden email] https://mail.kde.org/mailman/listinfo/digikam-devel |
Free forum by Nabble | Edit this page |