SVN commit 622294 by cgilles:
digikam from trunk : Remember User Settings from all Image Plugins : - Preparing common dialogs implementation. - BCG Tool fixed. All users settings will be saved between session. - CM Tool adapted to new API (Warning : you will lost temporally your settings at next session of this tool duing this change. Just re-set the tool and all will fine) CCMAIL: [hidden email] M +21 -2 imageplugins/imageeffect_bcg.cpp M +4 -2 imageplugins/imageeffect_bcg.h M +7 -13 imageplugins/imageeffect_iccproof.cpp M +46 -46 imageplugins/imageeffect_iccproof.h M +27 -14 libs/dialogs/imagedlgbase.cpp M +9 -6 libs/dialogs/imagedlgbase.h M +3 -3 libs/dialogs/imageguidedlg.cpp M +6 -5 libs/dialogs/imageguidedlg.h --- trunk/extragear/graphics/digikam/imageplugins/imageeffect_bcg.cpp #622293:622294 @@ -43,6 +43,7 @@ #include <knuminput.h> #include <klocale.h> #include <kapplication.h> +#include <kconfig.h> #include <kcursor.h> #include <kstandarddirs.h> @@ -264,8 +265,27 @@ m_histogramWidget->setHistogramGuideByColor(color); } -void ImageEffect_BCG::slotDefault() +void ImageEffect_BCG::readUserSettings() { + KConfig* config = kapp->config(); + config->setGroup("bcgadjust Tool Dialog"); + m_bInput->setValue(config->readNumEntry("BrightnessAjustment", 0)); + m_cInput->setValue(config->readNumEntry("ContrastAjustment", 0)); + m_gInput->setValue(config->readDoubleNumEntry("GammaAjustment", 1.0)); +} + +void ImageEffect_BCG::writeUserSettings() +{ + KConfig* config = kapp->config(); + config->setGroup("bcgadjust Tool Dialog"); + config->writeEntry("BrightnessAjustment", m_bInput->value()); + config->writeEntry("ContrastAjustment", m_cInput->value()); + config->writeEntry("GammaAjustment", m_gInput->value()); + config->sync(); +} + +void ImageEffect_BCG::resetValues() +{ m_bInput->blockSignals(true); m_cInput->blockSignals(true); m_gInput->blockSignals(true); @@ -275,7 +295,6 @@ m_bInput->blockSignals(false); m_cInput->blockSignals(false); m_gInput->blockSignals(false); - slotEffect(); } void ImageEffect_BCG::slotEffect() --- trunk/extragear/graphics/digikam/imageplugins/imageeffect_bcg.h #622293:622294 @@ -58,14 +58,16 @@ private slots: - void slotDefault(); void slotEffect(); void slotChannelChanged(int channel); void slotScaleChanged(int scale); void slotColorSelectedFromTarget( const Digikam::DColor &color ); -protected: +private: + void writeUserSettings(); + void readUserSettings(); + void resetValues(); void finalRendering(); private: --- trunk/extragear/graphics/digikam/imageplugins/imageeffect_iccproof.cpp #622293:622294 @@ -3,7 +3,7 @@ * Gilles Caulier <caulier dot gilles at kdemail dot net> * Date : 2005-12-21 * Copyright 2005-2006 by F.J. Cruz - * 2006 by Gilles Caulier + * 2006-2007 by Gilles Caulier * * Description : digiKam image editor tool to correct picture * colors using an ICC color profile @@ -433,14 +433,10 @@ gridSettings->addMultiCellWidget(m_toolBoxWidgets, 3, 3, 0, 2); setUserAreaWidget(gboxSettings); + enableButtonOK(false); // ------------------------------------------------------------- - enableButtonOK( false ); - readSettings(); - - // ------------------------------------------------------------- - connect(lcmsLogoLabel, SIGNAL(leftClickedURL(const QString&)), this, SLOT(processLCMSURL(const QString&))); @@ -520,7 +516,6 @@ ImageEffect_ICCProof::~ImageEffect_ICCProof() { - writeSettings(); m_histogramWidget->stopHistogramComputation(); delete [] m_destinationPreviewData; @@ -530,7 +525,7 @@ delete m_curves; } -void ImageEffect_ICCProof::readSettings() +void ImageEffect_ICCProof::readUserSettings() { QString defaultICCPath = KGlobalSettings::documentPath(); KConfig* config = kapp->config(); @@ -563,7 +558,7 @@ } // Plugin settings. - config->setGroup("Color Management Tool"); + config->setGroup("colormanagement Tool Dialog"); m_toolBoxWidgets->setCurrentIndex(config->readNumEntry("Settings Tab", GENERALPAGE)); m_inProfilesPath->setURL(config->readPathEntry("InputProfilePath", defaultICCPath)); m_proofProfilePath->setURL(config->readPathEntry("ProofProfilePath", defaultICCPath)); @@ -606,10 +601,10 @@ m_curvesWidget->curveTypeChanged(); } -void ImageEffect_ICCProof::writeSettings() +void ImageEffect_ICCProof::writeUserSettings() { KConfig* config = kapp->config(); - config->setGroup("Color Management Tool"); + config->setGroup("colormanagement Tool Dialog"); config->writeEntry("Settings Tab", m_toolBoxWidgets->currentIndex()); config->writePathEntry("InputProfilePath", m_inProfilesPath->url()); config->writePathEntry("ProofProfilePath", m_proofProfilePath->url()); @@ -690,7 +685,7 @@ m_histogramWidget->repaint(false); } -void ImageEffect_ICCProof::slotDefault() +void ImageEffect_ICCProof::resetValues() { m_cInput->blockSignals(true); m_cInput->setValue(0.0); @@ -700,7 +695,6 @@ m_curvesWidget->reset(); m_cInput->blockSignals(false); - slotEffect(); } void ImageEffect_ICCProof::slotEffect() --- trunk/extragear/graphics/digikam/imageplugins/imageeffect_iccproof.h #622293:622294 @@ -3,7 +3,7 @@ * Gilles Caulier <caulier dot gilles at kdemail dot net> * Date : 2005-12-21 * Copyright 2005-2006 by F.J. Cruz - * 2006 by Gilles Caulier + * 2006-2007 by Gilles Caulier * * Description : digiKam image editor tool to correct picture * colors using an ICC color profile @@ -64,8 +64,53 @@ ImageEffect_ICCProof(QWidget* parent); ~ImageEffect_ICCProof(); +protected: + + void finalRendering(); + private: + void readUserSettings(); + void writeUserSettings(); + void resetValues(); + + void getICCInfo(const QString&); + void getICCInfo(const QByteArray&); + + bool useBPC(); + bool doProof(); + bool checkGamut(); + bool embedProfile(); + + bool useEmbeddedProfile(); + bool useBuiltinProfile(); + bool useDefaultInProfile(); + bool useSelectedInProfile(); + + bool useDefaultSpaceProfile(); + bool useSelectedSpaceProfile(); + + bool useDefaultProofProfile(); + bool useSelectedProofProfile(); + +private slots: + + void slotUser2(); + void slotUser3(); + void slotEffect(); + void slotChannelChanged(int); + void slotScaleChanged(int); + void slotSpotColorChanged(const Digikam::DColor &); + void slotColorSelectedFromTarget(const Digikam::DColor &); + void slotToggledWidgets(bool); + void slotInICCInfo(); + void slotProofICCInfo(); + void slotSpaceICCInfo(); + void slotCMDisabledWarning(); + void processLCMSURL(const QString&); + +private: + enum HistogramScale { Linear = 0, @@ -150,51 +195,6 @@ Digikam::ICCPreviewWidget *m_iccInPreviewWidget; Digikam::ICCPreviewWidget *m_iccSpacePreviewWidget; Digikam::ICCPreviewWidget *m_iccProofPreviewWidget; - -private: - - void readSettings(); - void writeSettings(); - - void getICCInfo(const QString&); - void getICCInfo(const QByteArray&); - - bool useBPC(); - bool doProof(); - bool checkGamut(); - bool embedProfile(); - - bool useEmbeddedProfile(); - bool useBuiltinProfile(); - bool useDefaultInProfile(); - bool useSelectedInProfile(); - - bool useDefaultSpaceProfile(); - bool useSelectedSpaceProfile(); - - bool useDefaultProofProfile(); - bool useSelectedProofProfile(); - -private slots: - - void slotUser2(); - void slotUser3(); - void slotDefault(); - void slotEffect(); - void slotChannelChanged(int); - void slotScaleChanged(int); - void slotSpotColorChanged(const Digikam::DColor &); - void slotColorSelectedFromTarget(const Digikam::DColor &); - void slotToggledWidgets(bool); - void slotInICCInfo(); - void slotProofICCInfo(); - void slotSpaceICCInfo(); - void slotCMDisabledWarning(); - void processLCMSURL(const QString&); - -protected: - - void finalRendering(); }; } // NameSpace DigikamImagesPluginCore --- trunk/extragear/graphics/digikam/libs/dialogs/imagedlgbase.cpp #622293:622294 @@ -1,13 +1,12 @@ /* ============================================================ - * File : imagedlgbase.cpp - * Author: Gilles Caulier <caulier dot gilles at kdemail dot net> - * Date : 2005-07-23 + * Authors: Gilles Caulier <caulier dot gilles at kdemail dot net> + * Date : 2005-07-23 * Description : simple plugins dialog without threadable * filter interface. The dialog layout is * designed to accept custom widgets in * preview and settings area. * - * 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 @@ -54,6 +53,7 @@ #include "sidebar.h" #include "dimginterface.h" #include "imagedlgbase.h" +#include "imagedlgbase.moc" namespace Digikam { @@ -155,10 +155,20 @@ delete d; } -void ImageDlgBase::writeConfig() +void ImageDlgBase::readSettings(void) { KConfig *config = kapp->config(); config->setGroup(d->name + QString(" Tool Dialog")); + if(config->hasKey("SplitterSizes")) + d->splitter->setSizes(config->readIntListEntry("SplitterSizes")); + + readUserSettings(); +} + +void ImageDlgBase::writeSettings() +{ + KConfig *config = kapp->config(); + config->setGroup(d->name + QString(" Tool Dialog")); config->writeEntry("SplitterSizes", d->splitter->sizes()); config->sync(); saveDialogSize(d->name + QString(" Tool Dialog")); @@ -166,22 +176,29 @@ void ImageDlgBase::closeEvent(QCloseEvent *e) { - writeConfig(); + writeSettings(); e->accept(); } void ImageDlgBase::slotCancel() { - writeConfig(); + writeSettings(); done(Cancel); } void ImageDlgBase::slotOk() { - writeConfig(); + writeSettings(); + writeUserSettings(); finalRendering(); } +void ImageDlgBase::slotDefault() +{ + resetValues(); + slotEffect(); +} + void ImageDlgBase::slotHelp() { // If setAboutData() is called by plugin, well DigikamImagePlugins help is lauch, @@ -219,11 +236,8 @@ d->settingsSideBar->setSplitter(d->splitter); d->settingsSideBar->appendTab(w, SmallIcon("configure"), i18n("Settings")); d->settingsSideBar->loadViewState(); - - KConfig *config = kapp->config(); - config->setGroup(d->name + QString(" Tool Dialog")); - if(config->hasKey("SplitterSizes")) - d->splitter->setSizes(config->readIntListEntry("SplitterSizes")); + + readSettings(); } void ImageDlgBase::slotTimer() @@ -242,4 +256,3 @@ } // NameSpace Digikam -#include "imagedlgbase.moc" --- trunk/extragear/graphics/digikam/libs/dialogs/imagedlgbase.h #622293:622294 @@ -1,13 +1,12 @@ /* ============================================================ - * File : imagedlgbase.h - * Author: Gilles Caulier <caulier dot gilles at kdemail dot net> - * Date : 2005-07-23 + * Authors: Gilles Caulier <caulier dot gilles at kdemail dot net> + * Date : 2005-07-23 * Description : simple plugins dialog without threadable * filter interface. The dialog layout is * designed to accept custom widgets in * preview and settings area. * - * 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 @@ -62,12 +61,16 @@ protected slots: + virtual void slotDefault(); virtual void slotTimer(); protected: void closeEvent(QCloseEvent *e); virtual void finalRendering(){}; + virtual void writeUserSettings(void){}; + virtual void readUserSettings(void){ slotDefault(); }; + virtual void resetValues(void){}; private slots: @@ -78,12 +81,12 @@ private: - void writeConfig(); + void readSettings(void); + void writeSettings(void); private: ImageDlgBasePriv* d; - }; } // NameSpace Digikam --- trunk/extragear/graphics/digikam/libs/dialogs/imageguidedlg.cpp #622293:622294 @@ -1,10 +1,10 @@ /* ============================================================ - * Author: Gilles Caulier <caulier dot gilles at kdemail dot net> - * Date : 2005-05-07 + * Authors: Gilles Caulier <caulier dot gilles at kdemail dot net> + * Date : 2005-05-07 * Description : A threaded filter plugin dialog with a preview * image guide widget and a settings user area * - * 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 --- trunk/extragear/graphics/digikam/libs/dialogs/imageguidedlg.h #622293:622294 @@ -1,11 +1,10 @@ /* ============================================================ - * File : imageguidedlg.h - * Author: Gilles Caulier <caulier dot gilles at kdemail dot net> - * Date : 2005-05-07 + * Authors: Gilles Caulier <caulier dot gilles at kdemail dot net> + * Date : 2005-05-07 * Description : A threaded filter plugin dialog with a preview * image guide widget and a settings user area * - * 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 @@ -76,13 +75,15 @@ void slotEffect(); void slotOk(); -private slots: +protected slots: virtual void slotCancel(); virtual void slotUser1(); virtual void slotDefault(); virtual void slotInit(); virtual void readUserSettings(void){ slotDefault(); }; + +private slots: void slotResized(); void slotHelp(); _______________________________________________ Digikam-devel mailing list [hidden email] https://mail.kde.org/mailman/listinfo/digikam-devel |
Free forum by Nabble | Edit this page |