Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_kra_save_visitor.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2002 Patrick Julien <freak@codepimps.org>
3 * SPDX-FileCopyrightText: 2005 C. Boemann <cbo@boemann.dk>
4 * SPDX-FileCopyrightText: 2007 Boudewijn Rempt <boud@valdyas.org>
5 *
6 * SPDX-License-Identifier: GPL-2.0-or-later
7 */
8#ifndef KIS_KRA_SAVE_VISITOR_H_
9#define KIS_KRA_SAVE_VISITOR_H_
10
11#include <QStringList>
12
13#include "kis_types.h"
14#include "kis_node_visitor.h"
15#include "kis_image.h"
16#include "kritalibkra_export.h"
17
19class KoStore;
20
21class KRITALIBKRA_EXPORT KisKraSaveVisitor : public KisNodeVisitor
22{
23public:
24 KisKraSaveVisitor(KoStore *store, const QString & name, QMap<const KisNode*, QString> nodeFileNames);
25 ~KisKraSaveVisitor() override;
27
28public:
29 void setExternalUri(const QString &uri);
30
31 bool visit(KisNode*) override {
32 return true;
33 }
34
35 bool visit(KisExternalLayer *) override;
36
37 bool visit(KisPaintLayer *layer) override;
38
39 bool visit(KisGroupLayer *layer) override;
40
41 bool visit(KisAdjustmentLayer* layer) override;
42
43 bool visit(KisGeneratorLayer * layer) override;
44
45 bool visit(KisCloneLayer *layer) override;
46
47 bool visit(KisFilterMask *mask) override;
48
49 bool visit(KisTransformMask *mask) override;
50
51 bool visit(KisTransparencyMask *mask) override;
52
53 bool visit(KisSelectionMask *mask) override;
54
55 bool visit(KisColorizeMask *mask) override;
56
58 QStringList errorMessages() const;
59
60private:
61
62 bool savePaintDevice(KisPaintDeviceSP device, QString location);
63
64 template<class DevicePolicy>
65 bool savePaintDeviceFrame(KisPaintDeviceSP device, QString location, DevicePolicy policy);
66
67 bool saveAnnotations(KisLayer* layer);
68 bool saveSelection(KisNode* node);
69 bool saveFilterConfiguration(KisNode* node);
70 bool saveMetaData(KisNode* node);
71 bool saveIccProfile(KisNode* node, const KoColorProfile *profile);
72 QString getLocation(KisNode* node, const QString& suffix = QString());
73 QString getLocation(const QString &filename, const QString &suffix = QString());
74
75private:
76
79 QString m_uri;
80 QString m_name;
81 QMap<const KisNode*, QString> m_nodeFileNames;
84};
85
86#endif // KIS_KRA_SAVE_VISITOR_H_
87
KisPaintDeviceWriter * m_writer
bool visit(KisNode *) override
QMap< const KisNode *, QString > m_nodeFileNames
virtual bool visit(KisNode *node)=0