13 #include <QApplication>
15 #include <QStringList>
17 #include <QStandardPaths>
18 #include <QGlobalStatic>
20 #include <resources/KoSegmentGradient.h>
21 #include <resources/KoStopGradient.h>
22 #include "KoColorSpaceRegistry.h"
23 #include "KoResourcePaths.h"
24 #include "klocalizedstring.h"
29 class GradientResourceServer :
public KoResourceServer<KoAbstractGradient> {
33 GradientResourceServer(
const QString& type)
34 : KoResourceServer<KoAbstractGradient>(type)
36 insertSpecialGradients();
39 void insertSpecialGradients()
41 qDebug() <<
"insertSpecialGradients broken because we don't have a list we can insert in front of anymore";
44 const KoColorSpace* cs = KoColorSpaceRegistry::instance()->rgb8();
47 KoStopGradientSP gradient(
new KoStopGradient());
48 gradient->setType(QGradient::LinearGradient);
49 gradient->setName(i18n(
"Foreground to Transparent"));
50 gradient->setFilename(
"Foreground to Transparent");
51 stops << KoGradientStop(0.0, KoColor(Qt::black, cs), FOREGROUNDSTOP);
52 stops << KoGradientStop(1.0, KoColor(
QColor(0, 0, 0, 0), cs), COLORSTOP);
54 gradient->setStops(stops);
55 gradient->setValid(
true);
56 gradient->setPermanent(
true);
57 addResource(gradient,
false);
58 m_foregroundToTransparent = gradient;
60 gradient.reset(
new KoStopGradient());
61 gradient->setType(QGradient::LinearGradient);
62 gradient->setName(i18n(
"Foreground to Background"));
63 gradient->setFilename(
"Foreground to Background");
66 stops << KoGradientStop(0.0, KoColor(Qt::black, cs), FOREGROUNDSTOP);
67 stops << KoGradientStop(1.0, KoColor(Qt::white, cs), BACKGROUNDSTOP);
69 gradient->setStops(stops);
70 gradient->setValid(
true);
71 gradient->setPermanent(
true);
72 addResource(gradient,
false);
73 m_foregroundToBackground = gradient;
78 friend class KoResourceBundle;
80 KoAbstractGradientSP createResource(
const QString & filename ) {
88 KoAbstractGradientSP grad;
90 if(fileExtension ==
".svg" || fileExtension ==
".kgr") {
91 grad.reset(
new KoStopGradient(filename));
93 else if(fileExtension ==
".ggr" ) {
94 grad.reset(
new KoSegmentGradient(filename));
100 KoAbstractGradientSP m_foregroundToTransparent;
101 KoAbstractGradientSP m_foregroundToBackground;
104 struct Q_DECL_HIDDEN KoResourceServerProvider::
Private
106 KoResourceServer<KoPattern> *patternServer;
107 KoResourceServer<KoAbstractGradient> *gradientServer;
108 KoResourceServer<KoColorSet> *paletteServer;
109 KoResourceServer<KoSvgSymbolCollectionResource> *svgSymbolCollectionServer;
110 KoResourceServer<KoGamutMask> *gamutMaskServer;
111 #if defined HAVE_SEEXPR
112 KoResourceServer<KisSeExprScript>* seExprScriptServer;
116 KoResourceServerProvider::KoResourceServerProvider() : d(new
Private)
118 d->patternServer =
new KoResourceServer<KoPattern>(ResourceType::Patterns);
119 d->gradientServer =
new GradientResourceServer(ResourceType::Gradients);
120 d->paletteServer =
new KoResourceServer<KoColorSet>(ResourceType::Palettes);
121 d->svgSymbolCollectionServer =
new KoResourceServer<KoSvgSymbolCollectionResource>(ResourceType::Symbols);
122 d->gamutMaskServer =
new KoResourceServer<KoGamutMask>(ResourceType::GamutMasks);
123 #if defined HAVE_SEEXPR
124 d->seExprScriptServer =
new KoResourceServer<KisSeExprScript>(ResourceType::SeExprScripts);
128 KoResourceServerProvider::~KoResourceServerProvider()
130 delete d->patternServer;
131 delete d->gradientServer;
132 delete d->paletteServer;
133 delete d->svgSymbolCollectionServer;
134 delete d->gamutMaskServer;
135 #if defined HAVE_SEEXPR
136 delete d->seExprScriptServer;
142 Q_GLOBAL_STATIC(KoResourceServerProvider, s_instance)
144 KoResourceServerProvider *KoResourceServerProvider::instance()
149 KoResourceServer<KoPattern> *KoResourceServerProvider::patternServer()
151 return KoResourceServerProvider::instance()->d->patternServer;
154 KoResourceServer<KoAbstractGradient> *KoResourceServerProvider::gradientServer()
156 return KoResourceServerProvider::instance()->d->gradientServer;
159 KoResourceServer<KoColorSet> *KoResourceServerProvider::paletteServer()
161 return KoResourceServerProvider::instance()->d->paletteServer;
164 KoResourceServer<KoSvgSymbolCollectionResource> *KoResourceServerProvider::svgSymbolCollectionServer()
166 return KoResourceServerProvider::instance()->d->svgSymbolCollectionServer;
169 KoResourceServer<KoGamutMask> *KoResourceServerProvider::gamutMaskServer()
171 return KoResourceServerProvider::instance()->d->gamutMaskServer;
174 #if defined HAVE_SEEXPR
175 KoResourceServer<KisSeExprScript> *KoResourceServerProvider::seExprScriptServer()
177 return KoResourceServerProvider::instance()->d->seExprScriptServer;