Krita Source Code Documentation
Loading...
Searching...
No Matches
KisExportCheckRegistry.cpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2016 Boudewijn Rempt <boud@valdyas.org>
3 *
4 * SPDX-License-Identifier: LGPL-2.0-or-later
5 */
6
8#include <KoID.h>
9#include <klocalizedstring.h>
10#include <kis_image.h>
11#include <KoColorSpace.h>
15
16#include <AnimationCheck.h>
17#include <ColorModelCheck.h>
20#include <CompositionsCheck.h>
21#include <ExifCheck.h>
22#include <FillLayerTypeCheck.h>
23#include <HdrMetaDataCheck.h>
24#include <ImageSizeCheck.h>
26#include <LayerOpacityCheck.h>
27#include <MultiLayerCheck.h>
29#include <NodeTypeCheck.h>
30#include <PSDLayerStylesCheck.h>
31#include <sRGBProfileCheck.h>
32#include <ShapeLayerTypeCheck.h>
33
34#include <QGlobalStatic>
35
37
39{
40 KisExportCheckFactory *chkFactory = 0;
41
42 // Multilayer check
43 chkFactory = new MultiLayerCheckFactory();
44 add(chkFactory->id(), chkFactory);
45
46 // Multi transparency mask check
47 chkFactory = new MultiTransparencyMaskCheckFactory();
48 add(chkFactory->id(), chkFactory);
49
50 // Animation check
51 chkFactory = new AnimationCheckFactory();
52 add(chkFactory->id(), chkFactory);
53
54 // Compositions
55 chkFactory = new CompositionsCheckFactory();
56 add(chkFactory->id(), chkFactory);
57
58 // Layer styles
59 chkFactory = new PSDLayerStyleCheckFactory();
60 add(chkFactory->id(), chkFactory);
61
62 // Check the layers for the presence of exiv info: note this is also
63 // done for multilayer images even though jpeg, which supports exiv,
64 // only can handle one layer.
65 chkFactory = new ExifCheckFactory();
66 add(chkFactory->id(), chkFactory);
67
68 // Check for saving exiv info in multi layered images.
69 // This is specific to TIFF, which treats Exif as part of the file format itself.
70 chkFactory = new TiffExifCheckFactory();
71 add(chkFactory->id(), chkFactory);
72
73 // Check whether the image is sRGB
74 chkFactory = new sRGBProfileCheckFactory();
75 add(chkFactory->id(), chkFactory);
76
77 // Image size
78 chkFactory = new ImageSizeCheckFactory();
79 add(chkFactory->id(), chkFactory);
80
81 // Do all layer have the image colorspace
82 chkFactory = new ColorModelHomogenousCheckFactory();
83 add(chkFactory->id(), chkFactory);
84
85 chkFactory = new IntegralFrameDurationCheckFactory();
86 add(chkFactory->id(), chkFactory);
87
88 chkFactory = new LayerOpacityCheckFactory();
89 add(chkFactory->id(), chkFactory);
90
91 chkFactory = new HdrMetaDataCheckFactory();
92 add(chkFactory->id(), chkFactory);
93
95 Q_FOREACH(const KoID &colorModelID, allColorModels) {
97 Q_FOREACH(const KoID &colorDepthID, allColorDepths) {
98
99 Q_ASSERT(!colorModelID.name().isEmpty());
100 Q_ASSERT(!colorDepthID.name().isEmpty());
101
102 // Per layer color model/channel depth checks
103 chkFactory = new ColorModelPerLayerCheckFactory(colorModelID, colorDepthID);
104 add(chkFactory->id(), chkFactory);
105
106 // Image color model/channel depth checks
107 chkFactory = new ColorModelCheckFactory(colorModelID, colorDepthID);
108 add(chkFactory->id(), chkFactory);
109 }
110 }
111
112 // Node type checks
113 chkFactory = new NodeTypeCheckFactory("KisCloneLayer", i18n("Clone Layer"));
114 add(chkFactory->id(), chkFactory);
115 chkFactory = new NodeTypeCheckFactory("KisGroupLayer", i18nc("A group of layers", "Group"));
116 add(chkFactory->id(), chkFactory);
117 chkFactory = new NodeTypeCheckFactory("KisFileLayer", i18n("File Layer"));
118 add(chkFactory->id(), chkFactory);
119 chkFactory = new NodeTypeCheckFactory("KisShapeLayer", i18n("Vector Layer"));
120 add(chkFactory->id(), chkFactory);
121 chkFactory = new NodeTypeCheckFactory("KisAdjustmentLayer", i18n("Filter Layer"));
122 add(chkFactory->id(), chkFactory);
123 chkFactory = new NodeTypeCheckFactory("KisGeneratorLayer", i18n("Generator Layer"));
124 add(chkFactory->id(), chkFactory);
125 chkFactory = new NodeTypeCheckFactory("KisColorizeMask", i18n("Colorize Mask"));
126 add(chkFactory->id(), chkFactory);
127 chkFactory = new NodeTypeCheckFactory("KisFilterMask", i18n("Filter Mask"));
128 add(chkFactory->id(), chkFactory);
129 chkFactory = new NodeTypeCheckFactory("KisTransformMask", i18n("Transform Mask"));
130 add(chkFactory->id(), chkFactory);
131 chkFactory = new NodeTypeCheckFactory("KisTransparencyMask", i18n("Transparency Mask"));
132 add(chkFactory->id(), chkFactory);
133 chkFactory = new NodeTypeCheckFactory("KisSelectionMask", i18n("Selection Mask"));
134 add(chkFactory->id(), chkFactory);
135
136 // Fill layer/generator types.
137 for (QString generatorId : KisGeneratorRegistry::instance()->keys()) {
138 chkFactory = new FillLayerTypeCheckFactory(generatorId);
139 add(chkFactory->id(), chkFactory);
140 }
141
142 // Vector shapes
143 chkFactory = new ShapeLayerTypeCheckFactory("KoPathShape");
144 add(chkFactory->id(), chkFactory);
145 chkFactory = new ShapeLayerTypeCheckFactory("KoPathShape", "RectangleShape");
146 add(chkFactory->id(), chkFactory);
147 chkFactory = new ShapeLayerTypeCheckFactory("KoPathShape", "EllipseShape");
148 add(chkFactory->id(), chkFactory);
149 chkFactory = new ShapeLayerTypeCheckFactory("KoPathShape", "StarShape");
150 add(chkFactory->id(), chkFactory);
151 chkFactory = new ShapeLayerTypeCheckFactory("KoPathShape", "SpiralShape");
152 add(chkFactory->id(), chkFactory);
153 chkFactory = new ShapeLayerTypeCheckFactory("ImageShape");
154 add(chkFactory->id(), chkFactory);
155 chkFactory = new ShapeLayerTypeCheckFactory("KoShapeGroup");
156 add(chkFactory->id(), chkFactory);
157 chkFactory = new ShapeLayerTypeCheckFactory("KoSvgTextShapeID");
158 add(chkFactory->id(), chkFactory);
159}
160
165
166KisExportCheckRegistry *KisExportCheckRegistry ::instance()
167{
168 return s_instance;
169}
170
Q_GLOBAL_STATIC(KisStoragePluginRegistry, s_instance)
virtual QString id() const =0
static KisGeneratorRegistry * instance()
QList< KisExportCheckFactory * > values() const
QList< QString > keys() const
Definition KoID.h:30
QString name() const
Definition KoID.cpp:68
QString id() const
Definition KoID.cpp:63
QList< KoID > colorDepthList(const KoID &colorModelId, ColorSpaceListVisibility option) const
static KoColorSpaceRegistry * instance()
QList< KoID > colorModelsList(ColorSpaceListVisibility option) const
@ AllColorSpaces
All color space even those not visible to the user.