File indexing completed on 2024-06-16 04:17:02
0001 /* 0002 * SPDX-FileCopyrightText: 2016 Boudewijn Rempt <boud@valdyas.org> 0003 * 0004 * SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #ifndef _KRA_CONVERTER_H_ 0008 #define _KRA_CONVERTER_H_ 0009 0010 #include <QDomDocument> 0011 #include <QObject> 0012 #include <QPointer> 0013 0014 #include <KisImportExportErrorCode.h> 0015 #include <KoProgressUpdater.h> 0016 #include <KoStore.h> 0017 #include <KoUpdater.h> 0018 #include <kis_kra_loader.h> 0019 #include <kis_kra_saver.h> 0020 #include <kis_types.h> 0021 0022 #include "kritalibkra_export.h" 0023 0024 class KisDocument; 0025 0026 class KRITALIBKRA_EXPORT KraConverter : public QObject 0027 { 0028 Q_OBJECT 0029 0030 public: 0031 0032 KraConverter(KisDocument *doc); 0033 KraConverter(KisDocument *doc, QPointer<KoUpdater> updater); 0034 ~KraConverter() override; 0035 0036 KisImportExportErrorCode buildImage(QIODevice *io); 0037 KisImportExportErrorCode buildFile(QIODevice *io, const QString &filename, bool addMergedImage = true); 0038 /** 0039 * Retrieve the constructed image 0040 */ 0041 KisImageSP image(); 0042 vKisNodeSP activeNodes(); 0043 QList<KisPaintingAssistantSP> assistants(); 0044 StoryboardItemList storyboardItemList(); 0045 StoryboardCommentList storyboardCommentList(); 0046 0047 public Q_SLOTS: 0048 0049 virtual void cancel(); 0050 0051 private: 0052 0053 KisImportExportErrorCode saveRootDocuments(KoStore *store); 0054 bool saveToStream(QIODevice *dev); 0055 QDomDocument createDomDocument(); 0056 KisImportExportErrorCode savePreview(KoStore *store); 0057 KisImportExportErrorCode oldLoadAndParse(KoStore *store, const QString &filename, QDomDocument &xmldoc); 0058 KisImportExportErrorCode loadXML(const QDomDocument &doc, KoStore *store); 0059 bool completeLoading(KoStore *store); 0060 0061 void setProgress(int progress); 0062 0063 KisDocument *m_doc {0}; 0064 KisImageSP m_image; 0065 0066 vKisNodeSP m_activeNodes; 0067 QList<KisPaintingAssistantSP> m_assistants; 0068 StoryboardItemList m_storyboardItemList; 0069 StoryboardCommentList m_storyboardCommentList; 0070 bool m_stop {false}; 0071 0072 KoStore *m_store {0}; 0073 KisKraSaver *m_kraSaver {0}; 0074 KisKraLoader *m_kraLoader {0}; 0075 QPointer<KoUpdater> m_updater; 0076 }; 0077 0078 #endif