Krita Source Code Documentation
Loading...
Searching...
No Matches
KoResourceServerProvider.cpp
Go to the documentation of this file.
1/* This file is part of the KDE project
2
3 SPDX-FileCopyrightText: 1999 Matthias Elter <elter@kde.org>
4 SPDX-FileCopyrightText: 2003 Patrick Julien <freak@codepimps.org>
5 SPDX-FileCopyrightText: 2005 Sven Langkamp <sven.langkamp@gmail.com>
6 SPDX-FileCopyrightText: 2011 Srikanth Tiyyagura <srikanth.tulasiram@gmail.com>
7
8 SPDX-License-Identifier: LGPL-2.1-or-later
9 */
10
12
13#include <QApplication>
14#include <QDir>
15#include <QStandardPaths>
16#include <QGlobalStatic>
17
21#include "KoResourcePaths.h"
22#include "klocalizedstring.h"
23#include <iostream>
24
25using namespace std;
26
27class GradientResourceServer : public KoResourceServer<KoAbstractGradient>
28{
29public:
30
31 GradientResourceServer(const QString& type)
33 {
35 }
36
38 {
41
42 KoStopGradientSP gradient(new KoStopGradient());
43 gradient->setType(QGradient::LinearGradient);
44 gradient->setName(i18n("1. Foreground to Transparent"));
45 gradient->setFilename("Foreground to Transparent.svg");
46 stops << KoGradientStop(0.0, KoColor(Qt::black, cs), FOREGROUNDSTOP);
47 stops << KoGradientStop(1.0, KoColor(QColor(0, 0, 0, 0), cs), COLORSTOP);
48
49 gradient->setStops(stops);
50 gradient->setValid(true);
51 gradient->setPermanent(true);
52 addResource(gradient, false);
54
55 gradient.reset(new KoStopGradient());
56 gradient->setType(QGradient::LinearGradient);
57 gradient->setName(i18n("0. Foreground to Background"));
58 gradient->setFilename("Foreground to Background.svg");
59
60 stops.clear();
61 stops << KoGradientStop(0.0, KoColor(Qt::black, cs), FOREGROUNDSTOP);
62 stops << KoGradientStop(1.0, KoColor(Qt::white, cs), BACKGROUNDSTOP);
63
64 gradient->setStops(stops);
65 gradient->setValid(true);
66 gradient->setPermanent(true);
67 addResource(gradient, false);
68
69 m_foregroundToBackground = gradient;
70 }
71
72private:
73
74 friend class KoResourceBundle;
75
76 KoAbstractGradientSP createResource( const QString & filename ) {
77
78 QString fileExtension;
79 int index = filename.lastIndexOf('.');
80
81 if (index != -1)
82 fileExtension = filename.mid(index).toLower();
83
85
86 if(fileExtension == ".svg") {
87 grad.reset(new KoStopGradient(filename));
88 }
89 else if(fileExtension == ".ggr" ) {
90 grad.reset(new KoSegmentGradient(filename));
91 }
92
93 return grad;
94 }
95
98};
99
112
125
127{
128 delete d->patternServer;
129 delete d->gradientServer;
130 delete d->paletteServer;
131 delete d->svgSymbolCollectionServer;
132 delete d->gamutMaskServer;
133 delete d->stylePresetServer;
134#if defined HAVE_SEEXPR
135 delete d->seExprScriptServer;
136#endif
137
138 delete d;
139}
140
142
144{
145 return s_instance;
146}
147
149{
150 return KoResourceServerProvider::instance()->d->patternServer;
151}
152
154{
155 return KoResourceServerProvider::instance()->d->gradientServer;
156}
157
159{
160 return KoResourceServerProvider::instance()->d->paletteServer;
161}
162
164{
165 return KoResourceServerProvider::instance()->d->svgSymbolCollectionServer;
166}
167
169{
170 return KoResourceServerProvider::instance()->d->gamutMaskServer;
171}
172
174{
175 return KoResourceServerProvider::instance()->d->stylePresetServer;
176}
177
178#if defined HAVE_SEEXPR
179KoResourceServer<KisSeExprScript> *KoResourceServerProvider::seExprScriptServer()
180{
181 return KoResourceServerProvider::instance()->d->seExprScriptServer;
182}
183#endif
Q_GLOBAL_STATIC(KisStoragePluginRegistry, s_instance)
@ FOREGROUNDSTOP
@ BACKGROUNDSTOP
@ COLORSTOP
PythonPluginManager * instance
KoAbstractGradientSP m_foregroundToBackground
KoAbstractGradientSP createResource(const QString &filename)
GradientResourceServer(const QString &type)
KoAbstractGradientSP m_foregroundToTransparent
A KoResourceBundle is a zip file that contains resources, some metadata about the creator of the bund...
bool addResource(QSharedPointer< KoAbstractGradient > resource, bool save=true)
Adds an already loaded resource to the server.
const QString Palettes
const QString Symbols
const QString CssStyles
const QString GamutMasks
const QString Patterns
const QString SeExprScripts
const QString Gradients
static KoColorSpaceRegistry * instance()
const KoColorSpace * rgb8(const QString &profileName=QString())
static KoResourceServerProvider * instance()
KoResourceServer< KoCssStylePreset > * stylePresetServer
KoResourceServer< KoPattern > * patternServer
KoResourceServer< KoColorSet > * paletteServer
KoResourceServer< KoSvgSymbolCollectionResource > * svgSymbolCollectionServer
KoResourceServer< KoAbstractGradient > * gradientServer
KoResourceServer< KoGamutMask > * gamutMaskServer