Hello community, here is the log from the commit of package libkdcraw for openSUSE:Factory checked in at 2015-01-08 23:18:25 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libkdcraw (Old) and /work/SRC/openSUSE:Factory/.libkdcraw.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libkdcraw" Changes: -------- --- /work/SRC/openSUSE:Factory/libkdcraw/libkdcraw.changes 2014-11-19 20:28:31.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.libkdcraw.new/libkdcraw.changes 2015-01-08 23:18:59.000000000 +0100 @@ -1,0 +2,7 @@ +Wed Dec 17 20:41:11 UTC 2014 - [email protected] + +- Update to KDE Applications 14.12.0 + * KDE Applications 14.12.0 + * See https://www.kde.org/announcements/announce-applications-14.12.0.php + +------------------------------------------------------------------- Old: ---- libkdcraw-4.14.3.tar.xz New: ---- libkdcraw-14.12.0.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libkdcraw.spec ++++++ --- /var/tmp/diff_new_pack.aCrywR/_old 2015-01-08 23:19:00.000000000 +0100 +++ /var/tmp/diff_new_pack.aCrywR/_new 2015-01-08 23:19:00.000000000 +0100 @@ -19,7 +19,7 @@ %define _so 23 Name: libkdcraw -Version: 4.14.3 +Version: 14.12.0 Release: 0 Summary: Shared library interface around dcraw License: LGPL-2.0+ and GPL-2.0+ and GPL-3.0+ ++++++ libkdcraw-4.14.3.tar.xz -> libkdcraw-14.12.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkdcraw-4.14.3/.krazy new/libkdcraw-14.12.0/.krazy --- old/libkdcraw-4.14.3/.krazy 2014-07-06 09:20:12.000000000 +0200 +++ new/libkdcraw-14.12.0/.krazy 2014-10-30 23:07:13.000000000 +0100 @@ -1,2 +1 @@ -SKIP /libraw/ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkdcraw-4.14.3/CMakeLists.txt new/libkdcraw-14.12.0/CMakeLists.txt --- old/libkdcraw-4.14.3/CMakeLists.txt 2014-07-06 09:20:12.000000000 +0200 +++ new/libkdcraw-14.12.0/CMakeLists.txt 2014-10-30 23:07:13.000000000 +0100 @@ -40,12 +40,11 @@ FIND_PACKAGE(LibRaw 0.15) SET_PACKAGE_PROPERTIES(LibRaw PROPERTIES DESCRIPTION "library that provides image Raw file demosaicing" URL "http://www.libraw.org" TYPE REQUIRED PURPOSE "Required to build libkdcraw") IF(NOT LIBRAW_FOUND) - FEATURE_SUMMARY( - WHAT ALL - INCLUDE_QUIET_PACKAGES - FATAL_ON_MISSING_REQUIRED_PACKAGES - ) - RETURN() + FEATURE_SUMMARY(WHAT ALL + INCLUDE_QUIET_PACKAGES + FATAL_ON_MISSING_REQUIRED_PACKAGES + ) + RETURN() ENDIF() # Check LibRaw config header. @@ -140,13 +139,12 @@ ENDIF(KDE4_BUILD_TESTS) IF(NOT WIN32) - CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libkdcraw.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/libkdcraw.pc) - CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libkdcraw.lsm.cmake ${CMAKE_CURRENT_BINARY_DIR}/libkdcraw.lsm) + CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/cmake/templates/libkdcraw.pc.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/libkdcraw.pc) + CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/cmake/templates/libkdcraw.lsm.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/libkdcraw.lsm) INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/libkdcraw.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig) ENDIF(NOT WIN32) -FEATURE_SUMMARY( - WHAT ALL - INCLUDE_QUIET_PACKAGES - FATAL_ON_MISSING_REQUIRED_PACKAGES -) +FEATURE_SUMMARY(WHAT ALL + INCLUDE_QUIET_PACKAGES + FATAL_ON_MISSING_REQUIRED_PACKAGES + ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkdcraw-4.14.3/cmake/modules/FindKdcraw.cmake new/libkdcraw-14.12.0/cmake/modules/FindKdcraw.cmake --- old/libkdcraw-4.14.3/cmake/modules/FindKdcraw.cmake 2014-07-06 09:20:12.000000000 +0200 +++ new/libkdcraw-14.12.0/cmake/modules/FindKdcraw.cmake 2014-10-30 23:07:13.000000000 +0100 @@ -14,8 +14,8 @@ # KDCRAW_DEFINITIONS - Compiler switches required for using libkdcraw # KDCRAW_VERSION - Version of libkdcraw which was found # -# Copyright (c) 2008-2011, Gilles Caulier, <[email protected]> -# Copyright (c) 2011, Michael G. Hansen, <[email protected]> +# Copyright (c) 2008-2014, Gilles Caulier, <[email protected]> +# Copyright (c) 2011, Michael G. Hansen, <[email protected]> # # Redistribution and use is allowed according to the terms of the BSD license. # For details see the accompanying COPYING-CMAKE-SCRIPTS file. @@ -39,16 +39,16 @@ # Check for a local version of the library. if (KDCRAW_LOCAL_DIR) - find_file(KDCRAW_LOCAL_FOUND libkdcraw/version.h.cmake ${CMAKE_SOURCE_DIR}/${KDCRAW_LOCAL_DIR} NO_DEFAULT_PATH) + find_file(KDCRAW_LOCAL_FOUND libkdcraw/libkdcraw_export.h ${CMAKE_SOURCE_DIR}/${KDCRAW_LOCAL_DIR} NO_DEFAULT_PATH) if (NOT KDCRAW_LOCAL_FOUND) message(WARNING "KDCRAW_LOCAL_DIR specified as \"${KDCRAW_LOCAL_DIR}\" but libkdcraw could not be found there.") endif (NOT KDCRAW_LOCAL_FOUND) else (KDCRAW_LOCAL_DIR) - find_file(KDCRAW_LOCAL_FOUND libkdcraw/version.h.cmake ${CMAKE_SOURCE_DIR}/libkdcraw NO_DEFAULT_PATH) + find_file(KDCRAW_LOCAL_FOUND libkdcraw/libkdcraw_export.h ${CMAKE_SOURCE_DIR}/libkdcraw NO_DEFAULT_PATH) if (KDCRAW_LOCAL_FOUND) set(KDCRAW_LOCAL_DIR libkdcraw) endif (KDCRAW_LOCAL_FOUND) - find_file(KDCRAW_LOCAL_FOUND libkdcraw/version.h.cmake ${CMAKE_SOURCE_DIR}/libs/libkdcraw NO_DEFAULT_PATH) + find_file(KDCRAW_LOCAL_FOUND libkdcraw/libkdcraw_export.h ${CMAKE_SOURCE_DIR}/libs/libkdcraw NO_DEFAULT_PATH) if (KDCRAW_LOCAL_FOUND) set(KDCRAW_LOCAL_DIR libs/libkdcraw) endif (KDCRAW_LOCAL_FOUND) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkdcraw-4.14.3/cmake/templates/libkdcraw.lsm.cmake.in new/libkdcraw-14.12.0/cmake/templates/libkdcraw.lsm.cmake.in --- old/libkdcraw-4.14.3/cmake/templates/libkdcraw.lsm.cmake.in 1970-01-01 01:00:00.000000000 +0100 +++ new/libkdcraw-14.12.0/cmake/templates/libkdcraw.lsm.cmake.in 2014-10-30 23:07:13.000000000 +0100 @@ -0,0 +1,14 @@ +Begin4 +Title: libkdcraw +Version: ${DCRAW_LIB_VERSION_STRING} +Entered-date: 2007-05-05 +Description: A C++ wrapper around LibRaw library to decode RAW pictures. This library is used by digiKam and kipi-plugins. +Keywords: kde image raw decode libraw digikam kipi-plugins +Author: caulier dot gilles at gmail dot com (Gilles Caulier) + marcel dot wiesweg at gmx dot de (Marcel Wiesweg) +Maintained-by: +Primary-site: http://www.digikam.org/sharedlibs +Original-site: +Platforms: Linux and other Unices, MacOs-X, Win32. Needs KDE 4.x +Copying-policy: GPL +End diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkdcraw-4.14.3/cmake/templates/libkdcraw.pc.cmake.in new/libkdcraw-14.12.0/cmake/templates/libkdcraw.pc.cmake.in --- old/libkdcraw-4.14.3/cmake/templates/libkdcraw.pc.cmake.in 1970-01-01 01:00:00.000000000 +0100 +++ new/libkdcraw-14.12.0/cmake/templates/libkdcraw.pc.cmake.in 2014-10-30 23:07:13.000000000 +0100 @@ -0,0 +1,12 @@ +prefix=${CMAKE_INSTALL_PREFIX} +exec_prefix=${BIN_INSTALL_DIR} +libdir=${LIB_INSTALL_DIR} +includedir=${INCLUDE_INSTALL_DIR} + +Name: libkdcraw +Description: A C++ wrapper around LibRaw library to decode RAW pictures. This library is used by digiKam and kipi-plugins. +URL: http://www.digikam.org/sharedlibs +Requires: +Version: ${DCRAW_LIB_VERSION_STRING} +Libs: -L${LIB_INSTALL_DIR} -lkdcraw +Cflags: -I${INCLUDE_INSTALL_DIR} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkdcraw-4.14.3/libkdcraw/CMakeLists.txt new/libkdcraw-14.12.0/libkdcraw/CMakeLists.txt --- old/libkdcraw-4.14.3/libkdcraw/CMakeLists.txt 2014-07-06 09:20:12.000000000 +0200 +++ new/libkdcraw-14.12.0/libkdcraw/CMakeLists.txt 2014-10-30 23:07:13.000000000 +0100 @@ -6,7 +6,7 @@ # @date 2006-12-09 # @brief a tread-safe libraw C++ program interface for KDE # -# @author Copyright (C) 2006-2013 by Gilles Caulier +# @author Copyright (C) 2006-2014 by Gilles Caulier # <a href="mailto:caulier dot gilles at gmail dot com">caulier dot gilles at gmail dot com</a> # # This program is free software; you can redistribute it @@ -22,7 +22,7 @@ # # ============================================================ -CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/version.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/version.h) +CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/version.h.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/version.h) SET(kdcraw_LIB_SRCS kdcraw.cpp kdcraw_p.cpp @@ -52,7 +52,7 @@ INSTALL(TARGETS kdcraw ${INSTALL_TARGETS_DEFAULT_ARGS}) # Check if compilation is done through digiKam SC or not. If yes, do not install header files. -IF(NOT DIGIKAMSC_USE_PRIVATE_KDEGRAPHICS) +IF(NOT DIGIKAMSC_USE_PRIVATE_SHAREDLIBS) INSTALL(FILES rawdecodingsettings.h kdcraw.h dcrawsettingswidget.h diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkdcraw-4.14.3/libkdcraw/dcrawinfocontainer.cpp new/libkdcraw-14.12.0/libkdcraw/dcrawinfocontainer.cpp --- old/libkdcraw-4.14.3/libkdcraw/dcrawinfocontainer.cpp 2014-07-06 09:20:12.000000000 +0200 +++ new/libkdcraw-14.12.0/libkdcraw/dcrawinfocontainer.cpp 2014-10-30 23:07:13.000000000 +0100 @@ -66,7 +66,7 @@ { cameraColorMatrix1[x][y] = 0.0; cameraColorMatrix2[x][y] = 0.0; - cameraXYZMatrix[y][x] = 0.0; // NOTE: see B.K.O # 253911 : [y][x] not [x][y] + cameraXYZMatrix[y][x] = 0.0; // NOTE: see bug # 253911 : [y][x] not [x][y] } } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkdcraw-4.14.3/libkdcraw/version.h.cmake new/libkdcraw-14.12.0/libkdcraw/version.h.cmake --- old/libkdcraw-4.14.3/libkdcraw/version.h.cmake 2014-07-06 09:20:12.000000000 +0200 +++ new/libkdcraw-14.12.0/libkdcraw/version.h.cmake 1970-01-01 01:00:00.000000000 +0100 @@ -1,33 +0,0 @@ -/** =========================================================== - * - * This file is a part of digiKam project - * <a href="http://www.digikam.org">http://www.digikam.org</a> - * - * @date 2007-02-12 - * @brief libraw program interface for KDE - * - * @author Copyright (C) 2007-2013 by Gilles Caulier - * <a href="mailto:caulier dot gilles at gmail dot com">caulier dot gilles at gmail dot com</a> - * - * This program is free software; you can redistribute it - * and/or modify it under the terms of the GNU General - * Public License as published by the Free Software Foundation; - * either version 2, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * ============================================================ */ - -#ifndef KDCRAW_VERSION_H -#define KDCRAW_VERSION_H - -// Before changing the line below, make sure that FindKdcraw.cmake can still parse it -static const char kdcraw_version[] = "${DCRAW_LIB_VERSION_STRING}"; - -#define KDCRAW_VERSION ${DCRAW_LIB_VERSION_ID} - -#endif // KDCRAW_VERSION_H diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkdcraw-4.14.3/libkdcraw/version.h.cmake.in new/libkdcraw-14.12.0/libkdcraw/version.h.cmake.in --- old/libkdcraw-4.14.3/libkdcraw/version.h.cmake.in 1970-01-01 01:00:00.000000000 +0100 +++ new/libkdcraw-14.12.0/libkdcraw/version.h.cmake.in 2014-10-30 23:07:13.000000000 +0100 @@ -0,0 +1,33 @@ +/** =========================================================== + * + * This file is a part of digiKam project + * <a href="http://www.digikam.org">http://www.digikam.org</a> + * + * @date 2007-02-12 + * @brief libraw program interface for KDE + * + * @author Copyright (C) 2007-2013 by Gilles Caulier + * <a href="mailto:caulier dot gilles at gmail dot com">caulier dot gilles at gmail dot com</a> + * + * This program is free software; you can redistribute it + * and/or modify it under the terms of the GNU General + * Public License as published by the Free Software Foundation; + * either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * ============================================================ */ + +#ifndef KDCRAW_VERSION_H +#define KDCRAW_VERSION_H + +// Before changing the line below, make sure that FindKdcraw.cmake can still parse it +static const char kdcraw_version[] = "${DCRAW_LIB_VERSION_STRING}"; + +#define KDCRAW_VERSION ${DCRAW_LIB_VERSION_ID} + +#endif // KDCRAW_VERSION_H diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkdcraw-4.14.3/libkdcraw.lsm.cmake new/libkdcraw-14.12.0/libkdcraw.lsm.cmake --- old/libkdcraw-4.14.3/libkdcraw.lsm.cmake 2014-07-06 09:20:12.000000000 +0200 +++ new/libkdcraw-14.12.0/libkdcraw.lsm.cmake 1970-01-01 01:00:00.000000000 +0100 @@ -1,14 +0,0 @@ -Begin4 -Title: libkdcraw -Version: ${DCRAW_LIB_VERSION_STRING} -Entered-date: 2007-05-05 -Description: A C++ wrapper around LibRaw library to decode RAW pictures. This library is used by digiKam and kipi-plugins. -Keywords: kde image raw decode libraw digikam kipi-plugins -Author: caulier dot gilles at gmail dot com (Gilles Caulier) - marcel dot wiesweg at gmx dot de (Marcel Wiesweg) -Maintained-by: -Primary-site: http://www.digikam.org/sharedlibs -Original-site: -Platforms: Linux and other Unices, MacOs-X, Win32. Needs KDE 4.x -Copying-policy: GPL -End diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkdcraw-4.14.3/libkdcraw.pc.cmake new/libkdcraw-14.12.0/libkdcraw.pc.cmake --- old/libkdcraw-4.14.3/libkdcraw.pc.cmake 2014-07-06 09:20:12.000000000 +0200 +++ new/libkdcraw-14.12.0/libkdcraw.pc.cmake 1970-01-01 01:00:00.000000000 +0100 @@ -1,12 +0,0 @@ -prefix=${CMAKE_INSTALL_PREFIX} -exec_prefix=${BIN_INSTALL_DIR} -libdir=${LIB_INSTALL_DIR} -includedir=${INCLUDE_INSTALL_DIR} - -Name: libkdcraw -Description: A C++ wrapper around LibRaw library to decode RAW pictures. This library is used by digiKam and kipi-plugins. -URL: http://www.digikam.org/sharedlibs -Requires: -Version: ${DCRAW_LIB_VERSION_STRING} -Libs: -L${LIB_INSTALL_DIR} -lkdcraw -Cflags: -I${INCLUDE_INSTALL_DIR} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkdcraw-4.14.3/tests/CMakeLists.txt new/libkdcraw-14.12.0/tests/CMakeLists.txt --- old/libkdcraw-4.14.3/tests/CMakeLists.txt 2014-07-06 09:20:12.000000000 +0200 +++ new/libkdcraw-14.12.0/tests/CMakeLists.txt 2014-10-30 23:07:13.000000000 +0100 @@ -6,7 +6,7 @@ # @date 2006-12-09 # @brief a tread-safe libraw C++ program interface for KDE # -# @author Copyright (C) 2006-2013 by Gilles Caulier +# @author Copyright (C) 2006-2014 by Gilles Caulier # <a href="mailto:caulier dot gilles at gmail dot com">caulier dot gilles at gmail dot com</a> # # This program is free software; you can redistribute it @@ -24,6 +24,8 @@ INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../libkdcraw) +ADD_SUBDIRECTORY(multithreading) + SET(raw2png_SRCS raw2png.cpp) ADD_EXECUTABLE(raw2png ${raw2png_SRCS}) TARGET_LINK_LIBRARIES(raw2png kdcraw ${QT_QTCORE_LIBRARY} ${QT_QTGUI_LIBRARY}) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkdcraw-4.14.3/tests/multithreading/CMakeLists.txt new/libkdcraw-14.12.0/tests/multithreading/CMakeLists.txt --- old/libkdcraw-4.14.3/tests/multithreading/CMakeLists.txt 1970-01-01 01:00:00.000000000 +0100 +++ new/libkdcraw-14.12.0/tests/multithreading/CMakeLists.txt 2014-10-30 23:07:13.000000000 +0100 @@ -0,0 +1,46 @@ +# =========================================================== +# +# This file is a part of digiKam project +# <a href="http://www.digikam.org">http://www.digikam.org</a> +# +# @date 2014-10-17 +# @brief threadweaver api test application +# +# @author Copyright (C) 2014 by Gilles Caulier +# <a href="mailto:caulier dot gilles at gmail dot com">caulier dot gilles at gmail dot com</a> +# +# This program is free software; you can redistribute it +# and/or modify it under the terms of the GNU General +# Public License as published by the Free Software Foundation; +# either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# ============================================================ + +INCLUDE_DIRECTORIES(${KDE4_INCLUDES} + ${QT_INCLUDE_DIR} + ${QT_QTCORE_INCLUDE_DIR} + ${CMAKE_CURRENT_SOURCE_DIR}/../../libkdcraw +) + +SET(multicorerawtopng_SRCS + main.cpp + processordlg.cpp + actionthread.cpp +) + +KDE4_ADD_EXECUTABLE(multicorerawtopng ${multicorerawtopng_SRCS}) + +TARGET_LINK_LIBRARIES(multicorerawtopng + ${QT_QTGUI_LIBRARY} + ${QT_QTCORE_LIBRARY} + ${KDE4_KDEUI_LIBS} + ${KDE4_KIO_LIBS} + ${KDE4_THREADWEAVER_LIBRARIES} + kdcraw +) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkdcraw-4.14.3/tests/multithreading/actionthread.cpp new/libkdcraw-14.12.0/tests/multithreading/actionthread.cpp --- old/libkdcraw-4.14.3/tests/multithreading/actionthread.cpp 1970-01-01 01:00:00.000000000 +0100 +++ new/libkdcraw-14.12.0/tests/multithreading/actionthread.cpp 2014-10-30 23:07:13.000000000 +0100 @@ -0,0 +1,146 @@ +/** =========================================================== + * + * This file is a part of digiKam project + * <a href="http://www.digikam.org">http://www.digikam.org</a> + * + * Date : 2014-10-17 + * Description : a class to manage Raw to Png conversion using threads + * + * Copyright (C) 2014 by Gilles Caulier + * <a href="mailto:caulier dot gilles at gmail dot com">caulier dot gilles at gmail dot com</a> + * + * This program is free software; you can redistribute it + * and/or modify it under the terms of the GNU General + * Public License as published by the Free Software Foundation; + * either version 2, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * ============================================================ */ + +#include "actionthread.moc" + +// Qt includes + +#include <QMutexLocker> +#include <QMutex> +#include <QWaitCondition> +#include <QFileInfo> +#include <QImage> + +// KDE includes + +#include <kdebug.h> +#include <threadweaver/ThreadWeaver.h> +#include <threadweaver/JobCollection.h> + +// Local includes + +#include "kdcraw.h" +#include "rawdecodingsettings.h" + +using namespace ThreadWeaver; + +class ActionThread::Task : public Job +{ +public: + + Task(QObject* const parent = 0) + :Job(parent) + { + } + + QString errString; + KUrl fileUrl; + +protected: + + void run() + { + // RAW to PNG + QImage image; + KDcraw rawProcessor; + RawDecodingSettings settings; + settings.halfSizeColorImage = false; + settings.sixteenBitsImage = false; + settings.RGBInterpolate4Colors = false; + settings.RAWQuality = RawDecodingSettings::BILINEAR; + + QFileInfo input(fileUrl.toLocalFile()); + QString fullFilePath(input.baseName() + QString(".full.png")); + QFileInfo fullOutput(fullFilePath); + + if (!rawProcessor.loadFullImage(image, fileUrl.toLocalFile(), settings)) + { + errString = "raw2png: Loading full RAW image failed. Aborted..."; + return; + } + + qDebug() << "raw2png: Saving full RAW image to " + << fullOutput.fileName() << " size (" + << image.width() << "x" << image.height() + << ")"; + image.save(fullFilePath, "PNG"); + + } +}; + +// ---------------------------------------------------------------------------------------------------- + +ActionThread::ActionThread(QObject* const parent) + : RActionThreadBase(parent) +{ +} + +ActionThread::~ActionThread() +{ +} + +void ActionThread::convertRAWtoPNG(const KUrl::List& list) +{ + JobCollection* const collection = new JobCollection(); + + for (KUrl::List::const_iterator it = list.constBegin(); it != list.constEnd(); ++it ) + { + Task* const t = new Task(this); + t->fileUrl = *it; + + connect(t, SIGNAL(started(ThreadWeaver::Job*)), + this, SLOT(slotJobStarted(ThreadWeaver::Job*))); + + connect(t, SIGNAL(done(ThreadWeaver::Job*)), + this, SLOT(slotJobDone(ThreadWeaver::Job*))); + + collection->addJob(t); + } + + appendJob(collection); +} + +void ActionThread::slotJobDone(ThreadWeaver::Job* job) +{ + Task* const task = static_cast<Task*>(job); + + if (task->errString.isEmpty()) + { + kDebug() << "Job done:" << task->fileUrl.toLocalFile(); + emit finished(task->fileUrl); + } + else + { + kDebug() << "Could not complete the job: " << task->fileUrl.toLocalFile() << " Error: " << task->errString; + emit failed(task->fileUrl, task->errString); + } + + delete job; +} + +void ActionThread::slotJobStarted(ThreadWeaver::Job* job) +{ + Task* const task = static_cast<Task*>(job); + kDebug() << "Job Started:" << task->fileUrl.toLocalFile(); + emit starting(task->fileUrl); +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkdcraw-4.14.3/tests/multithreading/actionthread.h new/libkdcraw-14.12.0/tests/multithreading/actionthread.h --- old/libkdcraw-4.14.3/tests/multithreading/actionthread.h 1970-01-01 01:00:00.000000000 +0100 +++ new/libkdcraw-14.12.0/tests/multithreading/actionthread.h 2014-10-30 23:07:13.000000000 +0100 @@ -0,0 +1,73 @@ +/** =========================================================== + * + * This file is a part of digiKam project + * <a href="http://www.digikam.org">http://www.digikam.org</a> + * + * Date : 2014-10-17 + * Description : a class to manage Raw to Png conversion using threads + * + * Copyright (C) 2014 by Gilles Caulier + * <a href="mailto:caulier dot gilles at gmail dot com">caulier dot gilles at gmail dot com</a> + * + * This program is free software; you can redistribute it + * and/or modify it under the terms of the GNU General + * Public License as published by the Free Software Foundation; + * either version 2, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * ============================================================ */ + +#ifndef ACTIONTHREAD_H +#define ACTIONTHREAD_H + +// Qt includes + +#include <QThread> + +// KDE includes + +#include <kurl.h> + +// Libkdcraw includes + +#include "ractionthreadbase.h" + +namespace ThreadWeaver +{ + class Job; +} + +using namespace KDcrawIface; + +class ActionThread : public RActionThreadBase +{ + Q_OBJECT + +public: + + ActionThread(QObject* const parent); + ~ActionThread(); + + void convertRAWtoPNG(const KUrl::List& list); + +Q_SIGNALS: + + void starting(const KUrl& url); + void finished(const KUrl& url); + void failed(const KUrl& url, const QString& err); + +private Q_SLOTS: + + void slotJobDone(ThreadWeaver::Job*); + void slotJobStarted(ThreadWeaver::Job*); + +private: + + class Task; +}; + +#endif /* ACTIONTHREAD_H */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkdcraw-4.14.3/tests/multithreading/main.cpp new/libkdcraw-14.12.0/tests/multithreading/main.cpp --- old/libkdcraw-4.14.3/tests/multithreading/main.cpp 1970-01-01 01:00:00.000000000 +0100 +++ new/libkdcraw-14.12.0/tests/multithreading/main.cpp 2014-10-30 23:07:13.000000000 +0100 @@ -0,0 +1,57 @@ +/** =========================================================== + * + * This file is a part of digiKam project + * <a href="http://www.digikam.org">http://www.digikam.org</a> + * + * Date : 2011-12-28 + * Description : test for implementation of threadWeaver api + * + * Copyright (C) 2014 by Gilles Caulier + * <a href="mailto:caulier dot gilles at gmail dot com">caulier dot gilles at gmail dot com</a> + * + * This program is free software; you can redistribute it + * and/or modify it under the terms of the GNU General + * Public License as published by the Free Software Foundation; + * either version 2, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * ============================================================ */ + +// Qt includes + +#include <QApplication> +#include <QDebug> + +// KDE includes + +#include <kurl.h> + +// Local includes + +#include "processordlg.h" + +int main(int argc, char* argv[]) +{ + if (argc <= 1) + { + qDebug() << "multicoreraw2png - RAW Camera Image to PNG Converter using multi-core CPU"; + qDebug() << "Usage: multicoreraw2png <rawfile> <rawfile> <rawfile> ... <rawfile>"; + return -1; + } + + QApplication app(argc, argv); + + KUrl::List list; + + for (int i = 0 ; i < argc ; i++) + list.append(KUrl(argv[i])); + + ProcessorDlg* const dlg = new ProcessorDlg(list); + dlg->show(); + app.exec(); + return 0; +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkdcraw-4.14.3/tests/multithreading/processordlg.cpp new/libkdcraw-14.12.0/tests/multithreading/processordlg.cpp --- old/libkdcraw-4.14.3/tests/multithreading/processordlg.cpp 1970-01-01 01:00:00.000000000 +0100 +++ new/libkdcraw-14.12.0/tests/multithreading/processordlg.cpp 2014-10-30 23:07:13.000000000 +0100 @@ -0,0 +1,199 @@ +/** =========================================================== + * + * This file is a part of digiKam project + * <a href="http://www.digikam.org">http://www.digikam.org</a> + * + * Date : 2014-10-17 + * Description : test for implementation of threadWeaver api + * + * Copyright (C) 2014 by Gilles Caulier + * <a href="mailto:caulier dot gilles at gmail dot com">caulier dot gilles at gmail dot com</a> + * + * This program is free software; you can redistribute it + * and/or modify it under the terms of the GNU General + * Public License as published by the Free Software Foundation; + * either version 2, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * ============================================================ */ + +#include "processordlg.moc" + +// Qt includes + +#include <QList> +#include <QVBoxLayout> +#include <QLabel> +#include <QProgressBar> +#include <QThreadPool> +#include <QFileInfo> + +// KDE includes + +#include <klocale.h> +#include <kdebug.h> +#include <kapplication.h> +#include <kpushbutton.h> + +// Local includes + +#include "actionthread.h" + +class ProcessorDlg::Private +{ +public: + + Private() + { + count = 0; + page = 0; + items = 0; + vlay = 0; + thread = 0; + } + + int count; + + QWidget* page; + QLabel* items; + QVBoxLayout* vlay; + + KUrl::List list; + + ActionThread* thread; +}; + +ProcessorDlg::ProcessorDlg(const KUrl::List& list) + : KDialog(0), d(new Private) +{ + setButtons(Apply | Close); + setButtonText(Apply, i18n("Start")); + setDefaultButton(Close); + setModal(false); + setCaption(i18n("Convert RAW files To PNG")); + + d->list = list; + d->count = d->list.count()-1; + d->page = new QWidget(this); + setMainWidget(d->page); + + d->vlay = new QVBoxLayout(d->page); + QLabel* const pid = new QLabel(i18n("PID : %1", kapp->applicationPid()), this); + QLabel* const core = new QLabel(i18n("Core : %1", QThreadPool::globalInstance()->maxThreadCount()), this); + d->items = new QLabel(this); + d->vlay->addWidget(pid); + d->vlay->addWidget(core); + d->vlay->addWidget(d->items); + d->vlay->addStretch(); + + for (int i = 1; i < d->count ; i++) + { + QProgressBar* const bar = new QProgressBar(this); + QString file = d->list[i].toLocalFile(); + bar->setMaximum(100); + bar->setMinimum(0); + bar->setValue(100); + bar->setObjectName(file); + QFileInfo fi(file); + bar->setFormat(fi.baseName()); + d->vlay->addWidget(bar); + } + + d->thread = new ActionThread(this); + + connect(this, SIGNAL(applyClicked()), + this, SLOT(slotStart())); + + connect(d->thread, SIGNAL(starting(KUrl)), + this, SLOT(slotStarting(KUrl))); + + connect(d->thread, SIGNAL(finished(KUrl)), + this, SLOT(slotFinished(KUrl))); + + connect(d->thread, SIGNAL(failed(KUrl,QString)), + this, SLOT(slotFailed(KUrl,QString))); + + updateCount(); + resize(500, 400); +} + +ProcessorDlg::~ProcessorDlg() +{ + delete d; +} + +void ProcessorDlg::updateCount() +{ + d->items->setText(i18n("Files to process : %1", d->count)); +} + +void ProcessorDlg::slotStart() +{ + if (d->list.isEmpty()) return; + + button(Apply)->setDisabled(true); + + d->thread->convertRAWtoPNG(d->list); + d->thread->start(); +} + +QProgressBar* ProcessorDlg::findProgressBar(const KUrl& url) const +{ + QList<QProgressBar*> bars = findChildren<QProgressBar*>(); + + foreach(QProgressBar* const b, bars) + { + if (b->objectName() == url.toLocalFile()) + { + return b; + } + } + + return 0; +} + +void ProcessorDlg::slotStarting(const KUrl& url) +{ + QProgressBar* const b = findProgressBar(url); + + if (b) + { + b->setMaximum(0); + b->setMinimum(0); + b->setValue(0); + } +} + +void ProcessorDlg::slotFinished(const KUrl& url) +{ + QProgressBar* const b = findProgressBar(url); + + if (b) + { + b->setMaximum(100); + b->setMinimum(0); + b->setValue(100); + b->setFormat(i18n("Done")); + d->count--; + updateCount(); + } +} + +void ProcessorDlg::slotFailed(const KUrl& url, const QString& err) +{ + QProgressBar* const b = findProgressBar(url); + + if (b) + { + b->setMaximum(100); + b->setMinimum(0); + b->setValue(100); + b->setFormat(err); + d->count--; + updateCount(); + } +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libkdcraw-4.14.3/tests/multithreading/processordlg.h new/libkdcraw-14.12.0/tests/multithreading/processordlg.h --- old/libkdcraw-4.14.3/tests/multithreading/processordlg.h 1970-01-01 01:00:00.000000000 +0100 +++ new/libkdcraw-14.12.0/tests/multithreading/processordlg.h 2014-10-30 23:07:13.000000000 +0100 @@ -0,0 +1,61 @@ +/** =========================================================== + * + * This file is a part of digiKam project + * <a href="http://www.digikam.org">http://www.digikam.org</a> + * + * Date : 2014-10-17 + * Description : test for implementation of threadWeaver api + * + * Copyright (C) 2014 by Gilles Caulier + * <a href="mailto:caulier dot gilles at gmail dot com">caulier dot gilles at gmail dot com</a> + * + * This program is free software; you can redistribute it + * and/or modify it under the terms of the GNU General + * Public License as published by the Free Software Foundation; + * either version 2, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * ============================================================ */ + +#ifndef PROCESSOR_DLG_H +#define PROCESSOR_DLG_H + +// KDE includes + +#include <kdialog.h> +#include <kurl.h> + +class QProgressBar; + +class ProcessorDlg : public KDialog +{ + Q_OBJECT + +public: + + ProcessorDlg(const KUrl::List& list); + ~ProcessorDlg(); + +private : + + QProgressBar* findProgressBar(const KUrl& url) const; + void updateCount(); + +private Q_SLOTS: + + void slotStart(); + void slotStarting(const KUrl&); + void slotFinished(const KUrl&); + void slotFailed(const KUrl&, const QString&); + +private: + + class Private; + Private* const d; +}; + +#endif // PROCESSOR_DLG_H -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
