File indexing completed on 2024-06-09 04:27:39
0001 /* 0002 * SPDX-FileCopyrightText: 2016 Boudewijn Rempt <boud@valdyas.org> 0003 * 0004 * SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include "krz_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 #include <kis_config.h> 0029 #include "kra_converter.h" 0030 0031 class KisExternalLayer; 0032 0033 K_PLUGIN_FACTORY_WITH_JSON(KrzExportFactory, "krita_krz_export.json", registerPlugin<KrzExport>();) 0034 0035 KrzExport::KrzExport(QObject *parent, const QVariantList &) 0036 : KisImportExportFilter(parent) 0037 { 0038 } 0039 0040 KrzExport::~KrzExport() 0041 { 0042 } 0043 0044 KisImportExportErrorCode KrzExport::convert(KisDocument *document, QIODevice *io, KisPropertiesConfigurationSP /*configuration*/) 0045 { 0046 KisImageSP image = document->savingImage(); 0047 KIS_ASSERT_RECOVER_RETURN_VALUE(image, ImportExportCodes::InternalError); 0048 0049 KisConfig cfg(true); 0050 bool compress = cfg.compressKra(); 0051 cfg.setCompressKra(true); 0052 KraConverter krzConverter(document, updater()); 0053 KisImportExportErrorCode res = krzConverter.buildFile(io, filename(), false); 0054 cfg.setCompressKra(compress); 0055 dbgFile << "KrzExport::convert result =" << res; 0056 return res; 0057 } 0058 0059 void KrzExport::initializeCapabilities() 0060 { 0061 // Kra supports everything, by definition 0062 KisExportCheckFactory *factory = 0; 0063 Q_FOREACH(const QString &id, KisExportCheckRegistry::instance()->keys()) { 0064 factory = KisExportCheckRegistry::instance()->get(id); 0065 addCapability(factory->create(KisExportCheckBase::SUPPORTED)); 0066 } 0067 } 0068 0069 QString KrzExport::verify(const QString &fileName) const 0070 { 0071 QString error = KisImportExportFilter::verify(fileName); 0072 if (error.isEmpty()) { 0073 return KisImportExportFilter::verifyZiPBasedFiles(fileName, 0074 QStringList() 0075 << "mimetype" 0076 << "documentinfo.xml" 0077 << "maindoc.xml" 0078 << "preview.png"); 0079 } 0080 return error; 0081 } 0082 0083 0084 #include <krz_export.moc> 0085