1 /*
2 For general Scribus (>=1.3.2) copyright and licensing information please refer
3 to the COPYING file provided with the program. Following this notice may exist
4 a copyright and/or license notice that predates the release of Scribus 1.3.2
5 for which a new license (GPL+exception) is in place.
6 */
7 /***************************************************************************
8  *   Copyright (C) 2006 by Craig Bradney                                   *
9  *   mrb@scribus.info                                                      *
10  *                                                                         *
11  *   This program is free software; you can redistribute it and/or modify  *
12  *   it under the terms of the GNU General Public License as published by  *
13  *   the Free Software Foundation; either version 2 of the License, or     *
14  *   (at your option) any later version.                                   *
15  *                                                                         *
16  *   This program is distributed in the hope that it will be useful,       *
17  *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
18  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
19  *   GNU General Public License for more details.                          *
20  *                                                                         *
21  *   You should have received a copy of the GNU General Public License     *
22  *   along with this program; if not, write to the                         *
23  *   Free Software Foundation, Inc.,                                       *
24  *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.             *
25  ***************************************************************************/
26 
27 #include "cmsettings.h"
28 #include "scribusdoc.h"
29 
CMSettings(ScribusDoc * doc,const QString & profileName,eRenderIntent intent)30 CMSettings::CMSettings(ScribusDoc* doc, const QString& profileName, eRenderIntent intent) :
31 	m_Doc(doc),
32 	m_ProfileName(profileName),
33 	m_Intent(intent)
34 {
35 }
36 
37 CMSettings::~CMSettings() = default;
38 
useColorManagement() const39 bool CMSettings::useColorManagement() const
40 {
41 	if (m_Doc)
42 		return (m_Doc->HasCMS && m_colorManagementAllowed);
43 	return false;
44 }
45 
defaultMonitorProfile() const46 QString CMSettings::defaultMonitorProfile() const
47 {
48 	if (m_Doc)
49 		return m_Doc->cmsSettings().DefaultMonitorProfile;
50 	return QString();
51 }
52 
defaultPrinterProfile() const53 QString CMSettings::defaultPrinterProfile() const
54 {
55 	if (m_Doc)
56 		return m_Doc->cmsSettings().DefaultPrinterProfile;
57 	return QString();
58 }
59 
defaultImageRGBProfile() const60 QString CMSettings::defaultImageRGBProfile() const
61 {
62 	if (m_Doc)
63 		return m_Doc->cmsSettings().DefaultImageRGBProfile;
64 	return QString();
65 }
66 
defaultImageCMYKProfile() const67 QString CMSettings::defaultImageCMYKProfile() const
68 {
69 	if (m_Doc)
70 		return m_Doc->cmsSettings().DefaultImageCMYKProfile;
71 	return QString();
72 }
73 
defaultSolidColorRGBProfile() const74 QString CMSettings::defaultSolidColorRGBProfile() const
75 {
76 	if (m_Doc)
77 		return m_Doc->cmsSettings().DefaultSolidColorRGBProfile;
78 	return QString();
79 }
80 
defaultSolidColorCMYKProfile() const81 QString CMSettings::defaultSolidColorCMYKProfile() const
82 {
83 	if (m_Doc)
84 		return m_Doc->cmsSettings().DefaultSolidColorCMYKProfile;
85 	return QString();
86 }
87 
colorRenderingIntent() const88 eRenderIntent CMSettings::colorRenderingIntent() const
89 {
90 	if (m_Doc)
91 		return m_Doc->IntentColors;
92 	return Intent_Relative_Colorimetric; // Use relative colorimetric by default
93 }
94 
imageRenderingIntent() const95 eRenderIntent CMSettings::imageRenderingIntent() const
96 {
97 	if (m_Doc)
98 		return m_Doc->IntentImages;
99 	return Intent_Perceptual; // Use perceptual by default
100 }
101 
useBlackPoint() const102 bool CMSettings::useBlackPoint() const
103 {
104 	if (m_Doc)
105 		return m_Doc->cmsSettings().BlackPoint;
106 	return false;
107 }
108 
doSoftProofing() const109 bool CMSettings::doSoftProofing() const
110 {
111 	if (m_Doc)
112 		return (m_Doc->cmsSettings().SoftProofOn && m_softProofingAllowed);
113 	return false;
114 }
115 
doGamutCheck() const116 bool CMSettings::doGamutCheck() const
117 {
118 	if (m_Doc)
119 		return (m_Doc->cmsSettings().GamutCheck && m_softProofingAllowed);
120 	return false;
121 }
122 
monitorProfile() const123 ScColorProfile CMSettings::monitorProfile() const
124 {
125 	if (m_Doc)
126 		return m_Doc->DocDisplayProf;
127 	return ScColorProfile();
128 }
129 
printerProfile() const130 ScColorProfile CMSettings::printerProfile() const
131 {
132 	if (m_Doc)
133 		return m_Doc->DocPrinterProf;
134 	return ScColorProfile();
135 }
136 
outputProfile() const137 ScColorProfile CMSettings::outputProfile() const
138 {
139 	return m_outputProfile;
140 }
141 
rgbColorDisplayTransform() const142 ScColorTransform CMSettings::rgbColorDisplayTransform() const  // stdTransRGBMonG
143 {
144 	if (m_Doc)
145 		return m_Doc->stdTransRGBMon;
146 	return ScColorTransform();
147 }
148 
rgbColorProofingTransform() const149 ScColorTransform CMSettings::rgbColorProofingTransform() const  // stdProofG
150 {
151 	if (m_Doc)
152 		return m_Doc->stdProof;
153 	return ScColorTransform();
154 }
155 
rgbImageDisplayTransform() const156 ScColorTransform CMSettings::rgbImageDisplayTransform() const   // stdTransImgG
157 {
158 	if (m_Doc)
159 		return m_Doc->stdTransImg;
160 	return ScColorTransform();
161 }
162 
rgbImageProofingTransform() const163 ScColorTransform CMSettings::rgbImageProofingTransform() const  // stdProofImgG
164 {
165 	if (m_Doc)
166 		return m_Doc->stdProofImg;
167 	return ScColorTransform();
168 }
169 
rgbToCymkColorTransform() const170 ScColorTransform CMSettings::rgbToCymkColorTransform() const // stdTransCMYKG
171 {
172 	if (m_Doc)
173 		return m_Doc->stdTransCMYK;
174 	return ScColorTransform();
175 }
176 
rgbGamutCheckTransform() const177 ScColorTransform CMSettings::rgbGamutCheckTransform() const // stdProofGCG
178 {
179 	if (m_Doc)
180 		return m_Doc->stdProofGC;
181 	return ScColorTransform();
182 }
183 
cmykColorDisplayTransform() const184 ScColorTransform CMSettings::cmykColorDisplayTransform() const // stdTransCMYKMonG
185 {
186 	if (m_Doc)
187 		return m_Doc->stdTransCMYKMon;
188 	return ScColorTransform();
189 }
190 
cmykColorProofingTransform() const191 ScColorTransform CMSettings::cmykColorProofingTransform() const // stdProofCMYKG
192 {
193 	if (m_Doc)
194 		return m_Doc->stdProofCMYK;
195 	return ScColorTransform();
196 }
197 
cmykImageProofingTransform() const198 ScColorTransform CMSettings::cmykImageProofingTransform() const // stdProofImgCMYK
199 {
200 	if (m_Doc)
201 		return m_Doc->stdProofImgCMYK;
202 	return ScColorTransform();
203 }
204 
cmykToRgbColorTransform() const205 ScColorTransform CMSettings::cmykToRgbColorTransform() const  // stdTransRGBG
206 {
207 	if (m_Doc)
208 		return m_Doc->stdTransRGB;
209 	return ScColorTransform();
210 }
211 
cmykGamutCheckTransform() const212 ScColorTransform CMSettings::cmykGamutCheckTransform() const //stdProofCMYKGCG
213 {
214 	if (m_Doc)
215 		return m_Doc->stdProofCMYKGC;
216 	return ScColorTransform();
217 }
218