File indexing completed on 2024-06-23 04:27:18
0001 /* 0002 * SPDX-FileCopyrightText: 2016 Boudewijn Rempt <boud@valdyas.org> 0003 * 0004 * SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include "kra_export.h" 0008 0009 #include <QCheckBox> 0010 #include <QSlider> 0011 0012 #include <kpluginfactory.h> 0013 #include <QFileInfo> 0014 #include <QApplication> 0015 0016 #include <KisImportExportManager.h> 0017 #include <KoColorModelStandardIds.h> 0018 #include <KoColorSpace.h> 0019 0020 #include <KisExportCheckRegistry.h> 0021 #include <KisDocument.h> 0022 #include <kis_image.h> 0023 #include <kis_node.h> 0024 #include <kis_group_layer.h> 0025 #include <kis_paint_layer.h> 0026 #include <kis_shape_layer.h> 0027 #include <KoProperties.h> 0028 0029 #include "kra_converter.h" 0030 0031 class KisExternalLayer; 0032 0033 K_PLUGIN_FACTORY_WITH_JSON(ExportFactory, "krita_kra_export.json", registerPlugin<KraExport>();) 0034 0035 KraExport::KraExport(QObject *parent, const QVariantList &) : KisImportExportFilter(parent) 0036 { 0037 } 0038 0039 KraExport::~KraExport() 0040 { 0041 } 0042 0043 KisImportExportErrorCode KraExport::convert(KisDocument *document, QIODevice *io, KisPropertiesConfigurationSP /*configuration*/) 0044 { 0045 KisImageSP image = document->savingImage(); 0046 KIS_ASSERT_RECOVER_RETURN_VALUE(image, ImportExportCodes::InternalError); 0047 0048 KraConverter kraConverter(document, updater()); 0049 KisImportExportErrorCode res = kraConverter.buildFile(io, filename(), !document->isAutosaving()); 0050 dbgFile << "KraExport::convert result =" << res; 0051 return res; 0052 } 0053 0054 void KraExport::initializeCapabilities() 0055 { 0056 // Kra supports everything, by definition 0057 KisExportCheckFactory *factory = 0; 0058 Q_FOREACH(const QString &id, KisExportCheckRegistry::instance()->keys()) { 0059 factory = KisExportCheckRegistry::instance()->get(id); 0060 addCapability(factory->create(KisExportCheckBase::SUPPORTED)); 0061 } 0062 } 0063 0064 QString KraExport::verify(const QString &fileName) const 0065 { 0066 QString error = KisImportExportFilter::verify(fileName); 0067 if (error.isEmpty()) { 0068 return KisImportExportFilter::verifyZiPBasedFiles(fileName, 0069 QStringList() 0070 << "mimetype" 0071 << "documentinfo.xml" 0072 << "maindoc.xml" 0073 << "preview.png"); 0074 } 0075 return error; 0076 } 0077 0078 0079 #include <kra_export.moc> 0080