~ubuntu-branches/ubuntu/trusty/digikam/trusty

« back to all changes in this revision

Viewing changes to core/imageplugins/color/whitebalancetool.cpp

  • Committer: Package Import Robot
  • Author(s): Rohan Garg
  • Date: 2012-11-26 18:24:20 UTC
  • mfrom: (1.9.1) (3.1.23 experimental)
  • Revision ID: package-import@ubuntu.com-20121126182420-qoy6z0nx4ai0wzcl
Tags: 4:3.0.0~beta3-0ubuntu1
* New upstream release
  - Add build-deps :  libhupnp-dev, libqtgstreamer-dev, libmagickcore-dev
* Merge from debian, remaining changes:
  - Make sure libqt4-opengl-dev, libgl1-mesa-dev and libglu1-mesa-dev only
    install on i386,amd64 and powerpc
  - Depend on libtiff-dev instead of libtiff4-dev
  - Drop digikam breaks/replaces kipi-plugins-common since we're past the
    LTS release now
  - digikam to recommend mplayerthumbs | ffmpegthumbs. We currently only
    have latter in the archives, even though former is also supposed to
    be part of kdemultimedia. (LP: #890059)
  - kipi-plugins to recommend www-browser rather than konqueror directly
    since 2.8 no direct usage of konqueror is present in the flickr
    plugin anymore (LP: #1011211)
  - Keep kubuntu_mysqld_executable_name.diff
  - Don't install libkipi translations
  - Keep deps on libcv-dev, libcvaux-dev
  - Keep split packaging of libraries
  - Replace icons from KDE 3 time in debian/xpm.d/*.xpm with the new
    versions (LP: #658047)
* Update debian/not-installed

Show diffs side-by-side

added added

removed removed

Lines of Context:
8
8
 *               image white balance
9
9
 *
10
10
 * Copyright (C) 2008-2009 by Guillaume Castagnino <casta at xwing dot info>
11
 
 * Copyright (C) 2005-2011 by Gilles Caulier <caulier dot gilles at gmail dot com>
 
11
 * Copyright (C) 2005-2012 by Gilles Caulier <caulier dot gilles at gmail dot com>
12
12
 *
13
13
 * This program is free software; you can redistribute it
14
14
 * and/or modify it under the terms of the GNU General
60
60
namespace DigikamColorImagePlugin
61
61
{
62
62
 
63
 
class WhiteBalanceTool::WhiteBalanceToolPriv
 
63
class WhiteBalanceTool::Private
64
64
{
65
65
public:
66
66
 
67
 
    WhiteBalanceToolPriv() :
68
 
        destinationPreviewData(0),
 
67
    Private() :
69
68
        previewWidget(0),
70
69
        gboxSettings(0)
71
 
    {}
 
70
    {
 
71
    }
72
72
 
73
73
    static const QString configGroupName;
74
74
    static const QString configHistogramChannelEntry;
75
75
    static const QString configHistogramScaleEntry;
76
76
 
77
 
    uchar*               destinationPreviewData;
78
 
 
79
77
    WBSettings*          settingsView;
80
78
 
81
79
    ImageRegionWidget*   previewWidget;
82
80
 
83
81
    EditorToolSettings*  gboxSettings;
84
82
};
85
 
const QString WhiteBalanceTool::WhiteBalanceToolPriv::configGroupName("whitebalance Tool");
86
 
const QString WhiteBalanceTool::WhiteBalanceToolPriv::configHistogramChannelEntry("Histogram Chanel");
87
 
const QString WhiteBalanceTool::WhiteBalanceToolPriv::configHistogramScaleEntry("Histogram Scale");
 
83
 
 
84
const QString WhiteBalanceTool::Private::configGroupName("whitebalance Tool");
 
85
const QString WhiteBalanceTool::Private::configHistogramChannelEntry("Histogram Chanel");
 
86
const QString WhiteBalanceTool::Private::configHistogramScaleEntry("Histogram Scale");
88
87
 
89
88
// --------------------------------------------------------
90
89
 
91
 
WhiteBalanceTool::WhiteBalanceTool(QObject* parent)
92
 
    : EditorToolThreaded(parent), d(new WhiteBalanceToolPriv)
 
90
WhiteBalanceTool::WhiteBalanceTool(QObject* const parent)
 
91
    : EditorToolThreaded(parent), d(new Private)
93
92
{
94
93
    setObjectName("whitebalance");
95
94
    setToolName(i18n("White Balance"));
130
129
            this, SLOT(slotPickerColorButtonActived()));
131
130
 
132
131
    connect(d->previewWidget, SIGNAL(signalResized()),
133
 
            this, SLOT(slotEffect()));
 
132
            this, SLOT(slotPreview()));
134
133
 
135
134
    connect(d->previewWidget, SIGNAL(signalCapturedPointFromOriginal(Digikam::DColor,QPoint)),
136
135
            this, SLOT(slotColorSelectedFromOriginal(Digikam::DColor)));
137
 
 
138
 
    /*
139
 
        connect(d->previewWidget, SIGNAL(spotPositionChangedFromTarget(Digikam::DColor,QPoint)),
140
 
                this, SLOT(slotColorSelectedFromTarget(Digikam::DColor)));
141
 
    */
142
 
 
 
136
/*
 
137
    connect(d->previewWidget, SIGNAL(spotPositionChangedFromTarget(Digikam::DColor,QPoint)),
 
138
            this, SLOT(slotColorSelectedFromTarget(Digikam::DColor)));
 
139
*/
143
140
    slotTimer();
144
141
}
145
142
 
146
143
WhiteBalanceTool::~WhiteBalanceTool()
147
144
{
148
 
    if (d->destinationPreviewData)
149
 
    {
150
 
        delete [] d->destinationPreviewData;
151
 
    }
152
 
 
153
145
    delete d;
154
146
}
155
147
 
189
181
{
190
182
    kapp->activeWindow()->setCursor(Qt::WaitCursor);
191
183
 
192
 
    ImageIface iface(0, 0);
193
 
    DImg* img            = iface.getOriginalImg();
 
184
    ImageIface iface;
 
185
    DImg* img            = iface.original();
194
186
    WBContainer settings = d->settingsView->settings();
195
187
    WBFilter::autoExposureAdjustement(img, settings.black, settings.exposition);
196
188
    d->settingsView->setSettings(settings);
199
191
    slotTimer();
200
192
}
201
193
 
202
 
void WhiteBalanceTool::prepareEffect()
 
194
void WhiteBalanceTool::preparePreview()
203
195
{
204
 
    ImageIface iface(0, 0);
205
 
    DImg* img            = iface.getOriginalImg();
 
196
    ImageIface iface;
 
197
    DImg* img            = iface.original();
206
198
    WBContainer settings = d->settingsView->settings();
207
199
    WBFilter::findChanelsMax(img, settings.maxr, settings.maxg, settings.maxb);
208
200
 
212
204
    setFilter(new WBFilter(&preview, this, settings));
213
205
}
214
206
 
215
 
void WhiteBalanceTool::putPreviewData()
 
207
void WhiteBalanceTool::setPreviewImage()
216
208
{
217
209
    DImg preview = filter()->getTargetImage();
218
210
    d->previewWidget->setPreviewImage(preview);
219
211
 
220
212
    // Update histogram.
221
213
 
222
 
    if (d->destinationPreviewData)
223
 
    {
224
 
        delete [] d->destinationPreviewData;
225
 
    }
226
 
 
227
 
    d->destinationPreviewData = preview.copyBits();
228
 
    d->gboxSettings->histogramBox()->histogram()->updateData(d->destinationPreviewData,
229
 
            preview.width(), preview.height(), preview.sixteenBit(),
230
 
            0, 0, 0, false);
 
214
    d->gboxSettings->histogramBox()->histogram()->updateData(preview.copy(), DImg(), false);
231
215
}
232
216
 
233
217
void WhiteBalanceTool::prepareFinal()
234
218
{
235
219
    WBContainer settings = d->settingsView->settings();
236
220
 
237
 
    ImageIface iface(0, 0);
238
 
    setFilter(new WBFilter(iface.getOriginalImg(), this, settings));
 
221
    ImageIface iface;
 
222
    setFilter(new WBFilter(iface.original(), this, settings));
239
223
}
240
224
 
241
 
void WhiteBalanceTool::putFinalData()
 
225
void WhiteBalanceTool::setFinalImage()
242
226
{
243
 
    ImageIface iface(0, 0);
244
 
    iface.putOriginalImage(i18n("White Balance"), filter()->filterAction(), filter()->getTargetImage().bits());
 
227
    ImageIface iface;
 
228
    iface.setOriginal(i18n("White Balance"), filter()->filterAction(), filter()->getTargetImage());
245
229
}
246
230
 
247
231
void WhiteBalanceTool::slotResetSettings()
250
234
    d->gboxSettings->histogramBox()->setChannel(LuminosityChannel);
251
235
    d->gboxSettings->histogramBox()->histogram()->reset();
252
236
 
253
 
    slotEffect();
 
237
    slotPreview();
254
238
}
255
239
 
256
240
void WhiteBalanceTool::readSettings()
283
267
{
284
268
    d->settingsView->loadSettings();
285
269
    d->gboxSettings->histogramBox()->histogram()->reset();
286
 
    slotEffect();
 
270
    slotPreview();
287
271
}
288
272
 
289
273
void WhiteBalanceTool::slotSaveAsSettings()