Krita Source Code Documentation
Loading...
Searching...
No Matches
PSDLayerStylesCheck.h
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
7#ifndef PSDLayerStyleCHECK_H
8#define PSDLayerStyleCHECK_H
9
11#include <KoID.h>
12#include <klocalizedstring.h>
13#include <kis_image.h>
14#include <KoColorSpace.h>
15#include <kis_node_visitor.h>
16#include "kis_node.h"
17#include "kis_paint_layer.h"
18#include "kis_group_layer.h"
21#include "kis_clone_layer.h"
23
25{
26public:
27
29
31 : m_count(0)
32 {
33 }
34
35 quint32 count() {
36 return m_count;
37 }
38
39 bool visit(KisNode* node) override {
40 return check(node);
41 }
42
43 bool visit(KisPaintLayer *layer) override {
44 return check(layer);
45 }
46
47 bool visit(KisGroupLayer *layer) override {
48 return check(layer);
49 }
50
51
52 bool visit(KisAdjustmentLayer *layer) override {
53 return check(layer);
54 }
55
56 bool visit(KisExternalLayer *layer) override {
57 return check(layer);
58 }
59
60 bool visit(KisCloneLayer *layer) override {
61 return check(layer);
62 }
63
64 bool visit(KisGeneratorLayer * layer) override {
65 return check(layer);
66 }
67
68 bool visit(KisFilterMask *) override {return true;}
69
70 bool visit(KisTransformMask *) override {return true;}
71
72 bool visit(KisTransparencyMask *) override {return true;}
73
74 bool visit(KisSelectionMask *) override {return true;}
75
76 bool visit(KisColorizeMask *) override {return true;}
77
78
79private:
80 bool check(KisNode * node)
81 {
82 KisLayer *layer = dynamic_cast<KisLayer*>(node);
83 if (layer) {
84 if (layer->layerStyle()) {
85 m_count++;
86 }
87 }
88 visitAll(node);
89 return true;
90 }
91
92 quint32 m_count;
93};
94
95
97{
98public:
99
100 PSDLayerStyleCheck(const QString &id, Level level, const QString &customWarning = QString())
101 : KisExportCheckBase(id, level, customWarning, true)
102 {
103 if (customWarning.isEmpty()) {
104 m_warning = i18nc("image conversion warning", "The image contains <b>layer styles</b>. The layer styles will not be saved.");
105 }
106 }
107
108 bool checkNeeded(KisImageSP image) const override
109 {
111 image->rootLayer()->accept(v);
112 return (v.count() > 0);
113 }
114
115 Level check(KisImageSP /*image*/) const override
116 {
117 return m_level;
118 }
119};
120
122{
123public:
124
126
128
129 KisExportCheckBase *create(KisExportCheckBase::Level level, const QString &customWarning) override
130 {
131 return new PSDLayerStyleCheck(id(), level, customWarning);
132 }
133
134 QString id() const override {
135 return "PSDLayerStyleCheck";
136 }
137};
138
139#endif // PSDLayerStyleCHECK_H
qreal v
The KisExportCheckBase class defines the interface of the individual checks of an export filter's cap...
virtual QString id() const
KisGroupLayerSP rootLayer() const
bool visit(KisColorizeMask *) override
bool visit(KisFilterMask *) override
bool check(KisNode *node)
bool visit(KisSelectionMask *) override
bool visit(KisAdjustmentLayer *layer) override
bool visit(KisCloneLayer *layer) override
bool visit(KisNode *node) override
bool visit(KisGeneratorLayer *layer) override
bool visit(KisGroupLayer *layer) override
bool visit(KisExternalLayer *layer) override
bool visit(KisTransparencyMask *) override
bool visit(KisPaintLayer *layer) override
bool visit(KisTransformMask *) override
virtual bool visit(KisNode *node)=0
bool visitAll(KisNode *node, bool breakOnFail=false)
QString id() const override
KisExportCheckBase * create(KisExportCheckBase::Level level, const QString &customWarning) override
Level check(KisImageSP) const override
bool checkNeeded(KisImageSP image) const override
PSDLayerStyleCheck(const QString &id, Level level, const QString &customWarning=QString())
bool accept(KisNodeVisitor &v) override
KisPSDLayerStyleSP layerStyle
Definition kis_layer.cc:171