Git commit 5f28bbb8fcf32a3f2914414928c3c0493667d4cd by Gilles Caulier. Committed on 01/03/2012 at 00:11. Pushed by cgilles into branch 'master'. apply patch #69196 to compile fine under Solaris BUGS: 295104 M +9 -5 libs/dimg/filters/fx/blurfilter.cpp M +12 -7 libs/dimg/filters/fx/blurfilter.h http://commits.kde.org/digikam/5f28bbb8fcf32a3f2914414928c3c0493667d4cd diff --git a/libs/dimg/filters/fx/blurfilter.cpp b/libs/dimg/filters/fx/blu= rfilter.cpp index 653845b..9a1e691 100644 --- a/libs/dimg/filters/fx/blurfilter.cpp +++ b/libs/dimg/filters/fx/blurfilter.cpp @@ -6,7 +6,7 @@ * Date : 2005-17-07 * Description : A Gaussian Blur threaded image filter. * - * Copyright (C) 2005-2010 by Gilles Caulier + * Copyright (C) 2005-2012 by Gilles Caulier * Copyright (C) 2009 by Andi Clemens * Copyright (C) 2010 by Martin Klapetek * @@ -34,6 +34,10 @@ = #include "CImg.h" = +// Qt includes + +#include + // KDE includes = #include @@ -43,20 +47,20 @@ using namespace cimg_library; namespace Digikam { = -BlurFilter::BlurFilter(QObject* parent) +BlurFilter::BlurFilter(QObject* const parent) : DImgThreadedFilter(parent) { initFilter(); } = -BlurFilter::BlurFilter(DImg* orgImage, QObject* parent, int radius) +BlurFilter::BlurFilter(DImg* const orgImage, QObject* const parent, int ra= dius) : DImgThreadedFilter(orgImage, parent, "GaussianBlur") { m_radius =3D radius; initFilter(); } = -BlurFilter::BlurFilter(DImgThreadedFilter* parentFilter, +BlurFilter::BlurFilter(DImgThreadedFilter* const parentFilter, const DImg& orgImage, const DImg& destImage, int progressBegin, int progressEnd, int radius) : DImgThreadedFilter(parentFilter, orgImage, destImage, progressBegin,= progressEnd, @@ -210,7 +214,7 @@ void BlurFilter::gaussianBlurImage(uchar* data, int wid= th, int height, bool sixt = for (i =3D 0; runningFlag() && (i < nKSize); ++i) { - x =3D sqrt((i - nCenter) * (i - nCenter)); + x =3D qSqrt((i - nCenter) * (i - nCenter)); Kernel[i] =3D (int)(factor * exp(-0.5 * pow((x / sd), 2)) / (sd * = sqrt(2.0 * M_PI))); } = diff --git a/libs/dimg/filters/fx/blurfilter.h b/libs/dimg/filters/fx/blurf= ilter.h index 7fede4a..d3cd9bf 100644 --- a/libs/dimg/filters/fx/blurfilter.h +++ b/libs/dimg/filters/fx/blurfilter.h @@ -6,7 +6,7 @@ * Date : 2005-17-07 * Description : A Gaussian Blur threaded image filter. * - * Copyright (C) 2005-2010 by Gilles Caulier + * Copyright (C) 2005-2012 by Gilles Caulier * Copyright (C) 2009 by Andi Clemens * Copyright (C) 2010 by Martin Klapetek * @@ -40,11 +40,11 @@ class DIGIKAM_EXPORT BlurFilter : public DImgThreadedFi= lter = public: = - explicit BlurFilter(QObject* parent =3D 0); - explicit BlurFilter(DImg* orgImage, QObject* parent=3D0, int radius=3D= 3); + explicit BlurFilter(QObject* const parent =3D 0); + explicit BlurFilter(DImg* const orgImage, QObject* const parent=3D0, i= nt radius=3D3); = // Constructor for slave mode: execute immediately in current thread w= ith specified master filter - explicit BlurFilter(DImgThreadedFilter* parentFilter, const DImg& orgI= mage, const DImg& destImage, + explicit BlurFilter(DImgThreadedFilter* const parentFilter, const DImg= & orgImage, const DImg& destImage, int progressBegin=3D0, int progressEnd=3D100, int = radius=3D3); = ~BlurFilter(); @@ -53,14 +53,17 @@ public: { return "digikam:BlurFilter"; } + static QString DisplayableName() { return I18N_NOOP("Blur Filter"); } + static QList SupportedVersions() { return QList() << 1; } + static int CurrentVersion() { return 1; @@ -70,7 +73,9 @@ public: { return FilterIdentifier(); } + virtual FilterAction filterAction(); + void readParameters(const FilterAction& action); = private: @@ -80,7 +85,7 @@ private: void gaussianBlurImage(uchar* data, int width, int height, bool sixtee= nBit, int radius); = // function to allocate a 2d array - int** Alloc2DArray (int Columns, int Rows) + int** Alloc2DArray(int Columns, int Rows) { // First, we declare our future 2d array to be returned int** lpcArray =3D 0L; @@ -97,7 +102,7 @@ private: }; = // Function to deallocates the 2d array previously created - void Free2DArray (int** lpcArray, int Columns) + void Free2DArray(int** lpcArray, int Columns) { // loop to deallocate the columns for (int i =3D 0; i < Columns; ++i) @@ -109,7 +114,7 @@ private: delete [] lpcArray; }; = - inline bool IsInside (int Width, int Height, int X, int Y) + inline bool IsInside(int Width, int Height, int X, int Y) { bool bIsWOk =3D ((X < 0) ? false : (X >=3D Width ) ? false : true); bool bIsHOk =3D ((Y < 0) ? false : (Y >=3D Height) ? false : true);