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 <ImageSizeCheck.h>
25#include <LayerOpacityCheck.h>
26#include <MultiLayerCheck.h>
28#include <NodeTypeCheck.h>
29#include <PSDLayerStylesCheck.h>
30#include <sRGBProfileCheck.h>
31#include <ShapeLayerTypeCheck.h>
32
33#include <QGlobalStatic>
34
36
38{
39 KisExportCheckFactory *chkFactory = 0;
40
41 // Multilayer check
42 chkFactory = new MultiLayerCheckFactory();
43 add(chkFactory->id(), chkFactory);
44
45 // Multi transparency mask check
46 chkFactory = new MultiTransparencyMaskCheckFactory();
47 add(chkFactory->id(), chkFactory);
48
49 // Animation check
50 chkFactory = new AnimationCheckFactory();
51 add(chkFactory->id(), chkFactory);
52
53 // Compositions
54 chkFactory = new CompositionsCheckFactory();
55 add(chkFactory->id(), chkFactory);
56
57 // Layer styles
58 chkFactory = new PSDLayerStyleCheckFactory();
59 add(chkFactory->id(), chkFactory);
60
61 // Check the layers for the presence of exiv info: note this is also
62 // done for multilayer images even though jpeg, which supports exiv,
63 // only can handle one layer.
64 chkFactory = new ExifCheckFactory();
65 add(chkFactory->id(), chkFactory);
66
67 // Check for saving exiv info in multi layered images.
68 // This is specific to TIFF, which treats Exif as part of the file format itself.
69 chkFactory = new TiffExifCheckFactory();
70 add(chkFactory->id(), chkFactory);
71
72 // Check whether the image is sRGB
73 chkFactory = new sRGBProfileCheckFactory();
74 add(chkFactory->id(), chkFactory);
75
76 // Image size
77 chkFactory = new ImageSizeCheckFactory();
78 add(chkFactory->id(), chkFactory);
79
80 // Do all layer have the image colorspace
81 chkFactory = new ColorModelHomogenousCheckFactory();
82 add(chkFactory->id(), chkFactory);
83
84 chkFactory = new IntegralFrameDurationCheckFactory();
85 add(chkFactory->id(), chkFactory);
86
87 chkFactory = new LayerOpacityCheckFactory();
88 add(chkFactory->id(), chkFactory);
89
91 Q_FOREACH(const KoID &colorModelID, allColorModels) {
93 Q_FOREACH(const KoID &colorDepthID, allColorDepths) {
94
95 Q_ASSERT(!colorModelID.name().isEmpty());
96 Q_ASSERT(!colorDepthID.name().isEmpty());
97
98 // Per layer color model/channel depth checks
99 chkFactory = new ColorModelPerLayerCheckFactory(colorModelID, colorDepthID);
100 add(chkFactory->id(), chkFactory);
101
102 // Image color model/channel depth checks
103 chkFactory = new ColorModelCheckFactory(colorModelID, colorDepthID);
104 add(chkFactory->id(), chkFactory);
105 }
106 }
107
108 // Node type checks
109 chkFactory = new NodeTypeCheckFactory("KisCloneLayer", i18n("Clone Layer"));
110 add(chkFactory->id(), chkFactory);
111 chkFactory = new NodeTypeCheckFactory("KisGroupLayer", i18nc("A group of layers", "Group"));
112 add(chkFactory->id(), chkFactory);
113 chkFactory = new NodeTypeCheckFactory("KisFileLayer", i18n("File Layer"));
114 add(chkFactory->id(), chkFactory);
115 chkFactory = new NodeTypeCheckFactory("KisShapeLayer", i18n("Vector Layer"));
116 add(chkFactory->id(), chkFactory);
117 chkFactory = new NodeTypeCheckFactory("KisAdjustmentLayer", i18n("Filter Layer"));
118 add(chkFactory->id(), chkFactory);
119 chkFactory = new NodeTypeCheckFactory("KisGeneratorLayer", i18n("Generator Layer"));
120 add(chkFactory->id(), chkFactory);
121 chkFactory = new NodeTypeCheckFactory("KisColorizeMask", i18n("Colorize Mask"));
122 add(chkFactory->id(), chkFactory);
123 chkFactory = new NodeTypeCheckFactory("KisFilterMask", i18n("Filter Mask"));
124 add(chkFactory->id(), chkFactory);
125 chkFactory = new NodeTypeCheckFactory("KisTransformMask", i18n("Transform Mask"));
126 add(chkFactory->id(), chkFactory);
127 chkFactory = new NodeTypeCheckFactory("KisTransparencyMask", i18n("Transparency Mask"));
128 add(chkFactory->id(), chkFactory);
129 chkFactory = new NodeTypeCheckFactory("KisSelectionMask", i18n("Selection Mask"));
130 add(chkFactory->id(), chkFactory);
131
132 // Fill layer/generator types.
133 for (QString generatorId : KisGeneratorRegistry::instance()->keys()) {
134 chkFactory = new FillLayerTypeCheckFactory(generatorId);
135 add(chkFactory->id(), chkFactory);
136 }
137
138 // Vector shapes
139 chkFactory = new ShapeLayerTypeCheckFactory("KoPathShape");
140 add(chkFactory->id(), chkFactory);
141 chkFactory = new ShapeLayerTypeCheckFactory("KoPathShape", "RectangleShape");
142 add(chkFactory->id(), chkFactory);
143 chkFactory = new ShapeLayerTypeCheckFactory("KoPathShape", "EllipseShape");
144 add(chkFactory->id(), chkFactory);
145 chkFactory = new ShapeLayerTypeCheckFactory("KoPathShape", "StarShape");
146 add(chkFactory->id(), chkFactory);
147 chkFactory = new ShapeLayerTypeCheckFactory("KoPathShape", "SpiralShape");
148 add(chkFactory->id(), chkFactory);
149 chkFactory = new ShapeLayerTypeCheckFactory("ImageShape");
150 add(chkFactory->id(), chkFactory);
151 chkFactory = new ShapeLayerTypeCheckFactory("KoShapeGroup");
152 add(chkFactory->id(), chkFactory);
153 chkFactory = new ShapeLayerTypeCheckFactory("KoSvgTextShapeID");
154 add(chkFactory->id(), chkFactory);
155}
156
161
162KisExportCheckRegistry *KisExportCheckRegistry ::instance()
163{
164 return s_instance;
165}
166
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.