Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_asl_layer_style_serializer.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2015 Dmitry Kazakov <dimula73@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
7#ifndef __KIS_ASL_LAYER_STYLE_SERIALIZER_H
8#define __KIS_ASL_LAYER_STYLE_SERIALIZER_H
9
10#include "kritaimage_export.h"
11
12class QIODevice;
13class KoPattern;
15
16#include "kis_psd_layer_style.h"
19
20class KRITAIMAGE_EXPORT KisAslLayerStyleSerializer
21{
22public:
25
26 void saveToDevice(QIODevice &device);
27 bool saveToFile(const QString& filename);
28 void readFromDevice(QIODevice &device);
29 bool readFromFile(const QString& filename);
30
31 void assignAllLayerStylesToLayers(KisNodeSP root, const QString &storageLocation);
32 static QVector<KisPSDLayerStyleSP> collectAllLayerStyles(KisNodeSP root);
33
34 QVector<KisPSDLayerStyleSP> styles() const;
35 void setStyles(const QVector<KisPSDLayerStyleSP> &styles);
36
37 QHash<QString, KoPatternSP> patterns() const;
38 QVector<KoAbstractGradientSP> gradients() const;
39 QHash<QString, KisPSDLayerStyleSP> stylesHash();
40
41
42 void registerPSDPattern(const QDomDocument &doc);
43 void readFromPSDXML(const QDomDocument &doc);
44
45 QDomDocument formXmlDocument() const;
46 QDomDocument formPsdXmlDocument() const;
47
49 return m_initialized;
50 }
51
52 bool isValid() {
53 return isInitialized() && m_isValid;
54 }
55
56 static QVector<KoResourceSP> fetchEmbeddedResources(const KisPSDLayerStyle *style);
57
58private:
59 void registerPatternObject(const KoPatternSP pattern, const QString& patternUuid);
60
61 void assignPatternObject(const QString &patternUuid, const QString &patternName, std::function<void(KoPatternSP)> setPattern);
62 void assignGradientObject(KoAbstractGradientSP gradient, std::function<void(KoAbstractGradientSP)> setGradient);
63
64 static QVector<KoPatternSP> fetchAllPatterns(const KisPSDLayerStyle *style);
65
66 void newStyleStarted(bool isPsdStructure);
67 void connectCatcherToStyle(KisPSDLayerStyle *style, const QString &prefix);
68
69private:
70 QHash<QString, KoPatternSP> m_patternsStore;
71
75 QHash<QString, KisPSDLayerStyleSP> m_stylesHash;
76 bool m_initialized {false};
77 bool m_isValid {true};
79};
80
81#endif /* __KIS_ASL_LAYER_STYLE_SERIALIZER_H */
QHash< QString, KisPSDLayerStyleSP > m_stylesHash
QHash< QString, KoPatternSP > m_patternsStore
QSharedPointer< KisLocalStrokeResources > m_localResourcesInterface
KisAslCallbackObjectCatcher m_catcher
QVector< KoAbstractGradientSP > m_gradientsStore
QVector< KisPSDLayerStyleSP > m_stylesVector
The KisResourceModel class provides the main access to resources. It is possible to filter the resour...
Write API docs here.
Definition KoPattern.h:21
The KisPSDLayerStyle class implements loading, saving and applying the PSD layer effects.