summaryrefslogtreecommitdiffstats
path: root/scribus/colormgmt/sccolorprofilecache.cpp
blob: 19efdbd598d8d8813bbe3e03cbe081bf15dbe380 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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;
}