r14491 by jghali - fix color management classes naming by using proper english abbreviation
scribus-commit
scribus-commit at lists.scribus.net
Thu Jan 7 01:11:28 CET 2010
Revision: 14491
Author: jghali
Date: 2010-01-06T11:07:31.527379Z
Commit message: fix color management classes naming by using proper english abbreviation
Changeset:
A /trunk/Scribus/scribus/colormgmt/sclcmscolormgmtengineimpl.h
D /trunk/Scribus/scribus/colormgmt/sccolormngtengine.h
M /trunk/Scribus/scribus/scimgdataloader_jpeg.cpp
M /trunk/Scribus/scribus/scribuscore.h
D /trunk/Scribus/scribus/colormgmt/sclcmscolormngtengineimpl.h
M /trunk/Scribus/scribus/colormgmt/sclcmscolorprofileimpl.cpp
M /trunk/Scribus/scribus/scimgdataloader_psd.cpp
D /trunk/Scribus/scribus/colormgmt/sccolormngtstructs.h
M /trunk/Scribus/scribus/sccolorengine.cpp
M /trunk/Scribus/scribus/colormgmt/sccolorprofile.h
M /trunk/Scribus/scribus/pageitem.h
M /trunk/Scribus/scribus/scribusdoc.cpp
M /trunk/Scribus/scribus/colormgmt/sccolortransformpool.h
M /trunk/Scribus/scribus/colormgmt/sccolortransformdata.h
M /trunk/Scribus/scribus/sampleitem.h
M /trunk/Scribus/scribus/scribusstructs.h
M /trunk/Scribus/scribus/plugins/scriptplugin/objpdffile.cpp
M /trunk/Scribus/scribus/colormgmt/sclcmscolortransformimpl.h
M /trunk/Scribus/scribus/scpainterex_ps2.cpp
A /trunk/Scribus/scribus/colormgmt/sccolormgmtenginefactory.cpp
D /trunk/Scribus/scribus/colormgmt/sccolormngtenginefactory.h
A /trunk/Scribus/scribus/colormgmt/sccolormgmtenginedata.h
A /trunk/Scribus/scribus/colormgmt/sccolormgmtimplelem.cpp
D /trunk/Scribus/scribus/colormgmt/sccolormngtimplelem.cpp
A /trunk/Scribus/scribus/colormgmt
A /trunk/Scribus/scribus/colormgmt/sccolormgmtengine.cpp
D /trunk/Scribus/scribus/colormgmt/sccolormngtenginedata.h
D /trunk/Scribus/scribus/colormngt
A /trunk/Scribus/scribus/colormgmt/sclcmscolormgmtengineimpl.cpp
D /trunk/Scribus/scribus/colormgmt/sccolormngtengine.cpp
M /trunk/Scribus/scribus/scribuscore.cpp
M /trunk/Scribus/win32/vc8/Scribus.vcproj
D /trunk/Scribus/scribus/colormgmt/sclcmscolormngtengineimpl.cpp
M /trunk/Scribus/scribus/scimgdataloader_ps.cpp
M /trunk/Scribus/scribus/cmsettings.h
D /trunk/Scribus/scribus/colormgmt/sccolormngtstructs.cpp
M /trunk/Scribus/scribus/colormgmt/sccolorprofiledata.h
A /trunk/Scribus/scribus/colormgmt/sccolormgmtstructs.h
M /trunk/Scribus/scribus/scimgdataloader_tiff.cpp
M /trunk/Scribus/scribus/CMakeLists.txt
M /trunk/Scribus/scribus/colormgmt/sccolortransformpool.cpp
M /trunk/Scribus/scribus/colormgmt/sclcmscolorprofileimpl.h
M /trunk/Scribus/scribus/ui/preview.cpp
M /trunk/Scribus/scribus/colormgmt/CMakeLists.txt
M /trunk/Scribus/scribus/scdocoutput_ps2.cpp
M /trunk/Scribus/scribus/sampleitem.cpp
A /trunk/Scribus/scribus/colormgmt/sccolormgmtelem.h
M /trunk/Scribus/scribus/colormgmt/sclcmscolortransformimpl.cpp
D /trunk/Scribus/scribus/colormgmt/sccolormngtelem.h
M /trunk/Scribus/scribus/scribusdoc.h
M /trunk/Scribus/scribus/colormgmt/sccolortransform.h
M /trunk/Scribus/scribus/scimage.cpp
D /trunk/Scribus/scribus/colormgmt/sccolormngtenginefactory.cpp
M /trunk/Scribus/scribus/pslib.h
M /trunk/Scribus/scribus/scpainterex_ps2.h
A /trunk/Scribus/scribus/colormgmt/sccolormgmtenginefactory.h
A /trunk/Scribus/scribus/colormgmt/sccolormgmtstructs.cpp
A /trunk/Scribus/scribus/colormgmt/sccolormgmtimplelem.h
D /trunk/Scribus/scribus/colormgmt/sccolormngtimplelem.h
A /trunk/Scribus/scribus/colormgmt/sccolormgmtengine.h
Diffs:
Index: scribus/scpainterex_ps2.cpp
===================================================================
--- scribus/scpainterex_ps2.cpp (revision 14490)
+++ scribus/scpainterex_ps2.cpp (revision 14491)
@@ -38,7 +38,7 @@
using namespace std;
#include <cmath>
-#include "colormngt/sccolormngtengine.h"
+#include "colormgmt/sccolormgmtengine.h"
#include "sccolorengine.h"
#include "util.h"
Index: scribus/scimgdataloader_ps.cpp
===================================================================
--- scribus/scimgdataloader_ps.cpp (revision 14490)
+++ scribus/scimgdataloader_ps.cpp (revision 14491)
@@ -12,7 +12,7 @@
#include <QRegExp>
#include "cmsettings.h"
-#include "colormngt/sccolormngtengine.h"
+#include "colormgmt/sccolormgmtengine.h"
#include "scclocale.h"
#include "scpaths.h"
#include "scribuscore.h"
@@ -82,7 +82,7 @@
}
if (tmp.startsWith("%%EndICCProfile"))
{
- ScColorMngtEngine engine(ScCore->defaultEngine);
+ ScColorMgmtEngine engine(ScCore->defaultEngine);
ScColorProfile prof = engine.openProfileFromMem(psdata);
if (prof)
{
@@ -427,7 +427,7 @@
}
if (tmp.startsWith("%%EndICCProfile"))
{
- ScColorMngtEngine engine(ScCore->defaultEngine);
+ ScColorMgmtEngine engine(ScCore->defaultEngine);
ScColorProfile prof = engine.openProfileFromMem(psdata);
if (prof)
{
Index: scribus/pslib.h
===================================================================
--- scribus/pslib.h (revision 14490)
+++ scribus/pslib.h (revision 14491)
@@ -35,7 +35,7 @@
#include "scribusapi.h"
#include "scribusstructs.h"
-#include "colormngt/sccolormngtengine.h"
+#include "colormgmt/sccolormgmtengine.h"
#ifdef NLS_PROTO
class ScText;
Index: scribus/scribuscore.h
===================================================================
--- scribus/scribuscore.h (revision 14490)
+++ scribus/scribuscore.h (revision 14491)
@@ -27,7 +27,7 @@
#include "scribus.h"
#include "scribusapi.h"
-#include "colormngt/sccolormngtengine.h"
+#include "colormgmt/sccolormgmtengine.h"
class QWidget;
class FileWatcher;
@@ -113,7 +113,7 @@
ProfilesL PrinterProfiles;
ProfilesL PDFXProfiles;
- ScColorMngtEngine defaultEngine;
+ ScColorMgmtEngine defaultEngine;
ScColorProfile monitorProfile;
ScColorProfile defaultRGBProfile;
ScColorProfile defaultCMYKProfile;
Index: scribus/scribuscore.cpp
===================================================================
--- scribus/scribuscore.cpp (revision 14490)
+++ scribus/scribuscore.cpp (revision 14491)
@@ -37,11 +37,11 @@
#include "util.h"
#include "util_icon.h"
#include "util_ghostscript.h"
-#include "colormngt/sccolormngtenginefactory.h"
+#include "colormgmt/sccolormgmtenginefactory.h"
extern ScribusQApp* ScQApp;
-ScribusCore::ScribusCore() : QObject(), defaultEngine(colorMngtEngineFactory.createDefaultEngine())
+ScribusCore::ScribusCore() : QObject(), defaultEngine(colorMgmtEngineFactory.createDefaultEngine())
{
m_ScribusInitialized=false;
m_SplashScreen=0;
@@ -50,7 +50,7 @@
// m_PaletteParent=0;
m_currScMW=0;
- ScColorMngtStrategy strategy;
+ ScColorMgmtStrategy strategy;
strategy.useBlackPointCompensation = true;
strategy.useBlackPreservation = false;
defaultEngine.setStrategy(strategy);
@@ -477,12 +477,9 @@
MonitorProfiles.insert(defaultRGBString, defaultRGBProfile.profilePath());
// Open monitor profile as defined by user preferences
- if (prefsManager->appPrefs.colorPrefs.DCMSset.CMSinUse)
- {
- QString displayProfile = prefsManager->appPrefs.colorPrefs.DCMSset.DefaultMonitorProfile;
- if (MonitorProfiles.contains(displayProfile))
- monitorProfile = defaultEngine.openProfileFromFile( MonitorProfiles[displayProfile] );
- }
+ QString displayProfile = prefsManager->appPrefs.colorPrefs.DCMSset.DefaultMonitorProfile;
+ if (MonitorProfiles.contains(displayProfile))
+ monitorProfile = defaultEngine.openProfileFromFile( MonitorProfiles[displayProfile] );
if (monitorProfile.isNull())
{
prefsManager->appPrefs.colorPrefs.DCMSset.DefaultMonitorProfile = defaultRGBString;
Index: scribus/scpainterex_ps2.h
===================================================================
--- scribus/scpainterex_ps2.h (revision 14490)
+++ scribus/scpainterex_ps2.h (revision 14491)
@@ -41,7 +41,7 @@
#include "scribusapi.h"
#include "scconfig.h"
-#include "colormngt/sccolormngtengine.h"
+#include "colormgmt/sccolormgmtengine.h"
#include "fpoint.h"
#include "fpointarray.h"
#include "vgradient.h"
Index: scribus/scribusdoc.cpp
===================================================================
--- scribus/scribusdoc.cpp (revision 14490)
+++ scribus/scribusdoc.cpp (revision 14491)
@@ -63,7 +63,7 @@
#include "resourcecollection.h"
#include "sccolorengine.h"
#include "ui/scmessagebox.h"
-#include "colormngt/sccolormngtenginefactory.h"
+#include "colormgmt/sccolormgmtenginefactory.h"
#include "scpainter.h"
#include "scraction.h"
#include "scribus.h"
@@ -688,8 +688,8 @@
HasCMS = false;
ScColorProfile inputProf;
- colorEngine = colorMngtEngineFactory.createDefaultEngine();
- ScColorMngtStrategy colorStrategy;
+ colorEngine = colorMgmtEngineFactory.createDefaultEngine();
+ ScColorMgmtStrategy colorStrategy;
colorStrategy.useBlackPointCompensation = CMSSettings.BlackPoint;
colorStrategy.useBlackPreservation = false;
colorEngine.setStrategy(colorStrategy);
Index: scribus/sampleitem.cpp
===================================================================
--- scribus/sampleitem.cpp (revision 14490)
+++ scribus/sampleitem.cpp (revision 14491)
@@ -136,7 +136,7 @@
bgShade = c;
}
-void SampleItem::setBgColorMngt(bool enable)
+void SampleItem::setBgColorMgmt(bool enable)
{
m_Doc->PageColors["__whiteforpreviewbg__"].setSpotColor(!enable);
}
Index: scribus/sccolorengine.cpp
===================================================================
--- scribus/sccolorengine.cpp (revision 14490)
+++ scribus/sccolorengine.cpp (revision 14491)
@@ -24,7 +24,7 @@
#include "sccolorengine.h"
#include "scribuscore.h"
#include "scribusdoc.h"
-#include "colormngt/sccolormngtengine.h"
+#include "colormgmt/sccolormgmtengine.h"
QColor ScColorEngine::getRGBColor(const ScColor& color, const ScribusDoc* doc)
{
Index: scribus/scimgdataloader_tiff.cpp
===================================================================
--- scribus/scimgdataloader_tiff.cpp (revision 14490)
+++ scribus/scimgdataloader_tiff.cpp (revision 14491)
@@ -10,7 +10,7 @@
#include <QList>
#include "scconfig.h"
-#include "colormngt/sccolormngtengine.h"
+#include "colormgmt/sccolormgmtengine.h"
#include "scimgdataloader_tiff.h"
#include "scribuscore.h"
#include "util_color.h"
@@ -38,7 +38,7 @@
void ScImgDataLoader_TIFF::loadEmbeddedProfile(const QString& fn, int /*page*/)
{
- ScColorMngtEngine engine(ScCore->defaultEngine);
+ ScColorMgmtEngine engine(ScCore->defaultEngine);
m_embeddedProfile.resize(0);
m_profileComponents = 0;
if ( !QFile::exists(fn) )
@@ -592,7 +592,7 @@
bool ScImgDataLoader_TIFF::loadPicture(const QString& fn, int page, int res, bool thumbnail)
{
- ScColorMngtEngine engine(ScCore->defaultEngine);
+ ScColorMgmtEngine engine(ScCore->defaultEngine);
bool bilevel = false;
bool failedPS = false;
bool foundPS = false;
Index: scribus/scdocoutput_ps2.cpp
===================================================================
--- scribus/scdocoutput_ps2.cpp (revision 14490)
+++ scribus/scdocoutput_ps2.cpp (revision 14491)
@@ -80,7 +80,7 @@
eColorFormat outputDataTypeColors = Format_Undefined;
eColorFormat outputDataTypeImages = Format_Undefined;
- ScColorMngtEngine engine(m_doc->colorEngine);
+ ScColorMgmtEngine engine(m_doc->colorEngine);
m_options.hProfile = engine.openProfileFromFile(m_options.outputProfile);
if (static_cast<int>(m_options.hProfile.colorSpace()) == icSigRgbData)
{
Index: scribus/scimgdataloader_psd.cpp
===================================================================
--- scribus/scimgdataloader_psd.cpp (revision 14490)
+++ scribus/scimgdataloader_psd.cpp (revision 14491)
@@ -5,7 +5,7 @@
for which a new license (GPL+exception) is in place.
*/
#include "scconfig.h"
-#include "colormngt/sccolormngtengine.h"
+#include "colormgmt/sccolormgmtengine.h"
#include "scimgdataloader_psd.h"
#include "util_color.h"
#include "sccolorengine.h"
@@ -47,7 +47,7 @@
m_embeddedProfile.resize(0);
m_profileComponents = 0;
ScColorProfile prof;
- ScColorMngtEngine engine(ScCore->defaultEngine);
+ ScColorMgmtEngine engine(ScCore->defaultEngine);
QFileInfo fi = QFileInfo(fn);
if (!fi.exists())
return;
@@ -133,7 +133,7 @@
bool ScImgDataLoader_PSD::loadPicture(const QString& fn, int /*page*/, int res, bool thumbnail)
{
- ScColorMngtEngine engine(ScCore->defaultEngine);
+ ScColorMgmtEngine engine(ScCore->defaultEngine);
bool isCMYK = false;
float xres = 72.0, yres = 72.0;
if (!QFile::exists(fn))
@@ -839,7 +839,7 @@
RawImage r2_image;
RawImage mask;
bool createOk = false;
- ScColorMngtEngine engine(ScCore->defaultEngine);
+ ScColorMgmtEngine engine(ScCore->defaultEngine);
if (header.color_mode == CM_CMYK)
{
createOk = r2_image.create(layerInfo[layer].width, layerInfo[layer].height, qMax(channel_num, (uint)5));
@@ -1333,7 +1333,7 @@
bool ScImgDataLoader_PSD::loadLayer( QDataStream & s, const PSDHeader & header )
{
- ScColorMngtEngine engine(ScCore->defaultEngine);
+ ScColorMgmtEngine engine(ScCore->defaultEngine);
// Find out if the data is compressed.
// Known values:
// 0: no compression
Index: scribus/pageitem.h
===================================================================
--- scribus/pageitem.h (revision 14490)
+++ scribus/pageitem.h (revision 14491)
@@ -38,7 +38,7 @@
#include "scribusapi.h"
#include "annotation.h"
-#include "colormngt/sccolormngtstructs.h"
+#include "colormgmt/sccolormgmtstructs.h"
#include "desaxe/saxio.h"
#include "observable.h"
#include "pagestructs.h"
Index: scribus/scribusstructs.h
===================================================================
--- scribus/scribusstructs.h (revision 14490)
+++ scribus/scribusstructs.h (revision 14491)
@@ -25,7 +25,7 @@
#include <vector>
#include "scribusapi.h"
-#include "colormngt/sccolormngtstructs.h"
+#include "colormgmt/sccolormgmtstructs.h"
#include "scimagestructs.h"
#include "sctextstruct.h"
#include "scfonts.h"
Index: scribus/scribusdoc.h
===================================================================
--- scribus/scribusdoc.h (revision 14490)
+++ scribus/scribusdoc.h (revision 14491)
@@ -38,7 +38,7 @@
#include "gtgettext.h" //CB For the ImportSetup struct and itemadduserframe
#include "scribusapi.h"
-#include "colormngt/sccolormngtengine.h"
+#include "colormgmt/sccolormgmtengine.h"
#include "documentinformation.h"
#include "observable.h"
#include "page.h"
@@ -1035,7 +1035,7 @@
int GroupCounter;
CMSData CMSSettings;
- ScColorMngtEngine colorEngine;
+ ScColorMgmtEngine colorEngine;
ScColorProfile DocInputImageRGBProf;
ScColorProfile DocInputImageCMYKProf;
ScColorProfile DocInputRGBProf;
Index: scribus/scimage.cpp
===================================================================
--- scribus/scimage.cpp (revision 14490)
+++ scribus/scimage.cpp (revision 14491)
@@ -2145,7 +2145,7 @@
ScColorProfile printerProf = cmSettings.printerProfile() ? cmSettings.printerProfile() : ScCore->defaultCMYKProfile;
if (cmSettings.useColorManagement() && inputProf && screenProf && printerProf)
{
- ScColorMngtEngine engine(cmSettings.doc() ? cmSettings.doc()->colorEngine : ScCore->defaultEngine);
+ ScColorMgmtEngine engine(cmSettings.doc() ? cmSettings.doc()->colorEngine : ScCore->defaultEngine);
bool isPsdTiff = (extensionIndicatesPSD(ext) || extensionIndicatesTIFF(ext));
eColorFormat inputProfFormat = Format_BGRA_8;
eColorFormat outputProfFormat = Format_YMCK_8;
Index: scribus/scimgdataloader_jpeg.cpp
===================================================================
--- scribus/scimgdataloader_jpeg.cpp (revision 14490)
+++ scribus/scimgdataloader_jpeg.cpp (revision 14491)
@@ -9,7 +9,7 @@
#include <QObject>
#include <setjmp.h>
#include "scconfig.h"
-#include "colormngt/sccolormngtengine.h"
+#include "colormgmt/sccolormgmtengine.h"
#include "scimgdataloader_jpeg.h"
#include "scribuscore.h"
#include "exif.h"
Index: scribus/ui/preview.cpp
===================================================================
--- scribus/ui/preview.cpp (revision 14490)
+++ scribus/ui/preview.cpp (revision 14491)
@@ -1067,7 +1067,7 @@
{
QRgb alphaFF = qRgba(0,0,0,255);
QRgb alphaOO = qRgba(255,255,255,0);
- ScColorMngtEngine engine = doc->colorEngine;
+ ScColorMgmtEngine engine = doc->colorEngine;
ScColorTransform transCMYK = engine.createTransform(doc->DocPrinterProf, Format_YMCK_8, doc->DocDisplayProf, Format_BGRA_8, Intent_Relative_Colorimetric, 0);
for( int yi=0; yi < h2; ++yi )
{
@@ -1129,7 +1129,7 @@
{
QRgb alphaFF = qRgba(0,0,0,255);
QRgb alphaOO = qRgba(255,255,255,0);
- ScColorMngtEngine engine = doc->colorEngine;
+ ScColorMgmtEngine engine = doc->colorEngine;
ScColorTransform transCMYK = engine.createTransform(doc->DocPrinterProf, Format_YMCK_8, doc->DocDisplayProf, Format_BGRA_8, Intent_Relative_Colorimetric, 0);
for (int y=0; y < h2; ++y )
{
Index: scribus/sampleitem.h
===================================================================
--- scribus/sampleitem.h (revision 14490)
+++ scribus/sampleitem.h (revision 14491)
@@ -51,7 +51,7 @@
void setBgShade(int c);
/*! \brief Set color management for backgroud color of the pixmap.
\param enable if color management should be enabled */
- void setBgColorMngt(bool enable);
+ void setBgColorMgmt(bool enable);
/*! \brief Set Text color of the pixmap.
\param c a QColor */
void setTxColor(QColor c);
Index: scribus/colormgmt/sccolortransformpool.h
===================================================================
--- scribus/colormgmt/sccolortransformpool.h (revision 0)
+++ scribus/colormgmt/sccolortransformpool.h (revision 14491)
@@ -0,0 +1,35 @@
+/*
+For general Scribus (>=1.3.2) copyright and licensing information please refer
+to the COPYING file provided with the program. Following this notice may exist
+a copyright and/or license notice that predates the release of Scribus 1.3.2
+for which a new license (GPL+exception) is in place.
+*/
+
+#ifndef SCCOLORTRANSFORMPOOL_H
+#define SCCOLORTRANSFORMPOOL_H
+
+#include <QList>
+#include <QWeakPointer>
+#include "sccolormgmtstructs.h"
+#include "sccolortransform.h"
+
+class ScColorTransformPool
+{
+ friend class ScColorMgmtEngineData;
+
+public:
+ ScColorTransformPool (int engineID);
+
+ void clear(void);
+ void addTransform(const ScColorTransform& transform, bool force = false);
+ void removeTransform(const ScColorTransform& transform);
+ void removeTransform(const ScColorTransformInfo& info);
+
+ ScColorTransform findTransform(const ScColorTransformInfo& info) const;
+
+protected:
+ int m_engineID;
+ QList< QWeakPointer<ScColorTransformData> > m_pool;
+};
+
+#endif
Index: scribus/colormgmt/sccolortransformdata.h
===================================================================
--- scribus/colormgmt/sccolortransformdata.h (revision 0)
+++ scribus/colormgmt/sccolortransformdata.h (revision 14491)
@@ -0,0 +1,35 @@
+/*
+For general Scribus (>=1.3.2) copyright and licensing information please refer
+to the COPYING file provided with the program. Following this notice may exist
+a copyright and/or license notice that predates the release of Scribus 1.3.2
+for which a new license (GPL+exception) is in place.
+*/
+
+#ifndef SCCOLORTRANSFORMDATA_H
+#define SCCOLORTRANSFORMDATA_H
+
+#include <QByteArray>
+#include <QString>
+
+#include "icc34.h" //part of lcms1
+#include "sccolormgmtelem.h"
+#include "sccolormgmtstructs.h"
+
+class ScColorTransformData : public ScColorMgmtElem
+{
+protected:
+ ScColorTransformInfo m_transformInfo;
+
+public:
+ inline const ScColorTransformInfo& transformInfo() const { return m_transformInfo; }
+ inline void setTransformInfo(const ScColorTransformInfo& info) { m_transformInfo = info; }
+
+ virtual bool isNull() const = 0;
+
+ virtual bool apply(void* input, void* output, uint numElem) = 0;
+ virtual bool apply(QByteArray& input, QByteArray& output, uint numElem) = 0;
+
+ virtual void changeBufferFormat(eColorFormat input, eColorFormat output) = 0;
+};
+
+#endif
Index: scribus/colormgmt/sccolortransform.cpp
===================================================================
--- scribus/colormgmt/sccolortransform.cpp (revision 0)
+++ scribus/colormgmt/sccolortransform.cpp (revision 14491)
@@ -0,0 +1,40 @@
+/*
+For general Scribus (>=1.3.2) copyright and licensing information please refer
+to the COPYING file provided with the program. Following this notice may exist
+a copyright and/or license notice that predates the release of Scribus 1.3.2
+for which a new license (GPL+exception) is in place.
+*/
+
+#include "sccolortransform.h"
+
+ScColorTransform::ScColorTransform() : m_data(NULL)
+{
+}
+
+ScColorTransform::ScColorTransform(ScColorTransformData* data) : m_data(data)
+{
+}
+
+ScColorTransform::ScColorTransform(const QSharedPointer<ScColorTransformData>& data) : m_data(data)
+{
+}
+
+bool ScColorTransform::apply(void* input, void* output, uint numElem)
+{
+ return m_data->apply(input, output, numElem);
+}
+
+bool ScColorTransform::apply(QByteArray& input, QByteArray& output, uint numElem)
+{
+ return m_data->apply(input, output, numElem);
+}
+
+void ScColorTransform::changeBufferFormat(eColorFormat input, eColorFormat output)
+{
+ return m_data->changeBufferFormat(input, output);
+}
+
+bool ScColorTransform::operator==(const ScColorTransform& other) const
+{
+ return m_data == other.m_data;
+}
\ No newline at end of file
Index: scribus/colormgmt/sclcmscolortransformimpl.cpp
===================================================================
--- scribus/colormgmt/sclcmscolortransformimpl.cpp (revision 0)
+++ scribus/colormgmt/sclcmscolortransformimpl.cpp (revision 14491)
@@ -0,0 +1,65 @@
+/*
+For general Scribus (>=1.3.2) copyright and licensing information please refer
+to the COPYING file provided with the program. Following this notice may exist
+a copyright and/or license notice that predates the release of Scribus 1.3.2
+for which a new license (GPL+exception) is in place.
+*/
+
+#include "sclcmscolortransformimpl.h"
+#include "sclcmscolormgmtengineimpl.h"
+
+ScLcmsColorTransformImpl::ScLcmsColorTransformImpl(ScColorMgmtEngine& engine, cmsHTRANSFORM lcmsTransform)
+ : ScColorTransformImplBase(engine), m_transformHandle(lcmsTransform)
+{
+
+}
+
+ScLcmsColorTransformImpl::~ScLcmsColorTransformImpl()
+{
+ deleteTransform();
+}
+
+bool ScLcmsColorTransformImpl::isNull() const
+{
+ return (m_transformHandle == NULL);
+}
+
+bool ScLcmsColorTransformImpl::apply(void* input, void* output, uint numElem)
+{
+ if (m_transformHandle)
+ {
+ cmsDoTransform(m_transformHandle, input, output, numElem);
+ return true;
+ }
+ return false;
+}
+
+bool ScLcmsColorTransformImpl::apply(QByteArray& input, QByteArray& output, uint numElem)
+{
+ if (m_transformHandle)
+ {
+ cmsDoTransform(m_transformHandle, input.data(), output.data(), numElem);
+ return true;
+ }
+ return false;
+}
+
+void ScLcmsColorTransformImpl::changeBufferFormat(eColorFormat input, eColorFormat output)
+{
+ if (m_transformHandle)
+ {
+ DWORD lcmsInput = ScLcmsColorMgmtEngineImpl::translateFormatToLcmsFormat(input);
+ DWORD lcmsOutput = ScLcmsColorMgmtEngineImpl::translateFormatToLcmsFormat(output);
+ cmsChangeBuffersFormat(m_transformHandle, lcmsInput, lcmsOutput);
+ }
+}
+
+void ScLcmsColorTransformImpl::deleteTransform(void)
+{
+ if (m_transformHandle)
+ {
+ cmsDeleteTransform(m_transformHandle);
+ m_transformHandle = NULL;
+ }
+}
+
Index: scribus/colormgmt/sccolormgmtelem.h
===================================================================
--- scribus/colormgmt/sccolormgmtelem.h (revision 0)
+++ scribus/colormgmt/sccolormgmtelem.h (revision 14491)
@@ -0,0 +1,20 @@
+/*
+For general Scribus (>=1.3.2) copyright and licensing information please refer
+to the COPYING file provided with the program. Following this notice may exist
+a copyright and/or license notice that predates the release of Scribus 1.3.2
+for which a new license (GPL+exception) is in place.
+*/
+
+#ifndef SCCOLORMGMTELEM_H
+#define SCCOLORMGMTELEM_H
+
+class ScColorMgmtEngine;
+
+class ScColorMgmtElem
+{
+public:
+ virtual ScColorMgmtEngine& engine() = 0;
+ virtual const ScColorMgmtEngine& engine() const = 0;
+};
+
+#endif
Index: scribus/colormgmt/sccolortransform.h
===================================================================
--- scribus/colormgmt/sccolortransform.h (revision 0)
+++ scribus/colormgmt/sccolortransform.h (revision 14491)
@@ -0,0 +1,47 @@
+/*
+For general Scribus (>=1.3.2) copyright and licensing information please refer
+to the COPYING file provided with the program. Following this notice may exist
+a copyright and/or license notice that predates the release of Scribus 1.3.2
+for which a new license (GPL+exception) is in place.
+*/
+
+#ifndef SCCOLORTRANSFORM_H
+#define SCCOLORTRANSFORM_H
+
+#include <QSharedPointer>
+#include <QWeakPointer>
+#include "scribusapi.h"
+#include "sccolortransformdata.h"
+
+class SCRIBUS_API ScColorTransform
+{
+ friend class ScColorTransformPool;
+public:
+ ScColorTransform();
+ ScColorTransform(ScColorTransformData* data);
+ ScColorTransform(const QSharedPointer<ScColorTransformData>& data);
+
+ ScColorMgmtEngine& engine() { return m_data->engine(); }
+ const ScColorMgmtEngine& engine() const { return m_data->engine(); }
+
+ inline bool isNull() const { return (m_data.isNull() || m_data->isNull()); }
+ inline operator bool () const { return !isNull(); }
+
+ const ScColorTransformInfo& transformInfo() const { return m_data->transformInfo(); }
+
+ bool apply(void* input, void* output, uint numElem);
+ bool apply(QByteArray& input, QByteArray& output, uint numElem);
+
+ // FIXME get rif of this API as soon as possible (cf scimage)
+ void changeBufferFormat(eColorFormat input, eColorFormat output);
+
+ bool operator==(const ScColorTransform& other) const;
+
+protected:
+ QSharedPointer<ScColorTransformData> m_data;
+
+ QWeakPointer<ScColorTransformData> weakRef() const { return m_data.toWeakRef(); }
+ QSharedPointer<ScColorTransformData> strongRef() const { return m_data; }
+};
+
+#endif
Index: scribus/colormgmt/sclcmscolortransformimpl.h
===================================================================
--- scribus/colormgmt/sclcmscolortransformimpl.h (revision 0)
+++ scribus/colormgmt/sclcmscolortransformimpl.h (revision 14491)
@@ -0,0 +1,36 @@
+/*
+For general Scribus (>=1.3.2) copyright and licensing information please refer
+to the COPYING file provided with the program. Following this notice may exist
+a copyright and/or license notice that predates the release of Scribus 1.3.2
+for which a new license (GPL+exception) is in place.
+*/
+
+#ifndef SCLCMSCOLORTRANSFORMIMPL_H
+#define SCLCMSCOLORTRANSFORMIMPL_H
+
+#include "lcms.h"
+#include "sccolormgmtimplelem.h"
+#include "sccolortransformdata.h"
+
+class ScLcmsColorTransformImpl : public ScColorTransformImplBase
+{
+ friend class ScLcmsColorMgmtEngineImpl;
+
+public:
+ ScLcmsColorTransformImpl(ScColorMgmtEngine& engine, cmsHTRANSFORM lcmsTransform);
+ virtual ~ScLcmsColorTransformImpl();
+
+ virtual bool isNull() const;
+
+ virtual bool apply(void* input, void* output, uint numElem);
+ virtual bool apply(QByteArray& input, QByteArray& output, uint numElem);
+
+ virtual void changeBufferFormat(eColorFormat input, eColorFormat output);
+
+protected:
+ cmsHTRANSFORM m_transformHandle;
+
+ void deleteTransform(void);
+};
+
+#endif
Index: scribus/colormgmt/sccolormgmtenginefactory.cpp
===================================================================
--- scribus/colormgmt/sccolormgmtenginefactory.cpp (revision 0)
+++ scribus/colormgmt/sccolormgmtenginefactory.cpp (revision 14491)
@@ -0,0 +1,23 @@
+/*
+For general Scribus (>=1.3.2) copyright and licensing information please refer
+to the COPYING file provided with the program. Following this notice may exist
+a copyright and/or license notice that predates the release of Scribus 1.3.2
+for which a new license (GPL+exception) is in place.
+*/
+
+#include "sccolormgmtenginefactory.h"
+#include "sclcmscolormgmtengineimpl.h"
+
+ScColorMgmtEngineFactory colorMgmtEngineFactory;
+
+ScColorMgmtEngine ScColorMgmtEngineFactory::createEngine(int engineID)
+{
+ // for now just return default engine
+ return createDefaultEngine();
+}
+
+ScColorMgmtEngine ScColorMgmtEngineFactory::createDefaultEngine()
+{
+ ScColorMgmtEngine lcmsEngine(new ScLcmsColorMgmtEngineImpl());
+ return lcmsEngine;
+}
\ No newline at end of file
Index: scribus/colormgmt/sccolorprofilecache.cpp
===================================================================
--- scribus/colormgmt/sccolorprofilecache.cpp (revision 0)
+++ scribus/colormgmt/sccolorprofilecache.cpp (revision 14491)
@@ -0,0 +1,41 @@
+/*
+For general Scribus (>=1.3.2) copyright and licensing information please refer
+to the COPYING file provided with the program. Following this notice may exist
+a copyright and/or license notice that predates the release of Scribus 1.3.2
+for which a new license (GPL+exception) is in place.
+*/
+#include "sccolorprofilecache.h"
+
+void ScColorProfileCache::addProfile(const ScColorProfile& profile)
+{
+ QString path = profile.profilePath();
+ if (!path.isEmpty())
+ {
+ if (!m_profileMap.contains(path))
+ m_profileMap.insert(path, profile.weakRef());
+ }
+}
+
+void ScColorProfileCache::removeProfile(const QString& profilePath)
+{
+ m_profileMap.remove(profilePath);
+}
+
+void ScColorProfileCache::removeProfile(const ScColorProfile& profile)
+{
+ m_profileMap.remove(profile.profilePath());
+}
+
+bool ScColorProfileCache::contains(const QString& profilePath)
+{
+ return m_profileMap.contains(profilePath);
+}
+
+ScColorProfile ScColorProfileCache::profile(const QString& profilePath)
+{
+ ScColorProfile profile;
+ QMap<QString, QWeakPointer<ScColorProfileData> >::iterator iter = m_profileMap.find(profilePath);
+ if (iter != m_profileMap.end())
+ profile = ScColorProfile(iter.value());
+ return profile;
+}
\ No newline at end of file
Index: scribus/colormgmt/sccolormgmtenginefactory.h
===================================================================
--- scribus/colormgmt/sccolormgmtenginefactory.h (revision 0)
+++ scribus/colormgmt/sccolormgmtenginefactory.h (revision 14491)
@@ -0,0 +1,22 @@
+/*
+For general Scribus (>=1.3.2) copyright and licensing information please refer
+to the COPYING file provided with the program. Following this notice may exist
+a copyright and/or license notice that predates the release of Scribus 1.3.2
+for which a new license (GPL+exception) is in place.
+*/
+
+#ifndef SCCOLORMGMTENGINEFACTORY_H
+#define SCCOLORMGMTENGINEFACTORY_H
+
+#include "sccolormgmtengine.h"
+
+class ScColorMgmtEngineFactory
+{
+public:
+ ScColorMgmtEngine createEngine(int engineID);
+ ScColorMgmtEngine createDefaultEngine();
+};
+
+extern ScColorMgmtEngineFactory colorMgmtEngineFactory;
+
+#endif
Index: scribus/colormgmt/sccolormgmtenginedata.h
===================================================================
--- scribus/colormgmt/sccolormgmtenginedata.h (revision 0)
+++ scribus/colormgmt/sccolormgmtenginedata.h (revision 14491)
@@ -0,0 +1,65 @@
+/*
+For general Scribus (>=1.3.2) copyright and licensing information please refer
+to the COPYING file provided with the program. Following this notice may exist
+a copyright and/or license notice that predates the release of Scribus 1.3.2
+for which a new license (GPL+exception) is in place.
+*/
+
+#ifndef SCCOLORMGMTENGINEDATA_H
+#define SCCOLORMGMTENGINEDATA_H
+
+#include <QByteArray>
+#include <QString>
+
+#include "sccolormgmtstructs.h"
+#include "sccolorprofile.h"
+#include "sccolortransform.h"
+#include "sccolortransformpool.h"
+
+class ScColorMgmtEngine;
+
+class ScColorMgmtEngineData
+{
+protected:
+ int m_engineID;
+ QString m_description;
+ ScColorMgmtStrategy m_strategy;
+
+public:
+
+ ScColorMgmtEngineData(const QString& desc, int uniqueID) : m_engineID(uniqueID),
+ m_description(desc)
+ {}
+
+ // Getters
+ int engineID() const { return m_engineID; }
+ const QString& description() const { return m_description; }
+ const ScColorMgmtStrategy& strategy() const { return m_strategy; }
+
+ // Setter, only for color management strategy, and purely virtual ;)
+ virtual void setStrategy(const ScColorMgmtStrategy& strategy) = 0;
+
+ // function for getting available profile in a directory
+ virtual QList<ScColorProfileInfo> getAvailableProfileInfo(const QString& directory, bool recursive) = 0;
+
+ // functions for opening icc profiles
+ virtual ScColorProfile openProfileFromFile(ScColorMgmtEngine& engine, const QString& filePath) = 0;
+ virtual ScColorProfile openProfileFromMem (ScColorMgmtEngine& engine, const QByteArray& array) = 0;
+
+ // functions for creating profiles
+ virtual ScColorProfile createProfile_sRGB(ScColorMgmtEngine& engine) = 0;
+ virtual ScColorProfile createProfile_Lab (ScColorMgmtEngine& engine) = 0;
+
+ // functions for creating transforms
+ virtual ScColorTransform createTransform(ScColorMgmtEngine& colorManagementEngine,
+ const ScColorProfile& inputProfile , eColorFormat inputFormat,
+ const ScColorProfile& outputProfile, eColorFormat outputFormat,
+ eRenderIntent renderIntent, long transformFlags) = 0;
+ virtual ScColorTransform createProofingTransform(ScColorMgmtEngine& colorManagementEngine,
+ const ScColorProfile& inputProfile , eColorFormat inputFormat,
+ const ScColorProfile& outputProfile, eColorFormat outputFormat,
+ const ScColorProfile& proofing, eRenderIntent renderIntent,
+ eRenderIntent proofingIntent, long transformFlags) = 0;
+};
+
+#endif
Index: scribus/colormgmt/sccolormgmtimplelem.cpp
===================================================================
--- scribus/colormgmt/sccolormgmtimplelem.cpp (revision 0)
+++ scribus/colormgmt/sccolormgmtimplelem.cpp (revision 14491)
@@ -0,0 +1,40 @@
+/*
+For general Scribus (>=1.3.2) copyright and licensing information please refer
+to the COPYING file provided with the program. Following this notice may exist
+a copyright and/or license notice that predates the release of Scribus 1.3.2
+for which a new license (GPL+exception) is in place.
+*/
+
+#include "sccolormgmtimplelem.h"
+
+ScColorProfileImplBase::ScColorProfileImplBase(const ScColorMgmtEngine& engine)
+ : m_engine(engine)
+{
+
+}
+
+ScColorMgmtEngine& ScColorProfileImplBase::engine()
+{
+ return m_engine;
+}
+
+const ScColorMgmtEngine& ScColorProfileImplBase::engine() const
+{
+ return m_engine;
+}
+
+ScColorTransformImplBase::ScColorTransformImplBase(const ScColorMgmtEngine& engine)
+ : m_engine(engine)
+{
+
+}
+
+ScColorMgmtEngine& ScColorTransformImplBase::engine()
+{
+ return m_engine;
+}
+
+const ScColorMgmtEngine& ScColorTransformImplBase::engine() const
+{
+ return m_engine;
+}
\ No newline at end of file
Index: scribus/colormgmt/sccolorprofilecache.h
===================================================================
--- scribus/colormgmt/sccolorprofilecache.h (revision 0)
+++ scribus/colormgmt/sccolorprofilecache.h (revision 14491)
@@ -0,0 +1,30 @@
+/*
+For general Scribus (>=1.3.2) copyright and licensing information please refer
+to the COPYING file provided with the program. Following this notice may exist
+a copyright and/or license notice that predates the release of Scribus 1.3.2
+for which a new license (GPL+exception) is in place.
+*/
+
+#ifndef SCCOLORPROFILECACHE_H
+#define SCCOLORPROFILECACHE_H
+
+#include <QMap>
+#include <QString>
+#include <QWeakPointer>
+#include "sccolorprofile.h"
+
+class ScColorProfileCache
+{
+public:
+ void addProfile(const ScColorProfile& profile);
+ void removeProfile(const QString& profilePath);
+ void removeProfile(const ScColorProfile& profile);
+
+ bool contains(const QString& profilePath);
+ ScColorProfile profile(const QString& profilePath);
+
+protected:
+ QMap<QString, QWeakPointer<ScColorProfileData> > m_profileMap;
+};
+
+#endif
Index: scribus/colormgmt/sccolormgmtengine.cpp
===================================================================
--- scribus/colormgmt/sccolormgmtengine.cpp (revision 0)
+++ scribus/colormgmt/sccolormgmtengine.cpp (revision 14491)
@@ -0,0 +1,85 @@
+/*
+For general Scribus (>=1.3.2) copyright and licensing information please refer
+to the COPYING file provided with the program. Following this notice may exist
+a copyright and/or license notice that predates the release of Scribus 1.3.2
+for which a new license (GPL+exception) is in place.
+*/
+
+#include <cassert>
+#include "sccolormgmtengine.h"
+
+ScColorMgmtEngine::ScColorMgmtEngine(ScColorMgmtEngineData* data) : m_data(data)
+{
+ assert(data != NULL);
+}
+
+int ScColorMgmtEngine::engineID() const
+{
+ return m_data->engineID();
+}
+
+const QString& ScColorMgmtEngine::description() const
+{
+ return m_data->description();
+}
+
+const ScColorMgmtStrategy& ScColorMgmtEngine::strategy() const
+{
+ return m_data->strategy();
+}
+
+void ScColorMgmtEngine::setStrategy(const ScColorMgmtStrategy& strategy)
+{
+ m_data->setStrategy(strategy);
+}
+
+QList<ScColorProfileInfo> ScColorMgmtEngine::getAvailableProfileInfo(const QString& directory, bool recursive)
+{
+ return m_data->getAvailableProfileInfo(directory, recursive);
+}
+
+ScColorProfile ScColorMgmtEngine::openProfileFromFile(const QString& filePath)
+{
+ return m_data->openProfileFromFile(*this, filePath);
+}
+
+ScColorProfile ScColorMgmtEngine::openProfileFromMem( const QByteArray& array)
+{
+ return m_data->openProfileFromMem(*this, array);
+}
+
+ScColorProfile ScColorMgmtEngine::createProfile_sRGB()
+{
+ return m_data->createProfile_sRGB(*this);
+}
+
+ScColorProfile ScColorMgmtEngine::createProfile_Lab()
+{
+ return m_data->createProfile_Lab(*this);
+}
+
+ScColorTransform ScColorMgmtEngine::createTransform(const ScColorProfile& inputProfile , eColorFormat inputFormat,
+ const ScColorProfile& outputProfile, eColorFormat outputFormat,
+ eRenderIntent renderIntent, long transformFlags)
+{
+ return m_data->createTransform(*this, inputProfile, inputFormat, outputProfile, outputFormat, renderIntent, transformFlags);
+}
+
+ScColorTransform ScColorMgmtEngine::createProofingTransform(const ScColorProfile& inputProfile, eColorFormat inputFormat,
+ const ScColorProfile& outputProfile, eColorFormat outputFormat,
+ const ScColorProfile& proofingProfile, eRenderIntent renderIntent,
+ eRenderIntent proofingIntent, long transformFlags)
+{
+ return m_data->createProofingTransform(*this, inputProfile, inputFormat, outputProfile, outputFormat,
+ proofingProfile, renderIntent, proofingIntent, transformFlags);
+}
+
+bool ScColorMgmtEngine::operator==(const ScColorMgmtEngine& other) const
+{
+ return m_data == other.m_data;
+}
+
+bool ScColorMgmtEngine::operator!=(const ScColorMgmtEngine& other) const
+{
+ return m_data != other.m_data;
+}
\ No newline at end of file
Index: scribus/colormgmt/sclcmscolormgmtengineimpl.cpp
===================================================================
--- scribus/colormgmt/sclcmscolormgmtengineimpl.cpp (revision 0)
+++ scribus/colormgmt/sclcmscolormgmtengineimpl.cpp (revision 14491)
@@ -0,0 +1,558 @@
+/*
+For general Scribus (>=1.3.2) copyright and licensing information please refer
+to the COPYING file provided with the program. Following this notice may exist
+a copyright and/or license notice that predates the release of Scribus 1.3.2
+for which a new license (GPL+exception) is in place.
+*/
+
+#include <iostream>
+#include <string>
+#include <QDir>
+#include <QFile>
+
+#include "sclcmscolormgmtengineimpl.h"
+#include "sclcmscolorprofileimpl.h"
+#include "sclcmscolortransformimpl.h"
+
+#ifndef cmsFLAGS_PRESERVEBLACK
+#define cmsFLAGS_PRESERVEBLACK 0x8000
+#endif
+
+QSharedPointer<ScColorProfileCache> ScLcmsColorMgmtEngineImpl::m_profileCache;
+QSharedPointer<ScColorTransformPool> ScLcmsColorMgmtEngineImpl::m_transformPool;
+
+ScLcmsColorMgmtEngineImpl::ScLcmsColorMgmtEngineImpl()
+ : ScColorMgmtEngineData("Littlecms v1", 0)
+{
+ if (!m_profileCache)
+ m_profileCache = QSharedPointer<ScColorProfileCache>(new ScColorProfileCache());
+ if (!m_transformPool)
+ m_transformPool = QSharedPointer<ScColorTransformPool>(new ScColorTransformPool(0));
+ cmsSetAlarmCodes(0, 255, 0);
+}
+
+void ScLcmsColorMgmtEngineImpl::setStrategy(const ScColorMgmtStrategy& strategy)
+{
+ m_strategy = strategy;
+}
+
+QList<ScColorProfileInfo> ScLcmsColorMgmtEngineImpl::getAvailableProfileInfo(const QString& directory, bool recursive)
+{
+ QList<ScColorProfileInfo> profileInfos;
+
+ QDir d(directory, "*", QDir::Name, QDir::Files | QDir::Readable | QDir::Dirs | QDir::NoSymLinks);
+ if ((!d.exists()) || (d.count() == 0))
+ return profileInfos;
+
+ QString nam = "";
+ cmsHPROFILE hIn = NULL;
+
+ for (uint dc = 0; dc < d.count(); ++dc)
+ {
+ QString file = d[dc];
+ if (file == "." || file == "..")
+ continue;
+ QFileInfo fi(directory + "/" + file);
+ if (fi.isDir() && !recursive)
+ continue;
+ else if (fi.isDir() && !file.startsWith('.'))
+ {
+ QList<ScColorProfileInfo> profileInfos2 = getAvailableProfileInfo(fi.filePath()+"/", true);
+ profileInfos.append(profileInfos2);
+ continue;
+ }
+
+ ScColorProfileInfo profileInfo;
+ profileInfo.file = fi.filePath();
+
+ QFile f(fi.filePath());
+ QByteArray bb(40, ' ');
+ if (!f.open(QIODevice::ReadOnly)) {
+ profileInfo.debug = QString("couldn't open %1 as color profile").arg(fi.filePath());
+ profileInfos.append(profileInfo);
+ continue;
+ }
+ int len = f.read(bb.data(), 40);
+ f.close();
+ if (len == 40 && bb[36] == 'a' && bb[37] == 'c' && bb[38] == 's' && bb[39] == 'p')
+ {
+ const QByteArray profilePath( QString(directory + "/" + file).toLocal8Bit() );
+ cmsSetErrorHandler(&cmsErrorHandler);
+ try
+ {
+ hIn = cmsOpenProfileFromFile(profilePath.data(), "r");
+ if (hIn == NULL)
+ continue;
+ const char* profileDescriptor = cmsTakeProductDesc(hIn);
+ profileInfo.description = QString(profileDescriptor);
+ if (profileInfo.description.isEmpty())
+ {
+ cmsCloseProfile(hIn);
+ profileInfo.debug = QString("Color profile %1 is broken : no valid description").arg(fi.filePath());
+ profileInfos.append(profileInfo);
+ continue;
+ }
+ profileInfo.colorSpace = cmsGetColorSpace(hIn);
+ profileInfo.deviceClass = cmsGetDeviceClass(hIn);
+ profileInfos.append(profileInfo);
+ cmsCloseProfile(hIn);
+ hIn = NULL;
+ }
+ catch (lcmsException&)
+ {
+ // Profile is broken
+ if (hIn)
+ {
+ cmsCloseProfile(hIn);
+ hIn = NULL;
+ }
+ profileInfo.debug = QString("Color profile %1 is broken").arg(fi.filePath());
+ profileInfos.append(profileInfo);
+ }
+ cmsSetErrorHandler(NULL);
+ }
+ }
+ cmsSetErrorHandler(NULL);
+
+ return profileInfos;
+}
+
+ScColorProfile ScLcmsColorMgmtEngineImpl::openProfileFromFile(ScColorMgmtEngine& engine, const QString& filePath)
+{
+ // Search profile in profile cache first
+ ScColorProfile profile = m_profileCache->profile(filePath);
+ if (!profile.isNull())
+ return profile;
+ cmsHPROFILE lcmsProf = NULL;
+ cmsSetErrorHandler(&cmsErrorHandler);
+ try
+ {
+ QFile file(filePath);
+ if (file.open(QFile::ReadOnly))
+ {
+ // We do not use lcms cmsOpenProfileFromFile() to avoid limitations
+ // of I/O on 8bit filenames on Windows
+ QByteArray data = file.readAll();
+ if (!data.isEmpty())
+ {
+ lcmsProf = cmsOpenProfileFromMem(data.data(), data.size());
+ if (lcmsProf)
+ {
+ ScLcmsColorProfileImpl* profData = new ScLcmsColorProfileImpl(engine, lcmsProf);
+ profData->m_profileData = data;
+ profData->m_profilePath = filePath;
+ profile = ScColorProfile(dynamic_cast<ScColorProfileData*>(profData));
+ m_profileCache->addProfile(profile);
+ }
+ if (profile.isNull() && lcmsProf)
+ {
+ cmsCloseProfile(lcmsProf);
+ lcmsProf = NULL;
+ }
+ }
+ file.close();
+ }
+ }
+ catch (lcmsException& e)
+ {
+ std::cerr << e.what() << std::endl;
+ if (profile.isNull() && lcmsProf)
+ cmsCloseProfile(lcmsProf);
+ profile = ScColorProfile();
+ }
+ cmsSetErrorHandler(NULL);
+ return profile;
+}
+
+ScColorProfile ScLcmsColorMgmtEngineImpl::openProfileFromMem(ScColorMgmtEngine& engine, const QByteArray& data)
+{
+ ScColorProfile profile;
+ cmsHPROFILE lcmsProf = NULL;
+ cmsSetErrorHandler(&cmsErrorHandler);
+ try
+ {
+ lcmsProf = cmsOpenProfileFromMem((LPVOID) data.data(), data.size());
+ if (lcmsProf)
+ {
+ ScLcmsColorProfileImpl* profData = new ScLcmsColorProfileImpl(engine, lcmsProf);
+ QString desc = profData->productDescription();
+ if (!desc.isEmpty())
+ profData->m_profilePath = QString("memprofile://%1").arg(desc);
+ profData->m_profileData = data;
+ profile = ScColorProfile(dynamic_cast<ScColorProfileData*>(profData));
+ }
+ if (profile.isNull() && lcmsProf)
+ {
+ cmsCloseProfile(lcmsProf);
+ lcmsProf = NULL;
+ }
+ }
+ catch (lcmsException& e)
+ {
+ std::cerr << e.what() << std::endl;
+ if (profile.isNull() && lcmsProf)
+ cmsCloseProfile(lcmsProf);
+ profile = ScColorProfile();
+ }
+ cmsSetErrorHandler(NULL);
+ return profile;
+}
+
+ScColorProfile ScLcmsColorMgmtEngineImpl::createProfile_sRGB(ScColorMgmtEngine& engine)
+{
+ QString internalProfilePath("memprofile://Internal sRGB profile");
+ ScColorProfile profile = m_profileCache->profile(internalProfilePath);
+ if (!profile.isNull())
+ return profile;
+
+ cmsHPROFILE lcmsProf = NULL;
+ cmsSetErrorHandler(&cmsErrorHandler);
+ try
+ {
+ lcmsProf = cmsCreate_sRGBProfile();
+ if (lcmsProf)
+ {
+ ScLcmsColorProfileImpl* profData = new ScLcmsColorProfileImpl(engine, lcmsProf);
+ profData->m_profilePath = internalProfilePath;
+ profile = ScColorProfile(dynamic_cast<ScColorProfileData*>(profData));
+ m_profileCache->addProfile(profile);
+ }
+ if (profile.isNull() && lcmsProf)
+ {
+ cmsCloseProfile(lcmsProf);
+ lcmsProf = NULL;
+ }
+ }
+ catch (lcmsException& e)
+ {
+ std::cerr << e.what() << std::endl;
+ if (profile.isNull() && lcmsProf)
+ cmsCloseProfile(lcmsProf);
+ profile = ScColorProfile();
+ }
+ cmsSetErrorHandler(NULL);
+ return profile;
+}
+
+ScColorProfile ScLcmsColorMgmtEngineImpl::createProfile_Lab(ScColorMgmtEngine& engine)
+{
+ QString internalProfilePath("memprofile://Internal Lab profile");
+ ScColorProfile profile = m_profileCache->profile(internalProfilePath);
+ if (!profile.isNull())
+ return profile;
+
+ cmsHPROFILE lcmsProf = NULL;
+ cmsSetErrorHandler(&cmsErrorHandler);
+ try
+ {
+ lcmsProf = cmsCreateLabProfile(NULL);
+ if (lcmsProf)
+ {
+ ScLcmsColorProfileImpl* profData = new ScLcmsColorProfileImpl(engine, lcmsProf);
+ profData->m_profilePath = internalProfilePath;
+ profile = ScColorProfile(dynamic_cast<ScColorProfileData*>(profData));
+ m_profileCache->addProfile(profile);
+ }
+ if (profile.isNull() && lcmsProf)
+ {
+ cmsCloseProfile(lcmsProf);
+ lcmsProf = NULL;
+ }
+ }
+ catch (lcmsException& e)
+ {
+ std::cerr << e.what() << std::endl;
+ if (profile.isNull() && lcmsProf)
+ cmsCloseProfile(lcmsProf);
+ profile = ScColorProfile();
+ }
+ cmsSetErrorHandler(NULL);
+ return profile;
+}
+
+ScColorTransform ScLcmsColorMgmtEngineImpl::createTransform(ScColorMgmtEngine& engine,
+ const ScColorProfile& inputProfile , eColorFormat inputFormat,
+ const ScColorProfile& outputProfile, eColorFormat outputFormat,
+ eRenderIntent renderIntent, long transformFlags)
+{
+ ScColorTransform transform(NULL);
+ if (inputProfile.isNull() || outputProfile.isNull())
+ return transform;
+ int inputProfEngineID = inputProfile.engine().engineID();
+ int outputProfEngineID = outputProfile.engine().engineID();
+ if ((engine.engineID() != m_engineID) || (inputProfEngineID != m_engineID) || (outputProfEngineID != m_engineID))
+ return transform;
+ const ScLcmsColorProfileImpl* lcmsInputProf = dynamic_cast<const ScLcmsColorProfileImpl*>(inputProfile.data());
+ const ScLcmsColorProfileImpl* lcmsOutputProf = dynamic_cast<const ScLcmsColorProfileImpl*>(outputProfile.data());
+ if (!lcmsInputProf || !lcmsOutputProf)
+ return transform;
+
+ transformFlags &= (~Ctf_Softproofing);
+ transformFlags &= (~Ctf_GamutCheck);
+ long strategyFlags = 0;
+ if (m_strategy.useBlackPointCompensation)
+ strategyFlags |= Ctf_BlackPointCompensation;
+ if (m_strategy.useBlackPreservation)
+ strategyFlags |= Ctf_BlackPreservation;
+
+ ScColorTransformInfo transInfo;
+ transInfo.inputProfile = inputProfile.productDescription();
+ transInfo.outputProfile = outputProfile.productDescription();
+ transInfo.proofingProfile = QString();
+ transInfo.inputFormat = inputFormat;
+ transInfo.outputFormat = outputFormat;
+ transInfo.renderIntent = renderIntent;
+ transInfo.proofingIntent = (eRenderIntent) 0;
+ transInfo.flags = transformFlags | strategyFlags;
+
+ bool nullTransform = false;
+ if (transInfo.inputProfile == transInfo.outputProfile)
+ {
+ // This is a null transform
+ transInfo.inputProfile = QString();
+ transInfo.outputProfile = QString();
+ transInfo.proofingProfile = QString();
+ transInfo.renderIntent = (eRenderIntent) 0;
+ transInfo.proofingIntent = (eRenderIntent) 0;
+ transInfo.flags = 0;
+ nullTransform = true;
+ }
+
+ transform = m_transformPool->findTransform(transInfo);
+ if (transform.isNull())
+ {
+ DWORD lcmsFlags = translateFlagsToLcmsFlags(transformFlags | strategyFlags);
+ DWORD lcmsInputFmt = translateFormatToLcmsFormat(inputFormat);
+ DWORD lcmsOutputFmt = translateFormatToLcmsFormat(outputFormat);
+ int lcmsIntent = translateIntentToLcmsIntent(renderIntent);
+ if (nullTransform)
+ lcmsFlags |= cmsFLAGS_NULLTRANSFORM;
+ cmsHTRANSFORM hTransform = NULL;
+ cmsSetErrorHandler(&cmsErrorHandler);
+ try
+ {
+ hTransform = cmsCreateTransform(lcmsInputProf->m_profileHandle , lcmsInputFmt,
+ lcmsOutputProf->m_profileHandle, lcmsOutputFmt,
+ lcmsIntent, lcmsFlags | cmsFLAGS_LOWRESPRECALC);
+ if (hTransform)
+ {
+ ScLcmsColorTransformImpl* newTrans = new ScLcmsColorTransformImpl(engine, hTransform);
+ newTrans->setTransformInfo(transInfo);
+ transform = ScColorTransform(dynamic_cast<ScColorTransformData*>(newTrans));
+ m_transformPool->addTransform(transform, true);
+ }
+ }
+ catch (lcmsException& e)
+ {
+ std::cerr << e.what() << std::endl;
+ if (transform.isNull() && hTransform)
+ cmsDeleteTransform(hTransform);
+ transform = ScColorTransform();
+ }
+ cmsSetErrorHandler(NULL);
+ }
+ return transform;
+}
+
+ScColorTransform ScLcmsColorMgmtEngineImpl::createProofingTransform(ScColorMgmtEngine& engine,
+ const ScColorProfile& inputProfile , eColorFormat inputFormat,
+ const ScColorProfile& outputProfile, eColorFormat outputFormat,
+ const ScColorProfile& proofProfile , eRenderIntent renderIntent,
+ eRenderIntent proofingIntent, long transformFlags)
+{
+ ScColorTransform transform(NULL);
+ if (inputProfile.isNull() || outputProfile.isNull())
+ return transform;
+ int inputProfEngineID = inputProfile.engine().engineID();
+ int outputProfEngineID = outputProfile.engine().engineID();
+ int proofProfEngineID = proofProfile.engine().engineID();
+ if ((engine.engineID() != m_engineID) || (inputProfEngineID != m_engineID) ||
+ (outputProfEngineID != m_engineID) || (proofProfEngineID != m_engineID))
+ return transform;
+ const ScLcmsColorProfileImpl* lcmsInputProf = dynamic_cast<const ScLcmsColorProfileImpl*>(inputProfile.data());
+ const ScLcmsColorProfileImpl* lcmsOutputProf = dynamic_cast<const ScLcmsColorProfileImpl*>(outputProfile.data());
+ const ScLcmsColorProfileImpl* lcmsProofingProf = dynamic_cast<const ScLcmsColorProfileImpl*>(proofProfile.data());
+ if (!lcmsInputProf || !lcmsOutputProf || !lcmsProofingProf)
+ return transform;
+
+ long strategyFlags = 0;
+ if (m_strategy.useBlackPointCompensation)
+ strategyFlags |= Ctf_BlackPointCompensation;
+ if (m_strategy.useBlackPreservation)
+ strategyFlags |= Ctf_BlackPreservation;
+
+ ScColorTransformInfo transInfo;
+ transInfo.inputProfile = inputProfile.productDescription();
+ transInfo.outputProfile = outputProfile.productDescription();
+ transInfo.proofingProfile = proofProfile.productDescription();
+ transInfo.inputFormat = inputFormat;
+ transInfo.outputFormat = outputFormat;
+ transInfo.renderIntent = renderIntent;
+ transInfo.proofingIntent = proofingIntent;
+ transInfo.flags = transformFlags | strategyFlags;
+
+ DWORD lcmsFlags = translateFlagsToLcmsFlags(transformFlags | strategyFlags);
+ DWORD lcmsInputFmt = translateFormatToLcmsFormat(inputFormat);
+ DWORD lcmsOutputFmt = translateFormatToLcmsFormat(outputFormat);
+ int lcmsIntent = translateIntentToLcmsIntent(renderIntent);
+ int lcmsPrfIntent = translateIntentToLcmsIntent(proofingIntent);
+
+ if (transInfo.inputProfile != transInfo.proofingProfile)
+ {
+ if (transInfo.proofingProfile == transInfo.outputProfile)
+ {
+ transInfo.proofingIntent = Intent_Relative_Colorimetric;
+ lcmsPrfIntent = translateIntentToLcmsIntent(Intent_Relative_Colorimetric);
+ }
+ transform = m_transformPool->findTransform(transInfo);
+ if (transform.isNull())
+ {
+ cmsSetErrorHandler(&cmsErrorHandler);
+ cmsHTRANSFORM hTransform = NULL;
+ try
+ {
+ hTransform = cmsCreateProofingTransform(lcmsInputProf->m_profileHandle , lcmsInputFmt,
+ lcmsOutputProf->m_profileHandle, lcmsOutputFmt,
+ lcmsProofingProf->m_profileHandle, lcmsIntent,
+ lcmsPrfIntent, lcmsFlags | cmsFLAGS_SOFTPROOFING);
+ if (hTransform)
+ {
+ ScLcmsColorTransformImpl* newTrans = new ScLcmsColorTransformImpl(engine, hTransform);
+ newTrans->setTransformInfo(transInfo);
+ transform = ScColorTransform(dynamic_cast<ScColorTransformData*>(newTrans));
+ m_transformPool->addTransform(transform, true);
+ }
+ }
+ catch (lcmsException& e)
+ {
+ std::cerr << e.what() << std::endl;
+ if (transform.isNull() && hTransform)
+ cmsDeleteTransform(hTransform);
+ transform = ScColorTransform();
+ }
+ cmsSetErrorHandler(NULL);
+ }
+ }
+ else
+ {
+ transformFlags &= (~Ctf_Softproofing);
+ transformFlags &= (~Ctf_GamutCheck);
+ lcmsFlags = translateFlagsToLcmsFlags(transformFlags | strategyFlags);
+ transInfo.flags = transformFlags | strategyFlags;
+ transInfo.renderIntent = proofingIntent;
+ transInfo.proofingIntent = (eRenderIntent) 0;
+ if (transInfo.inputProfile == transInfo.outputProfile)
+ {
+ lcmsFlags |= cmsFLAGS_NULLTRANSFORM;
+ transInfo.inputProfile = QString();
+ transInfo.outputProfile = QString();
+ transInfo.proofingProfile = QString();
+ transInfo.renderIntent = (eRenderIntent) 0;
+ transInfo.proofingIntent = (eRenderIntent) 0;
+ transInfo.flags = 0;
+ }
+ transform = m_transformPool->findTransform(transInfo);
+ if (transform.isNull())
+ {
+ cmsSetErrorHandler(&cmsErrorHandler);
+ cmsHTRANSFORM hTransform = NULL;
+ try
+ {
+ hTransform = cmsCreateTransform(lcmsInputProf->m_profileHandle , lcmsInputFmt,
+ lcmsOutputProf->m_profileHandle, lcmsOutputFmt,
+ lcmsPrfIntent, lcmsFlags | cmsFLAGS_LOWRESPRECALC);
+ if (hTransform)
+ {
+ ScLcmsColorTransformImpl* newTrans = new ScLcmsColorTransformImpl(engine, hTransform);
+ newTrans->setTransformInfo(transInfo);
+ transform = ScColorTransform(dynamic_cast<ScColorTransformData*>(newTrans));
+ m_transformPool->addTransform(transform, true);
+ }
+ }
+ catch (lcmsException& e)
+ {
+ std::cerr << e.what() << std::endl;
+ if (transform.isNull() && hTransform)
+ cmsDeleteTransform(hTransform);
+ transform = ScColorTransform();
+ }
+ cmsSetErrorHandler(NULL);
+ }
+ }
+ return transform;
+}
+
+DWORD ScLcmsColorMgmtEngineImpl::translateFlagsToLcmsFlags(long flags)
+{
+ DWORD lFlags = 0;
+ if (flags & Ctf_BlackPointCompensation)
+ lFlags |= cmsFLAGS_BLACKPOINTCOMPENSATION;
+ if (flags & Ctf_BlackPreservation)
+ lFlags |= cmsFLAGS_PRESERVEBLACK;
+ if (flags & Ctf_Softproofing)
+ lFlags |= cmsFLAGS_SOFTPROOFING;
+ if (flags & Ctf_GamutCheck)
+ lFlags |= cmsFLAGS_GAMUTCHECK;
+ return lFlags;
+}
+
+DWORD ScLcmsColorMgmtEngineImpl::translateFormatToLcmsFormat(eColorFormat format)
+{
+ DWORD lFormat = 0;
+ if (format == Format_RGB_8)
+ lFormat = TYPE_RGB_8;
+ if (format == Format_RGB_16)
+ lFormat = TYPE_RGB_16;
+ if (format == Format_RGBA_8)
+ lFormat = TYPE_RGBA_8;
+ if (format == Format_RGBA_16)
+ lFormat = TYPE_RGBA_16;
+ if (format == Format_ARGB_8)
+ lFormat = TYPE_ARGB_8;
+ if (format == Format_ARGB_16)
+ lFormat = TYPE_ARGB_16;
+ if (format == Format_BGRA_8)
+ lFormat = TYPE_BGRA_8;
+ if (format == Format_BGRA_16)
+ lFormat = TYPE_BGRA_16;
+ if (format == Format_CMYK_8)
+ lFormat = TYPE_CMYK_8;
+ if (format == Format_CMYK_16)
+ lFormat = TYPE_CMYK_16;
+ if (format == Format_CMYKA_8)
+ lFormat = (COLORSPACE_SH(PT_CMYK)|EXTRA_SH(1)|CHANNELS_SH(4)|BYTES_SH(1));
+ if (format == Format_CMYKA_16)
+ lFormat = (COLORSPACE_SH(PT_CMYK)|EXTRA_SH(1)|CHANNELS_SH(4)|BYTES_SH(2));
+ if (format == Format_YMCK_8)
+ lFormat = (COLORSPACE_SH(PT_CMYK)|CHANNELS_SH(4)|BYTES_SH(1)|DOSWAP_SH(1)|SWAPFIRST_SH(1));
+ if (format == Format_YMCK_16)
+ lFormat = (COLORSPACE_SH(PT_CMYK)|CHANNELS_SH(4)|BYTES_SH(2)|DOSWAP_SH(1)|SWAPFIRST_SH(1));
+ if (format == Format_GRAY_8)
+ lFormat = TYPE_GRAY_8;
+ if (format == Format_GRAY_16)
+ lFormat = TYPE_GRAY_16;
+ if (format == Format_LabA_8)
+ lFormat = COLORSPACE_SH(PT_Lab)|CHANNELS_SH(3)|BYTES_SH(1)|EXTRA_SH(1);
+ return lFormat;
+}
+
+int ScLcmsColorMgmtEngineImpl::translateIntentToLcmsIntent(eRenderIntent intent, eRenderIntent defIntent)
+{
+ int lIntent = defIntent;
+ if (intent == Intent_Perceptual)
+ lIntent = INTENT_PERCEPTUAL;
+ if (intent == Intent_Relative_Colorimetric)
+ lIntent = INTENT_RELATIVE_COLORIMETRIC;
+ if (intent == Intent_Saturation)
+ lIntent = INTENT_SATURATION;
+ if (intent == Intent_Absolute_Colorimetric)
+ lIntent = INTENT_ABSOLUTE_COLORIMETRIC;
+ return lIntent;
+}
+
+int ScLcmsColorMgmtEngineImpl::cmsErrorHandler(int /*ErrorCode*/, const char *ErrorText)
+{
+ std::string msg = std::string("Littlecms : ") + ErrorText;
+ throw lcmsException(msg.c_str());
+ return 1;
+}
Index: scribus/colormgmt/sccolormgmtstructs.cpp
===================================================================
--- scribus/colormgmt/sccolormgmtstructs.cpp (revision 0)
+++ scribus/colormgmt/sccolormgmtstructs.cpp (revision 14491)
@@ -0,0 +1,20 @@
+/*
+For general Scribus (>=1.3.2) copyright and licensing information please refer
+to the COPYING file provided with the program. Following this notice may exist
+a copyright and/or license notice that predates the release of Scribus 1.3.2
+for which a new license (GPL+exception) is in place.
+*/
+
+#include "sccolormgmtstructs.h"
+
+bool operator==(const ScColorTransformInfo& v1, const ScColorTransformInfo& v2)
+{
+ return ((v1.inputProfile == v2.inputProfile) &&
+ (v1.outputProfile == v2.outputProfile) &&
+ (v1.proofingProfile == v2.proofingProfile) &&
+ (v1.inputFormat == v2.inputFormat) &&
+ (v1.outputFormat == v2.outputFormat) &&
+ (v1.renderIntent == v2.renderIntent) &&
+ (v1.proofingIntent == v2.proofingIntent) &&
+ (v1.flags == v2.flags));
+}
Index: scribus/colormgmt/sccolormgmtimplelem.h
===================================================================
--- scribus/colormgmt/sccolormgmtimplelem.h (revision 0)
+++ scribus/colormgmt/sccolormgmtimplelem.h (revision 14491)
@@ -0,0 +1,38 @@
+/*
+For general Scribus (>=1.3.2) copyright and licensing information please refer
+to the COPYING file provided with the program. Following this notice may exist
+a copyright and/or license notice that predates the release of Scribus 1.3.2
+for which a new license (GPL+exception) is in place.
+*/
+
+#ifndef SCCOLORMGMTIMPLELEM_H
+#define SCCOLORMGMTIMPLELEM_H
+
+#include "sccolormgmtelem.h"
+#include "sccolormgmtengine.h"
+
+class ScColorProfileImplBase : public ScColorProfileData
+{
+protected:
+ ScColorMgmtEngine m_engine;
+
+public:
+ ScColorProfileImplBase(const ScColorMgmtEngine& engine);
+
+ virtual ScColorMgmtEngine& engine();
+ virtual const ScColorMgmtEngine& engine() const;
+};
+
+class ScColorTransformImplBase : public ScColorTransformData
+{
+protected:
+ ScColorMgmtEngine m_engine;
+
+public:
+ ScColorTransformImplBase(const ScColorMgmtEngine& engine);
+
+ virtual ScColorMgmtEngine& engine();
+ virtual const ScColorMgmtEngine& engine() const;
+};
+
+#endif
\ No newline at end of file
Index: scribus/colormgmt/sccolorprofiledata.h
===================================================================
--- scribus/colormgmt/sccolorprofiledata.h (revision 0)
+++ scribus/colormgmt/sccolorprofiledata.h (revision 14491)
@@ -0,0 +1,33 @@
+/*
+For general Scribus (>=1.3.2) copyright and licensing information please refer
+to the COPYING file provided with the program. Following this notice may exist
+a copyright and/or license notice that predates the release of Scribus 1.3.2
+for which a new license (GPL+exception) is in place.
+*/
+
+#ifndef SCCOLORPROFILEDATA_H
+#define SCCOLORPROFILEDATA_H
+
+#include <QByteArray>
+#include <QString>
+
+#include "icc34.h" //part of lcms1
+#include "sccolormgmtelem.h"
+
+class ScColorProfileData : public ScColorMgmtElem
+{
+protected:
+ QString m_profilePath;
+ QString m_profileData;
+
+public:
+
+ QString path() const { return m_profilePath; }
+
+ virtual bool isNull() const = 0;
+ virtual icColorSpaceSignature colorSpace() const = 0;
+ virtual icProfileClassSignature deviceClass() const = 0;
+ virtual QString productDescription() const = 0;
+};
+
+#endif
Index: scribus/colormgmt/sccolormgmtengine.h
===================================================================
--- scribus/colormgmt/sccolormgmtengine.h (revision 0)
+++ scribus/colormgmt/sccolormgmtengine.h (revision 14491)
@@ -0,0 +1,57 @@
+/*
+For general Scribus (>=1.3.2) copyright and licensing information please refer
+to the COPYING file provided with the program. Following this notice may exist
+a copyright and/or license notice that predates the release of Scribus 1.3.2
+for which a new license (GPL+exception) is in place.
+*/
+
+#ifndef SCCOLORMGMTENGINE_H
+#define SCCOLORMGMTENGINE_H
+
+#include <QList>
+#include <QSharedPointer>
+#include "scribusapi.h"
+#include "sccolormgmtenginedata.h"
+
+class SCRIBUS_API ScColorMgmtEngine
+{
+public:
+ ScColorMgmtEngine(ScColorMgmtEngineData*);
+
+ // Getters
+ int engineID() const;
+ const QString& description() const;
+ const ScColorMgmtStrategy& strategy() const;
+
+ // Setters, only for color management strategy, and purely virtual ;)
+ void setStrategy(const ScColorMgmtStrategy& strategy);
+
+ // function for getting available profile in a directory
+ QList<ScColorProfileInfo> getAvailableProfileInfo(const QString& directory, bool recursive);
+
+ // functions for opening icc profiles
+ ScColorProfile openProfileFromFile(const QString& filePath);
+ ScColorProfile openProfileFromMem( const QByteArray& array);
+
+ // functions for creating profiles
+ ScColorProfile createProfile_sRGB();
+ ScColorProfile createProfile_Lab();
+
+ // functions for creating transforms
+ ScColorTransform createTransform(const ScColorProfile& inputProfile , eColorFormat inputFormat,
+ const ScColorProfile& outputProfile, eColorFormat outputFormat,
+ eRenderIntent renderIntent, long transformFlags);
+ ScColorTransform createProofingTransform(const ScColorProfile& inputProfile , eColorFormat inputFormat,
+ const ScColorProfile& outputProfile, eColorFormat outputFormat,
+ const ScColorProfile& proofingProfile, eRenderIntent renderIntent,
+ eRenderIntent proofingIntent, long transformFlags);
+
+ // color engine equality operator function
+ bool operator==(const ScColorMgmtEngine& other) const;
+ bool operator!=(const ScColorMgmtEngine& other) const;
+
+protected:
+ QSharedPointer<ScColorMgmtEngineData> m_data;
+};
+
+#endif
Index: scribus/colormgmt/sccolorprofile.cpp
===================================================================
--- scribus/colormgmt/sccolorprofile.cpp (revision 0)
+++ scribus/colormgmt/sccolorprofile.cpp (revision 14491)
@@ -0,0 +1,53 @@
+/*
+For general Scribus (>=1.3.2) copyright and licensing information please refer
+to the COPYING file provided with the program. Following this notice may exist
+a copyright and/or license notice that predates the release of Scribus 1.3.2
+for which a new license (GPL+exception) is in place.
+*/
+
+#include "sccolorprofile.h"
+
+ScColorProfile::ScColorProfile() : m_data(NULL)
+{
+}
+
+ScColorProfile::ScColorProfile(ScColorProfileData* data) : m_data(data)
+{
+}
+
+ScColorProfile::ScColorProfile(const QSharedPointer<ScColorProfileData>& data) : m_data(data)
+{
+}
+
+icColorSpaceSignature ScColorProfile::colorSpace() const
+{
+ if (m_data)
+ return m_data->colorSpace();
+ return ((icColorSpaceSignature) 0);
+}
+
+icProfileClassSignature ScColorProfile::deviceClass() const
+{
+ if (m_data)
+ return m_data->deviceClass();
+ return ((icProfileClassSignature) 0);
+}
+
+QString ScColorProfile::profilePath() const
+{
+ if (m_data)
+ return m_data->path();
+ return QString();
+}
+
+QString ScColorProfile::productDescription() const
+{
+ if (m_data)
+ return m_data->productDescription();
+ return QString();
+}
+
+bool ScColorProfile::operator==(const ScColorProfile& other) const
+{
+ return m_data == other.m_data;
+}
\ No newline at end of file
Index: scribus/colormgmt/sclcmscolormgmtengineimpl.h
===================================================================
--- scribus/colormgmt/sclcmscolormgmtengineimpl.h (revision 0)
+++ scribus/colormgmt/sclcmscolormgmtengineimpl.h (revision 14491)
@@ -0,0 +1,76 @@
+/*
+For general Scribus (>=1.3.2) copyright and licensing information please refer
+to the COPYING file provided with the program. Following this notice may exist
+a copyright and/or license notice that predates the release of Scribus 1.3.2
+for which a new license (GPL+exception) is in place.
+*/
+
+#ifndef SCLCMSCOLORMGMTENGINEIMPL_H
+#define SCLCMSCOLORMGMTENGINEIMPL_H
+
+#include <stdexcept>
+
+#include "lcms.h"
+#include "sccolormgmtenginedata.h"
+#include "sccolorprofilecache.h"
+
+class ScLcmsColorMgmtEngineImpl : public ScColorMgmtEngineData
+{
+ friend class ScLcmsColorTransformImpl;
+
+public:
+ ScLcmsColorMgmtEngineImpl();
+
+ // Setter, only for color management strategy
+ virtual void setStrategy(const ScColorMgmtStrategy& strategy);
+
+ // function for getting available profile in a directory
+ virtual QList<ScColorProfileInfo> getAvailableProfileInfo(const QString& directory, bool recursive);
+
+ // functions for opening icc profiles
+ virtual ScColorProfile openProfileFromFile(ScColorMgmtEngine& engine, const QString& filePath);
+ virtual ScColorProfile openProfileFromMem (ScColorMgmtEngine& engine, const QByteArray& array);
+
+ // functions for creating profiles
+ virtual ScColorProfile createProfile_sRGB(ScColorMgmtEngine& engine);
+ virtual ScColorProfile createProfile_Lab (ScColorMgmtEngine& engine);
+
+ // functions for creating transforms
+ virtual ScColorTransform createTransform(ScColorMgmtEngine& colorManagementEngine,
+ const ScColorProfile& inputProfile , eColorFormat inputFormat,
+ const ScColorProfile& outputProfile, eColorFormat outputFormat,
+ eRenderIntent renderIntent, long transformFlags);
+ virtual ScColorTransform createProofingTransform(ScColorMgmtEngine& colorManagementEngine,
+ const ScColorProfile& inputProfile , eColorFormat inputFormat,
+ const ScColorProfile& outputProfile, eColorFormat outputFormat,
+ const ScColorProfile& proofing, eRenderIntent renderIntent,
+ eRenderIntent proofingIntent, long transformFlags);
+
+protected:
+
+ // Color profile cache
+ static QSharedPointer<ScColorProfileCache> m_profileCache;
+
+ // Color transform cache
+ static QSharedPointer<ScColorTransformPool> m_transformPool;
+
+ static DWORD translateFlagsToLcmsFlags(long flags);
+ static DWORD translateFormatToLcmsFormat(eColorFormat format);
+ static int translateIntentToLcmsIntent(eRenderIntent intent, eRenderIntent defaut = Intent_Relative_Colorimetric);
+
+ // Exception class thrown by cmsErrorHandler
+ class lcmsException : public std::runtime_error
+ {
+ public :
+ lcmsException(const char* msg) : std::runtime_error(msg) {}
+ };
+
+ /*!
+ \brief Simple error handler for use in conjunction with littlecms
+ \param ErrorCode error code issued by little cms
+ \param ErrorText error message corresponding to the error code
+ */
+ static int cmsErrorHandler(int ErrorCode, const char *ErrorText);
+};
+
+#endif
Index: scribus/colormgmt/sccolormgmtstructs.h
===================================================================
--- scribus/colormgmt/sccolormgmtstructs.h (revision 0)
+++ scribus/colormgmt/sccolormgmtstructs.h (revision 14491)
@@ -0,0 +1,89 @@
+/*
+For general Scribus (>=1.3.2) copyright and licensing information please refer
+to the COPYING file provided with the program. Following this notice may exist
+a copyright and/or license notice that predates the release of Scribus 1.3.2
+for which a new license (GPL+exception) is in place.
+*/
+
+#ifndef SCCOLORMGMTSTRUCTS_H
+#define SCCOLORMGMTSTRUCTS_H
+
+#include "icc34.h" //part of lcms1
+#include <QString>
+
+typedef enum
+{
+ Format_Undefined,
+ Format_RGB_8,
+ Format_RGB_16,
+ Format_RGBA_8,
+ Format_RGBA_16,
+ Format_ARGB_8,
+ Format_ARGB_16,
+ Format_BGRA_8,
+ Format_BGRA_16,
+ Format_CMYK_8,
+ Format_CMYK_16,
+ Format_CMYKA_8,
+ Format_CMYKA_16,
+ Format_YMCK_8,
+ Format_YMCK_16,
+ Format_GRAY_8,
+ Format_GRAY_16,
+ Format_LabA_8
+} eColorFormat;
+
+typedef enum
+{
+ Ctf_BlackPointCompensation = 1,
+ Ctf_BlackPreservation = 2,
+ Ctf_Softproofing = 4,
+ Ctf_GamutCheck = 8
+} eColorTransformFlags;
+
+typedef enum
+{
+ Intent_Perceptual = 0,
+ Intent_Relative_Colorimetric = 1,
+ Intent_Saturation = 2,
+ Intent_Absolute_Colorimetric = 3,
+ Intent_Max = 4
+} eRenderIntent;
+
+class ScColorMgmtStrategy
+{
+public:
+ bool useBlackPointCompensation;
+ bool useBlackPreservation;
+
+ ScColorMgmtStrategy ()
+ {
+ useBlackPointCompensation = true;
+ useBlackPreservation = false;
+ }
+};
+
+typedef struct
+{
+ QString file;
+ QString description;
+ icColorSpaceSignature colorSpace;
+ icProfileClassSignature deviceClass;
+ QString debug;
+} ScColorProfileInfo;
+
+typedef struct
+{
+ QString inputProfile;
+ QString outputProfile;
+ QString proofingProfile;
+ eColorFormat inputFormat;
+ eColorFormat outputFormat;
+ eRenderIntent renderIntent;
+ eRenderIntent proofingIntent;
+ long flags;
+} ScColorTransformInfo;
+
+bool operator==(const ScColorTransformInfo& v1, const ScColorTransformInfo& v2);
+
+#endif
Index: scribus/colormgmt/sclcmscolorprofileimpl.cpp
===================================================================
--- scribus/colormgmt/sclcmscolorprofileimpl.cpp (revision 0)
+++ scribus/colormgmt/sclcmscolorprofileimpl.cpp (revision 14491)
@@ -0,0 +1,61 @@
+/*
+For general Scribus (>=1.3.2) copyright and licensing information please refer
+to the COPYING file provided with the program. Following this notice may exist
+a copyright and/or license notice that predates the release of Scribus 1.3.2
+for which a new license (GPL+exception) is in place.
+*/
+
+#include "sclcmscolorprofileimpl.h"
+
+ScLcmsColorProfileImpl::ScLcmsColorProfileImpl(ScColorMgmtEngine& engine, cmsHPROFILE lcmsProfile)
+ : ScColorProfileImplBase(engine), m_profileHandle(lcmsProfile)
+{
+
+}
+
+ScLcmsColorProfileImpl::~ScLcmsColorProfileImpl()
+{
+ closeProfile();
+}
+
+bool ScLcmsColorProfileImpl::isNull() const
+{
+ return (m_profileHandle == NULL);
+}
+
+icColorSpaceSignature ScLcmsColorProfileImpl::colorSpace() const
+{
+ if (m_profileHandle)
+ return cmsGetColorSpace(m_profileHandle);
+ return ((icColorSpaceSignature) 0);
+}
+
+icProfileClassSignature ScLcmsColorProfileImpl::deviceClass() const
+{
+ if (m_profileHandle)
+ return cmsGetDeviceClass(m_profileHandle);
+ return ((icProfileClassSignature) 0);
+}
+
+QString ScLcmsColorProfileImpl::productDescription() const
+{
+ if (m_productDescription.isEmpty())
+ {
+ if (m_profileHandle)
+ {
+ const char* desc = cmsTakeProductDesc(m_profileHandle);
+ m_productDescription = QString(desc);
+ return m_productDescription;
+ }
+ }
+ return m_productDescription;
+}
+
+void ScLcmsColorProfileImpl::closeProfile(void)
+{
+ if (m_profileHandle)
+ {
+ cmsCloseProfile(m_profileHandle);
+ m_profileHandle = NULL;
+ }
+}
\ No newline at end of file
Index: scribus/colormgmt/sccolorprofile.h
===================================================================
--- scribus/colormgmt/sccolorprofile.h (revision 0)
+++ scribus/colormgmt/sccolorprofile.h (revision 14491)
@@ -0,0 +1,48 @@
+/*
+For general Scribus (>=1.3.2) copyright and licensing information please refer
+to the COPYING file provided with the program. Following this notice may exist
+a copyright and/or license notice that predates the release of Scribus 1.3.2
+for which a new license (GPL+exception) is in place.
+*/
+
+#ifndef SCCOLORPROFILE_H
+#define SCCOLORPROFILE_H
+
+#include <QSharedPointer>
+#include <QWeakPointer>
+#include "scribusapi.h"
+#include "sccolorprofiledata.h"
+
+class SCRIBUS_API ScColorProfile
+{
+ friend class ScColorProfileCache;
+
+public:
+ ScColorProfile();
+ ScColorProfile(ScColorProfileData*);
+ ScColorProfile(const QSharedPointer<ScColorProfileData>&);
+
+ ScColorMgmtEngine& engine() { return m_data->engine(); }
+ const ScColorMgmtEngine& engine() const { return m_data->engine(); }
+
+ inline bool isNull() const { return (m_data.isNull() || m_data->isNull()); }
+ inline operator bool () const { return !isNull(); }
+
+ QString profilePath() const;
+ QString productDescription() const;
+
+ icColorSpaceSignature colorSpace() const;
+ icProfileClassSignature deviceClass() const;
+
+ const ScColorProfileData* data() const { return m_data.data(); }
+
+ bool operator==(const ScColorProfile& prof) const;
+
+protected:
+ QSharedPointer<ScColorProfileData> m_data;
+
+ QWeakPointer<ScColorProfileData> weakRef() const { return m_data.toWeakRef(); }
+ QSharedPointer<ScColorProfileData> strongRef() const { return m_data; }
+};
+
+#endif
Index: scribus/colormgmt/sccolortransformpool.cpp
===================================================================
--- scribus/colormgmt/sccolortransformpool.cpp (revision 0)
+++ scribus/colormgmt/sccolortransformpool.cpp (revision 14491)
@@ -0,0 +1,75 @@
+/*
+For general Scribus (>=1.3.2) copyright and licensing information please refer
+to the COPYING file provided with the program. Following this notice may exist
+a copyright and/or license notice that predates the release of Scribus 1.3.2
+for which a new license (GPL+exception) is in place.
+*/
+
+#include <QSharedPointer>
+#include "sccolormgmtengine.h"
+#include "sccolormgmtstructs.h"
+#include "sccolortransformpool.h"
+
+ScColorTransformPool::ScColorTransformPool(int engineID) : m_engineID(engineID)
+{
+
+}
+
+void ScColorTransformPool::clear(void)
+{
+ m_pool.clear();
+}
+
+void ScColorTransformPool::addTransform(const ScColorTransform& transform, bool force)
+{
+ // Check engine ID. If different, transform was created by another engine
+ // and we MUST NOT add it to the transform pool
+ if (m_engineID != transform.engine().engineID())
+ return;
+ ScColorTransform trans;
+ if (!force)
+ trans = findTransform(transform.transformInfo());
+ if (trans.isNull())
+ m_pool.append(transform.weakRef());
+}
+
+void ScColorTransformPool::removeTransform(const ScColorTransform& transform)
+{
+ if (m_engineID != transform.engine().engineID())
+ return;
+ m_pool.removeOne(transform.strongRef());
+}
+
+void ScColorTransformPool::removeTransform(const ScColorTransformInfo& info)
+{
+ QList< QWeakPointer<ScColorTransformData> >::Iterator it = m_pool.begin();
+ while (it != m_pool.end())
+ {
+ QSharedPointer<ScColorTransformData> ref = it->toStrongRef();
+ if ((info == ref->transformInfo()) || ref.isNull())
+ {
+ it = m_pool.erase(it);
+ continue;
+ }
+ ++it;
+ }
+}
+
+ScColorTransform ScColorTransformPool::findTransform(const ScColorTransformInfo& info) const
+{
+ ScColorTransform transform(NULL);
+ QList< QWeakPointer<ScColorTransformData> >::ConstIterator it = m_pool.begin();
+ for ( ; it != m_pool.end(); ++it)
+ {
+ QSharedPointer<ScColorTransformData> ref = it->toStrongRef();
+ if (!ref.isNull())
+ {
+ if (info == ref->transformInfo())
+ {
+ transform = ScColorTransform(ref);
+ break;
+ }
+ }
+ }
+ return transform;
+}
\ No newline at end of file
Index: scribus/colormgmt/sclcmscolorprofileimpl.h
===================================================================
--- scribus/colormgmt/sclcmscolorprofileimpl.h (revision 0)
+++ scribus/colormgmt/sclcmscolorprofileimpl.h (revision 14491)
@@ -0,0 +1,38 @@
+/*
+For general Scribus (>=1.3.2) copyright and licensing information please refer
+to the COPYING file provided with the program. Following this notice may exist
+a copyright and/or license notice that predates the release of Scribus 1.3.2
+for which a new license (GPL+exception) is in place.
+*/
+
+#ifndef SCLCMSCOLORPROFILEIMPL_H
+#define SCLCMSCOLORPROFILEIMPL_H
+
+#include <QString>
+
+#include "lcms.h"
+#include "sccolormgmtimplelem.h"
+#include "sccolorprofiledata.h"
+
+class ScLcmsColorProfileImpl : public ScColorProfileImplBase
+{
+ friend class ScLcmsColorMgmtEngineImpl;
+
+public:
+ ScLcmsColorProfileImpl(ScColorMgmtEngine& engine, cmsHPROFILE lcmsProfile);
+ virtual ~ScLcmsColorProfileImpl();
+
+ virtual bool isNull() const;
+
+ virtual icColorSpaceSignature colorSpace() const;
+ virtual icProfileClassSignature deviceClass() const;
+ virtual QString productDescription() const;
+
+protected:
+ cmsHPROFILE m_profileHandle;
+ mutable QString m_productDescription;
+
+ void closeProfile(void);
+};
+
+#endif
Index: scribus/colormgmt/CMakeLists.txt
===================================================================
--- scribus/colormgmt/CMakeLists.txt (revision 0)
+++ scribus/colormgmt/CMakeLists.txt (revision 14491)
@@ -0,0 +1,27 @@
+INCLUDE_DIRECTORIES(
+${CMAKE_SOURCE_DIR}
+${CMAKE_SOURCE_DIR}/scribus
+${LCMS_INCLUDE_DIR}
+)
+
+SET(SCRIBUS_COLORMGMT_LIB_SOURCES
+ sccolormgmtengine.cpp
+ sccolormgmtenginefactory.cpp
+ sccolormgmtimplelem.cpp
+ sccolormgmtstructs.cpp
+ sccolorprofile.cpp
+ sccolorprofilecache.cpp
+ sccolortransform.cpp
+ sccolortransformpool.cpp
+ sclcmscolormgmtengineimpl.cpp
+ sclcmscolorprofileimpl.cpp
+ sclcmscolortransformimpl.cpp
+)
+SET(SCRIBUS_COLORMGMT_LIB "scribus_colormgmt_lib")
+ADD_LIBRARY(${SCRIBUS_COLORMGMT_LIB} STATIC ${SCRIBUS_COLORMGMT_LIB_SOURCES})
+# This is a convenience library that for linkage purposes is part of Scribus's
+# main API.
+SET_TARGET_PROPERTIES(${SCRIBUS_COLORMGMT_LIB}
+ PROPERTIES
+ COMPILE_FLAGS -DCOMPILE_SCRIBUS_MAIN_APP
+ )
Index: scribus/plugins/scriptplugin/objpdffile.cpp
===================================================================
--- scribus/plugins/scriptplugin/objpdffile.cpp (revision 14490)
+++ scribus/plugins/scriptplugin/objpdffile.cpp (revision 14491)
@@ -5,7 +5,7 @@
for which a new license (GPL+exception) is in place.
*/
#include "objpdffile.h"
-#include "colormngt/sccolormngtengine.h"
+#include "colormgmt/sccolormgmtengine.h"
#include "cmdutil.h"
#include "prefsmanager.h"
#include "scribusdoc.h"
Index: scribus/cmsettings.h
===================================================================
--- scribus/cmsettings.h (revision 14490)
+++ scribus/cmsettings.h (revision 14491)
@@ -32,7 +32,7 @@
#include <QString>
class ScribusDoc;
-#include "colormngt/sccolormngtengine.h"
+#include "colormgmt/sccolormgmtengine.h"
class SCRIBUS_API CMSettings
{
Index: scribus/CMakeLists.txt
===================================================================
--- scribus/CMakeLists.txt (revision 14490)
+++ scribus/CMakeLists.txt (revision 14491)
@@ -4,7 +4,7 @@
ADD_SUBDIRECTORY(dtd)
ADD_SUBDIRECTORY(manpages)
-ADD_SUBDIRECTORY(colormngt)
+ADD_SUBDIRECTORY(colormgmt)
ADD_SUBDIRECTORY(desaxe)
ADD_SUBDIRECTORY(fonts)
ADD_SUBDIRECTORY(styles)
@@ -817,7 +817,7 @@
)
LINK_DIRECTORIES(
- ${CMAKE_CURRENT_BINARY_DIR}/colormngt
+ ${CMAKE_CURRENT_BINARY_DIR}/colormgmt
${CMAKE_CURRENT_BINARY_DIR}/desaxe
${CMAKE_CURRENT_BINARY_DIR}/fonts
${CMAKE_CURRENT_BINARY_DIR}/styles
@@ -829,7 +829,7 @@
LINK_DIRECTORIES( ${CMAKE_CURRENT_BINARY_DIR}/prc )
ENDIF (HAVE_OSG)
-SET(SCRIBUS_COLORMNGT_LIB "scribus_colormngt_lib")
+SET(SCRIBUS_COLORMGMT_LIB "scribus_colormgmt_lib")
SET(SCRIBUS_TEXT_LIB "scribus_text_lib")
SET(SCRIBUS_STYLES_LIB "scribus_styles_lib")
SET(SCRIBUS_FONTS_LIB "scribus_fonts_lib")
@@ -884,7 +884,7 @@
${SCRIBUS_UI_SOURCES}
${SCRIBUS_TEXT_SOURCES}
${SCRIBUS_STYLES_SOURCES}
- ${SCRIBUS_COLORMNGT_SOURCES}
+ ${SCRIBUS_COLORMGMT_SOURCES}
${SCRIBUS_FONTS_SOURCES}
${SCRIBUS_DESAXE_SOURCES}
${SCRIBUS_WIN32_ONLY_SOURCES}
@@ -899,7 +899,7 @@
${SCRIBUS_UI_SOURCES}
${SCRIBUS_TEXT_SOURCES}
${SCRIBUS_STYLES_SOURCES}
- ${SCRIBUS_COLORMNGT_SOURCES}
+ ${SCRIBUS_COLORMGMT_SOURCES}
${SCRIBUS_FONTS_SOURCES}
${SCRIBUS_DESAXE_SOURCES}
${SCRIBUS_WIN32_ONLY_SOURCES}
@@ -967,7 +967,7 @@
ENDIF(APPLE)
TARGET_LINK_LIBRARIES(${EXE_NAME}
- ${SCRIBUS_COLORMNGT_LIB}
+ ${SCRIBUS_COLORMGMT_LIB}
${SCRIBUS_DESAXE_LIB}
${SCRIBUS_TEXT_LIB}
${SCRIBUS_STYLES_LIB}
Index: win32/vc8/Scribus.vcproj
===================================================================
--- win32/vc8/Scribus.vcproj (revision 14490)
+++ win32/vc8/Scribus.vcproj (revision 14491)
@@ -43,7 +43,7 @@
Optimization="0"
InlineFunctionExpansion="0"
EnableIntrinsicFunctions="false"
- AdditionalIncludeDirectories="..\vc8;..\..\scribus;..\..\scribus\colormngt;..\..\scribus\fonts;..\..\scribus\text;..\..\scribus\styles;..\..\scribus\simpletreemodel;..\..\scribus\ui;"$(QT4_DIR)\include\QtCore";"$(QT4_DIR)\include\QtGui";"$(QT4_DIR)\include\QtNetwork";"$(QT4_DIR)\include\QtWebKit";"$(QT4_DIR)\include\QtXml";"$(QT4_DIR)\include";"$(QT4_DIR)\src\3rdparty\zlib";"$(LCMS_DIR)\include";"$(CAIRO_DIR)\include";"$(FREETYPE_DIR)\include";"$(LIBJPEG_DIR)\include";"$(LIBTIFF_DIR)\include";"$(PODOFO_DIR)\include""
+ AdditionalIncludeDirectories="..\vc8;..\..\scribus;..\..\scribus\colormgmt;..\..\scribus\fonts;..\..\scribus\text;..\..\scribus\styles;..\..\scribus\simpletreemodel;..\..\scribus\ui;"$(QT4_DIR)\include\QtCore";"$(QT4_DIR)\include\QtGui";"$(QT4_DIR)\include\QtNetwork";"$(QT4_DIR)\include\QtWebKit";"$(QT4_DIR)\include\QtXml";"$(QT4_DIR)\include";"$(QT4_DIR)\src\3rdparty\zlib";"$(LCMS_DIR)\include";"$(CAIRO_DIR)\include";"$(FREETYPE_DIR)\include";"$(LIBJPEG_DIR)\include";"$(LIBTIFF_DIR)\include";"$(PODOFO_DIR)\include""
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;QT_LARGEFILE_SUPPORT;QT_EDITION=QT_EDITION_DESKTOP;QT_DLL;QT_GUI_LIB;QT_CORE_LIB;QT_THREAD_SUPPORT;HAVE_CAIRO;HAVE_CONFIG_H;AVOID_WIN32_FILEIO;COMPILE_SCRIBUS_MAIN_APP;DOCDIR=\"doc/\";ICONDIR=\"icons/\";SAMPLESDIR=\"samples/\";SCRIPTSDIR=\"scripts/\";SHAREDIR=\"share/\";TEMPLATEDIR=\"templates/\";LIBDIR=\"libs/\";PLUGINDIR=\"plugins\""
IgnoreStandardIncludePath="false"
MinimalRebuild="true"
@@ -136,7 +136,7 @@
Optimization="2"
InlineFunctionExpansion="1"
OmitFramePointers="true"
- AdditionalIncludeDirectories="..\vc8;..\..\scribus;..\..\scribus\colormngt;..\..\scribus\fonts;..\..\scribus\text;..\..\scribus\styles;..\..\scribus\simpletreemodel;..\..\scribus\ui;"$(QT4_DIR)\include\QtCore";"$(QT4_DIR)\include\QtGui";"$(QT4_DIR)\include\QtNetwork";"$(QT4_DIR)\include\QtWebKit";"$(QT4_DIR)\include\QtXml";"$(QT4_DIR)\include";"$(QT4_DIR)\src\3rdparty\zlib";"$(LCMS_DIR)\include";"$(CAIRO_DIR)\include";"$(FREETYPE_DIR)\include";"$(LIBJPEG_DIR)\include";"$(LIBTIFF_DIR)\include";"$(PODOFO_DIR)\include""
+ AdditionalIncludeDirectories="..\vc8;..\..\scribus;..\..\scribus\colormgmt;..\..\scribus\fonts;..\..\scribus\text;..\..\scribus\styles;..\..\scribus\simpletreemodel;..\..\scribus\ui;"$(QT4_DIR)\include\QtCore";"$(QT4_DIR)\include\QtGui";"$(QT4_DIR)\include\QtNetwork";"$(QT4_DIR)\include\QtWebKit";"$(QT4_DIR)\include\QtXml";"$(QT4_DIR)\include";"$(QT4_DIR)\src\3rdparty\zlib";"$(LCMS_DIR)\include";"$(CAIRO_DIR)\include";"$(FREETYPE_DIR)\include";"$(LIBJPEG_DIR)\include";"$(LIBTIFF_DIR)\include";"$(PODOFO_DIR)\include""
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;QT_LARGEFILE_SUPPORT;QT_EDITION=QT_EDITION_DESKTOP;QT_DLL;QT_GUI_LIB;QT_CORE_LIB;QT_THREAD_SUPPORT;;HAVE_CAIRO;HAVE_CONFIG_H;AVOID_WIN32_FILEIO;COMPILE_SCRIBUS_MAIN_APP;DOCDIR=\"doc/\";ICONDIR=\"icons/\";SAMPLESDIR=\"samples/\";SCRIPTSDIR=\"scripts/\";SHAREDIR=\"share/\";TEMPLATEDIR=\"templates/\";LIBDIR=\"libs/\";PLUGINDIR=\"plugins\""
StringPooling="true"
RuntimeLibrary="2"
@@ -227,7 +227,7 @@
Optimization="0"
InlineFunctionExpansion="0"
EnableIntrinsicFunctions="false"
- AdditionalIncludeDirectories="..\vc8;..\..\scribus;..\..\scribus\colormngt;..\..\scribus\fonts;..\..\scribus\text;..\..\scribus\styles;..\..\scribus\simpletreemodel;..\..\scribus\ui;"$(QT4_DIR)\include\QtCore";"$(QT4_DIR)\include\QtGui";"$(QT4_DIR)\include\QtNetwork";"$(QT4_DIR)\include\QtWebKit";"$(QT4_DIR)\include\QtXml";"$(QT4_DIR)\include";"$(QT4_DIR)\src\3rdparty\zlib";"$(LCMS_DIR)\include";"$(CAIRO_DIR)\include";"$(FREETYPE_DIR)\include";"$(LIBJPEG_DIR)\include";"$(LIBTIFF_DIR)\include";"$(PODOFO_DIR)\include""
+ AdditionalIncludeDirectories="..\vc8;..\..\scribus;..\..\scribus\colormgmt;..\..\scribus\fonts;..\..\scribus\text;..\..\scribus\styles;..\..\scribus\simpletreemodel;..\..\scribus\ui;"$(QT4_DIR)\include\QtCore";"$(QT4_DIR)\include\QtGui";"$(QT4_DIR)\include\QtNetwork";"$(QT4_DIR)\include\QtWebKit";"$(QT4_DIR)\include\QtXml";"$(QT4_DIR)\include";"$(QT4_DIR)\src\3rdparty\zlib";"$(LCMS_DIR)\include";"$(CAIRO_DIR)\include";"$(FREETYPE_DIR)\include";"$(LIBJPEG_DIR)\include";"$(LIBTIFF_DIR)\include";"$(PODOFO_DIR)\include""
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;QT_LARGEFILE_SUPPORT;QT_EDITION=QT_EDITION_DESKTOP;QT_DLL;QT_GUI_LIB;QT_CORE_LIB;QT_THREAD_SUPPORT;HAVE_CONFIG_H;AVOID_WIN32_FILEIO;COMPILE_SCRIBUS_MAIN_APP;DOCDIR=\"doc/\";ICONDIR=\"icons/\";SAMPLESDIR=\"samples/\";SCRIPTSDIR=\"scripts/\";SHAREDIR=\"share/\";TEMPLATEDIR=\"templates/\";LIBDIR=\"libs/\";PLUGINDIR=\"plugins\""
IgnoreStandardIncludePath="false"
MinimalRebuild="true"
@@ -320,7 +320,7 @@
Optimization="2"
InlineFunctionExpansion="1"
OmitFramePointers="true"
- AdditionalIncludeDirectories="..\vc8;..\..\scribus;..\..\scribus\colormngt;..\..\scribus\fonts;..\..\scribus\text;..\..\scribus\styles;..\..\scribus\simpletreemodel;..\..\scribus\ui;"$(QT4_DIR)\include\QtCore";"$(QT4_DIR)\include\QtGui";"$(QT4_DIR)\include\QtNetwork";"$(QT4_DIR)\include\QtWebKit";"$(QT4_DIR)\include\QtXml";"$(QT4_DIR)\include";"$(QT4_DIR)\src\3rdparty\zlib";"$(LCMS_DIR)\include";"$(CAIRO_DIR)\include";"$(FREETYPE_DIR)\include";"$(LIBJPEG_DIR)\include";"$(LIBTIFF_DIR)\include";"$(PODOFO_DIR)\include""
+ AdditionalIncludeDirectories="..\vc8;..\..\scribus;..\..\scribus\colormgmt;..\..\scribus\fonts;..\..\scribus\text;..\..\scribus\styles;..\..\scribus\simpletreemodel;..\..\scribus\ui;"$(QT4_DIR)\include\QtCore";"$(QT4_DIR)\include\QtGui";"$(QT4_DIR)\include\QtNetwork";"$(QT4_DIR)\include\QtWebKit";"$(QT4_DIR)\include\QtXml";"$(QT4_DIR)\include";"$(QT4_DIR)\src\3rdparty\zlib";"$(LCMS_DIR)\include";"$(CAIRO_DIR)\include";"$(FREETYPE_DIR)\include";"$(LIBJPEG_DIR)\include";"$(LIBTIFF_DIR)\include";"$(PODOFO_DIR)\include""
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;QT_LARGEFILE_SUPPORT;QT_EDITION=QT_EDITION_DESKTOP;QT_DLL;QT_GUI_LIB;QT_CORE_LIB;QT_THREAD_SUPPORT;HAVE_CONFIG_H;AVOID_WIN32_FILEIO;COMPILE_SCRIBUS_MAIN_APP;DOCDIR=\"doc/\";ICONDIR=\"icons/\";SAMPLESDIR=\"samples/\";SCRIPTSDIR=\"scripts/\";SHAREDIR=\"share/\";TEMPLATEDIR=\"templates/\";LIBDIR=\"libs/\";PLUGINDIR=\"plugins\""
StringPooling="true"
RuntimeLibrary="2"
@@ -20508,107 +20508,107 @@
Name="colorMgmt"
>
<File
- RelativePath="..\..\scribus\colormngt\sccolormngtelem.h"
+ RelativePath="..\..\scribus\colormgmt\sccolormgmtelem.h"
>
</File>
<File
- RelativePath="..\..\scribus\colormngt\sccolormngtengine.cpp"
+ RelativePath="..\..\scribus\colormgmt\sccolormgmtengine.cpp"
>
</File>
<File
- RelativePath="..\..\scribus\colormngt\sccolormngtengine.h"
+ RelativePath="..\..\scribus\colormgmt\sccolormgmtengine.h"
>
</File>
<File
- RelativePath="..\..\scribus\colormngt\sccolormngtenginedata.h"
+ RelativePath="..\..\scribus\colormgmt\sccolormgmtenginedata.h"
>
</File>
<File
- RelativePath="..\..\scribus\colormngt\sccolormngtenginefactory.cpp"
+ RelativePath="..\..\scribus\colormgmt\sccolormgmtenginefactory.cpp"
>
</File>
<File
- RelativePath="..\..\scribus\colormngt\sccolormngtenginefactory.h"
+ RelativePath="..\..\scribus\colormgmt\sccolormgmtenginefactory.h"
>
</File>
<File
- RelativePath="..\..\scribus\colormngt\sccolormngtimplelem.cpp"
+ RelativePath="..\..\scribus\colormgmt\sccolormgmtimplelem.cpp"
>
</File>
<File
- RelativePath="..\..\scribus\colormngt\sccolormngtimplelem.h"
+ RelativePath="..\..\scribus\colormgmt\sccolormgmtimplelem.h"
>
</File>
<File
- RelativePath="..\..\scribus\colormngt\sccolormngtstructs.cpp"
+ RelativePath="..\..\scribus\colormgmt\sccolormgmtstructs.cpp"
>
</File>
<File
- RelativePath="..\..\scribus\colormngt\sccolormngtstructs.h"
+ RelativePath="..\..\scribus\colormgmt\sccolormgmtstructs.h"
>
</File>
<File
- RelativePath="..\..\scribus\colormngt\sccolorprofile.cpp"
+ RelativePath="..\..\scribus\colormgmt\sccolorprofile.cpp"
>
</File>
<File
- RelativePath="..\..\scribus\colormngt\sccolorprofile.h"
+ RelativePath="..\..\scribus\colormgmt\sccolorprofile.h"
>
</File>
<File
- RelativePath="..\..\scribus\colormngt\sccolorprofilecache.cpp"
+ RelativePath="..\..\scribus\colormgmt\sccolorprofilecache.cpp"
>
</File>
<File
- RelativePath="..\..\scribus\colormngt\sccolorprofilecache.h"
+ RelativePath="..\..\scribus\colormgmt\sccolorprofilecache.h"
>
</File>
<File
- RelativePath="..\..\scribus\colormngt\sccolorprofiledata.h"
+ RelativePath="..\..\scribus\colormgmt\sccolorprofiledata.h"
>
</File>
<File
- RelativePath="..\..\scribus\colormngt\sccolortransform.cpp"
+ RelativePath="..\..\scribus\colormgmt\sccolortransform.cpp"
>
</File>
<File
- RelativePath="..\..\scribus\colormngt\sccolortransform.h"
+ RelativePath="..\..\scribus\colormgmt\sccolortransform.h"
>
</File>
<File
- RelativePath="..\..\scribus\colormngt\sccolortransformdata.h"
+ RelativePath="..\..\scribus\colormgmt\sccolortransformdata.h"
>
</File>
<File
- RelativePath="..\..\scribus\colormngt\sccolortransformpool.cpp"
+ RelativePath="..\..\scribus\colormgmt\sccolortransformpool.cpp"
>
</File>
<File
- RelativePath="..\..\scribus\colormngt\sccolortransformpool.h"
+ RelativePath="..\..\scribus\colormgmt\sccolortransformpool.h"
>
</File>
<File
- RelativePath="..\..\scribus\colormngt\sclcmscolormngtengineimpl.cpp"
+ RelativePath="..\..\scribus\colormgmt\sclcmscolormgmtengineimpl.cpp"
>
</File>
<File
- RelativePath="..\..\scribus\colormngt\sclcmscolormngtengineimpl.h"
+ RelativePath="..\..\scribus\colormgmt\sclcmscolormgmtengineimpl.h"
>
</File>
<File
- RelativePath="..\..\scribus\colormngt\sclcmscolorprofileimpl.cpp"
+ RelativePath="..\..\scribus\colormgmt\sclcmscolorprofileimpl.cpp"
>
</File>
<File
- RelativePath="..\..\scribus\colormngt\sclcmscolorprofileimpl.h"
+ RelativePath="..\..\scribus\colormgmt\sclcmscolorprofileimpl.h"
>
</File>
<File
- RelativePath="..\..\scribus\colormngt\sclcmscolortransformimpl.cpp"
+ RelativePath="..\..\scribus\colormgmt\sclcmscolortransformimpl.cpp"
>
</File>
<File
- RelativePath="..\..\scribus\colormngt\sclcmscolortransformimpl.h"
+ RelativePath="..\..\scribus\colormgmt\sclcmscolortransformimpl.h"
>
</File>
</Filter>
More information about the scribus-commit
mailing list