1 /*
2 Copyright (c) 2006 Boudewijn Rempt (boud@valdyas.org)
3 Copyright (C) 2007, 2010 Thomas Zander <zander@kde.org>
4 Copyright (c) 2008 Carlos Licea <carlos.licea@kdemail.net>
5 Copyright (c) 2011 Jan Hambrecht <jaham@gmx.net>
6
7 This library is free software; you can redistribute it and/or
8 modify it under the terms of the GNU Library General Public
9 License as published by the Free Software Foundation; either
10 version 2 of the License, or (at your option) any later version.
11
12 This library is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 Library General Public License for more details.
16
17 You should have received a copy of the GNU Library General Public License
18 along with this library; see the file COPYING.LIB. If not, write to
19 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20 Boston, MA 02110-1301, USA.
21 */
22 #include "KoCanvasResourceProvider.h"
23
24 #include <QVariant>
25 #include <FlakeDebug.h>
26
27 #include "KoShape.h"
28 #include "KoShapeStroke.h"
29 #include "KoResourceManager_p.h"
30 #include <KoColorSpaceRegistry.h>
31
32 class Q_DECL_HIDDEN KoCanvasResourceProvider::Private
33 {
34 public:
35 KoResourceManager manager;
36 };
37
KoCanvasResourceProvider(QObject * parent)38 KoCanvasResourceProvider::KoCanvasResourceProvider(QObject *parent)
39 : QObject(parent)
40 , d(new Private())
41 {
42 const KoColorSpace* cs = KoColorSpaceRegistry::instance()->rgb8();
43 setForegroundColor(KoColor(Qt::black, cs));
44 setBackgroundColor(KoColor(Qt::white, cs));
45 setResource(ApplicationSpeciality, NoSpecial);
46
47 connect(&d->manager, &KoResourceManager::resourceChanged,
48 this, &KoCanvasResourceProvider::canvasResourceChanged);
49 connect(&d->manager, &KoResourceManager::resourceChangeAttempted,
50 this, &KoCanvasResourceProvider::canvasResourceChangeAttempted);
51 }
52
~KoCanvasResourceProvider()53 KoCanvasResourceProvider::~KoCanvasResourceProvider()
54 {
55 delete d;
56 }
57
setResource(int key,const QVariant & value)58 void KoCanvasResourceProvider::setResource(int key, const QVariant &value)
59 {
60 d->manager.setResource(key, value);
61 }
62
resource(int key) const63 QVariant KoCanvasResourceProvider::resource(int key) const
64 {
65 return d->manager.resource(key);
66 }
67
setResource(int key,const KoColor & color)68 void KoCanvasResourceProvider::setResource(int key, const KoColor &color)
69 {
70 QVariant v;
71 v.setValue(color);
72 setResource(key, v);
73 }
74
setResource(int key,KoShape * shape)75 void KoCanvasResourceProvider::setResource(int key, KoShape *shape)
76 {
77 QVariant v;
78 v.setValue(shape);
79 setResource(key, v);
80 }
81
setResource(int key,const KoUnit & unit)82 void KoCanvasResourceProvider::setResource(int key, const KoUnit &unit)
83 {
84 QVariant v;
85 v.setValue(unit);
86 setResource(key, v);
87 }
88
koColorResource(int key) const89 KoColor KoCanvasResourceProvider::koColorResource(int key) const
90 {
91 return d->manager.koColorResource(key);
92 }
93
setForegroundColor(const KoColor & color)94 void KoCanvasResourceProvider::setForegroundColor(const KoColor &color)
95 {
96 setResource(ForegroundColor, color);
97 }
98
foregroundColor() const99 KoColor KoCanvasResourceProvider::foregroundColor() const
100 {
101 return koColorResource(ForegroundColor);
102 }
103
setBackgroundColor(const KoColor & color)104 void KoCanvasResourceProvider::setBackgroundColor(const KoColor &color)
105 {
106 setResource(BackgroundColor, color);
107 }
108
backgroundColor() const109 KoColor KoCanvasResourceProvider::backgroundColor() const
110 {
111 return koColorResource(BackgroundColor);
112 }
113
koShapeResource(int key) const114 KoShape *KoCanvasResourceProvider::koShapeResource(int key) const
115 {
116 return d->manager.koShapeResource(key);
117 }
118
unitResource(int key) const119 KoUnit KoCanvasResourceProvider::unitResource(int key) const
120 {
121 return resource(key).value<KoUnit>();
122 }
123
boolResource(int key) const124 bool KoCanvasResourceProvider::boolResource(int key) const
125 {
126 return d->manager.boolResource(key);
127 }
128
intResource(int key) const129 int KoCanvasResourceProvider::intResource(int key) const
130 {
131 return d->manager.intResource(key);
132 }
133
stringResource(int key) const134 QString KoCanvasResourceProvider::stringResource(int key) const
135 {
136 return d->manager.stringResource(key);
137 }
138
sizeResource(int key) const139 QSizeF KoCanvasResourceProvider::sizeResource(int key) const
140 {
141 return d->manager.sizeResource(key);
142 }
143
hasResource(int key) const144 bool KoCanvasResourceProvider::hasResource(int key) const
145 {
146 return d->manager.hasResource(key);
147 }
148
clearResource(int key)149 void KoCanvasResourceProvider::clearResource(int key)
150 {
151 d->manager.clearResource(key);
152 }
153
addDerivedResourceConverter(KoDerivedResourceConverterSP converter)154 void KoCanvasResourceProvider::addDerivedResourceConverter(KoDerivedResourceConverterSP converter)
155 {
156 d->manager.addDerivedResourceConverter(converter);
157 }
158
hasDerivedResourceConverter(int key)159 bool KoCanvasResourceProvider::hasDerivedResourceConverter(int key)
160 {
161 return d->manager.hasDerivedResourceConverter(key);
162 }
163
removeDerivedResourceConverter(int key)164 void KoCanvasResourceProvider::removeDerivedResourceConverter(int key)
165 {
166 d->manager.removeDerivedResourceConverter(key);
167 }
168
addResourceUpdateMediator(KoResourceUpdateMediatorSP mediator)169 void KoCanvasResourceProvider::addResourceUpdateMediator(KoResourceUpdateMediatorSP mediator)
170 {
171 d->manager.addResourceUpdateMediator(mediator);
172 }
173
hasResourceUpdateMediator(int key)174 bool KoCanvasResourceProvider::hasResourceUpdateMediator(int key)
175 {
176 return d->manager.hasResourceUpdateMediator(key);
177 }
178
removeResourceUpdateMediator(int key)179 void KoCanvasResourceProvider::removeResourceUpdateMediator(int key)
180 {
181 d->manager.removeResourceUpdateMediator(key);
182 }
183