19#include "kis_histogram_producer.h"
20#include "kis_basic_histogram_producers.h"
22KisHistogramProducerFactoryRegistry* KisHistogramProducerFactoryRegistry::m_singleton = 0;
24KisHistogramProducerFactoryRegistry::KisHistogramProducerFactoryRegistry() {
25 Q_ASSERT(KisHistogramProducerFactoryRegistry::m_singleton == 0);
28KisHistogramProducerFactoryRegistry::~KisHistogramProducerFactoryRegistry() {
31KisHistogramProducerFactoryRegistry* KisHistogramProducerFactoryRegistry::instance() {
32 if(KisHistogramProducerFactoryRegistry::m_singleton == 0) {
33 KisHistogramProducerFactoryRegistry::m_singleton
34 =
new KisHistogramProducerFactoryRegistry();
35 m_singleton->add(
new KisGenericLabHistogramProducerFactory() );
37 return KisHistogramProducerFactoryRegistry::m_singleton;
40KisIDList KisHistogramProducerFactoryRegistry::listKeysCompatibleWith(
44 TQValueList<float> preferredList;
45 storageMap::const_iterator it = m_storage.begin();
46 storageMap::const_iterator endit = m_storage.end();
49 while( it != endit ) {
50 if (it->second->isCompatibleWith(colorSpace)) {
51 float preferred = it->second->preferrednessLevelWith(colorSpace);
52 TQValueList<float>::iterator pit = preferredList.begin();
53 TQValueList<float>::iterator pend = preferredList.end();
54 KisIDList::iterator lit = list.begin();
56 while (pit != pend && preferred <= *pit) {
61 list.insert(lit, it->first);
62 preferredList.insert(pit, preferred);
A colorspace is the definition of a certain color model in Chalk.