SVN commit 1202552 by rempt: Fix usage of histograms in brightness/contrast filter Patch by William Steidtmann CCMAIL:billstei@hbci.com M +0 -15 image/kis_histogram.cc M +0 -4 image/kis_histogram.h M +3 -1 image/tests/kis_histogram_test.cpp M +2 -1 plugins/extensions/dockers/defaultdockers/histogramdock.cpp M +1 -1 plugins/extensions/scripting/kritacore/krs_histogram.cpp M +1 -1 plugins/filters/colorsfilters/colorsfilters.cpp M +3 -4 plugins/filters/colorsfilters/kis_brightness_contrast_filter.cpp M +1 -1 plugins/filters/colorsfilters/kis_brightness_contrast_filter.h M +1 -1 plugins/filters/colorsfilters/kis_perchannel_filter.cpp --- trunk/koffice/krita/image/kis_histogram.cc #1202551:1202552 @@ -43,22 +43,7 @@ updateHistogram(); } -// TODO: get rid of this, make all Histogram clients pass bounds (they can pass paintdev->exactBounds() if they want) KisHistogram::KisHistogram(const KisPaintDeviceSP paintdev, - KoHistogramProducerSP producer, - const enumHistogramType type) -{ - m_paintDevice = paintdev; - m_bounds = m_paintDevice->exactBounds(); - m_type = type; - m_producer = producer; - m_selection = false; - m_channel = 0; - - updateHistogram(); -} - -KisHistogram::KisHistogram(const KisPaintDeviceSP paintdev, const QRect &bounds, KoHistogramProducerSP producer, const enumHistogramType type) --- trunk/koffice/krita/image/kis_histogram.h #1202551:1202552 @@ -109,10 +109,6 @@ const enumHistogramType type); KisHistogram(KisPaintDeviceSP paintdev, - KoHistogramProducerSP producer, - const enumHistogramType type); - - KisHistogram(KisPaintDeviceSP paintdev, const QRect &bounds, KoHistogramProducerSP producer, const enumHistogramType type); --- trunk/koffice/krita/image/tests/kis_histogram_test.cpp #1202551:1202552 @@ -24,6 +24,8 @@ #include #include "kis_paint_device.h" #include "kis_histogram.h" +#include "kis_paint_layer.h" +#include "kis_types.h" void KisHistogramTest::testCreation() { @@ -32,7 +34,7 @@ QList producers = KoHistogramProducerFactoryRegistry::instance()->keysCompatibleWith(cs); foreach (const QString &id, producers) { KoHistogramProducerSP producer = KoHistogramProducerFactoryRegistry::instance()->get(id)->generate(); - KisHistogram test(dev, producer, LINEAR); + KisHistogram test(dev, QRect(0, 0, 100, 100), producer, LINEAR); } } --- trunk/koffice/krita/plugins/extensions/dockers/defaultdockers/histogramdock.cpp #1202551:1202552 @@ -172,7 +172,8 @@ // use dummy layer as a source; we are not going to actually use or need it // All of these are SP, no need to delete them afterwards - m_histogram = new KisHistogram(new KisPaintDevice(KoColorSpaceRegistry::instance()->alpha8()), + KisPaintDeviceSP paintDevice = new KisPaintDevice(KoColorSpaceRegistry::instance()->alpha8()); + m_histogram = new KisHistogram(paintDevice, paintDevice->exactBounds(), KoHistogramProducerSP(m_producer), LOGARITHMIC); kDebug() << "created histogram " << m_histogram; --- trunk/koffice/krita/plugins/extensions/scripting/kritacore/krs_histogram.cpp #1202551:1202552 @@ -38,7 +38,7 @@ : QObject(layer) { setObjectName("KritaHistogram"); - m_histogram = new KisHistogram(layer->paintDevice(), producer, type); + m_histogram = new KisHistogram(layer->paintDevice(), layer->paintDevice()->exactBounds(), producer, type); } Histogram::~Histogram() --- trunk/koffice/krita/plugins/filters/colorsfilters/colorsfilters.cpp #1202551:1202552 @@ -116,7 +116,7 @@ Q_UNUSED(config); // initialize KoHistogramProducerSP producer = KoHistogramProducerSP(new KoGenericLabHistogramProducer()); - KisHistogram histogram(src, producer, LINEAR); + KisHistogram histogram(src, src->exactBounds(), producer, LINEAR); int minvalue = int(255 * histogram.calculations().getMin() + 0.5); int maxvalue = int(255 * histogram.calculations().getMax() + 0.5); --- trunk/koffice/krita/plugins/filters/colorsfilters/kis_brightness_contrast_filter.cpp #1202551:1202552 @@ -152,8 +152,7 @@ KisConfigWidget * KisBrightnessContrastFilter::createConfigurationWidget(QWidget *parent, const KisPaintDeviceSP dev, const KisImageWSP image) const { - Q_UNUSED(image); - return new KisBrightnessContrastConfigWidget(parent, dev); + return new KisBrightnessContrastConfigWidget(parent, dev, image->bounds()); } KisFilterConfiguration* KisBrightnessContrastFilter::factoryConfiguration(const KisPaintDeviceSP) @@ -177,7 +176,7 @@ return adjustment; } -KisBrightnessContrastConfigWidget::KisBrightnessContrastConfigWidget(QWidget * parent, KisPaintDeviceSP dev, Qt::WFlags f) +KisBrightnessContrastConfigWidget::KisBrightnessContrastConfigWidget(QWidget * parent, KisPaintDeviceSP dev, const QRect &bounds, Qt::WFlags f) : KisConfigWidget(parent, f) { int i; @@ -219,7 +218,7 @@ m_page->vgradient->setPixmap(vgradientpix); KoHistogramProducerSP producer = KoHistogramProducerSP(new KoGenericLabHistogramProducer()); - KisHistogram histogram(dev, producer, LINEAR); + KisHistogram histogram(dev, bounds, producer, LINEAR); QPixmap pix(256, height); pix.fill(); QPainter p(&pix); --- trunk/koffice/krita/plugins/filters/colorsfilters/kis_brightness_contrast_filter.h #1202551:1202552 @@ -98,7 +98,7 @@ { public: - KisBrightnessContrastConfigWidget(QWidget * parent, KisPaintDeviceSP dev, Qt::WFlags f = 0); + KisBrightnessContrastConfigWidget(QWidget * parent, KisPaintDeviceSP dev, const QRect &bounds, Qt::WFlags f = 0); virtual ~KisBrightnessContrastConfigWidget() {} virtual KisBrightnessContrastFilterConfiguration * configuration() const; --- trunk/koffice/krita/plugins/filters/colorsfilters/kis_perchannel_filter.cpp #1202551:1202552 @@ -87,7 +87,7 @@ { KoHistogramProducerFactory *hpf; hpf = KoHistogramProducerFactoryRegistry::instance()->get(keys.at(0)); - m_histogram = new KisHistogram(m_dev, hpf->generate(), LINEAR); + m_histogram = new KisHistogram(m_dev, m_dev->exactBounds(), hpf->generate(), LINEAR); } connect(m_page->curveWidget, SIGNAL(modified()), this, SIGNAL(sigConfigurationItemChanged()));