Krita Source Code Documentation
Loading...
Searching...
No Matches
ora_export.cc
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2007 Cyrille Berger <cberger@cberger.net>
3 *
4 * SPDX-License-Identifier: LGPL-2.0-or-later
5 */
6
7#include "ora_export.h"
8
9#include <QCheckBox>
10#include <QSlider>
11
12#include <kpluginfactory.h>
13#include <QApplication>
14#include <KoStore.h>
17#include <KoColorSpace.h>
19
20#include <KisDocument.h>
21#include <kis_image.h>
22#include <kis_node.h>
23#include <kis_group_layer.h>
24#include <kis_paint_layer.h>
25#include <kis_shape_layer.h>
26#include <KoProperties.h>
27
28#include "ora_converter.h"
29
31
32K_PLUGIN_FACTORY_WITH_JSON(ExportFactory, "krita_ora_export.json", registerPlugin<OraExport>();)
33
34OraExport::OraExport(QObject *parent, const QVariantList &) : KisImportExportFilter(parent)
35{
36}
37
41
42
44{
45 if (!node) return false;
46
47 Q_FOREACH (KisNodeSP child, node->childNodes(QStringList(), KoProperties())) {
48 if (child->inherits("KisShapeLayer")
49 || child->inherits("KisGeneratorLayer")
50 || child->inherits("KisCloneLayer")) {
51 return true;
52 }
53 else {
54 if (hasShapeLayerChild(child)) {
55 return true;
56 }
57 }
58 }
59 return false;
60}
61
63{
64 KisImageSP image = document->savingImage();
65 Q_CHECK_PTR(image);
66 OraConverter oraConverter(document);
67
68 KisImportExportErrorCode res = oraConverter.buildFile(io, image, {document->preActivatedNode()});
69 return res;
70}
71
73{
75 addCapability(KisExportCheckRegistry::instance()->get("NodeTypeCheck/KisGroupLayer")->create(KisExportCheckBase::SUPPORTED));
76 addCapability(KisExportCheckRegistry::instance()->get("NodeTypeCheck/KisAdjustmentLayer")->create(KisExportCheckBase::SUPPORTED));
80 QList<QPair<KoID, KoID> > supportedColorModels;
81 supportedColorModels << QPair<KoID, KoID>()
82 << QPair<KoID, KoID>(RGBAColorModelID, Integer8BitsColorDepthID)
83 << QPair<KoID, KoID>(RGBAColorModelID, Integer16BitsColorDepthID)
84 << QPair<KoID, KoID>(GrayAColorModelID, Integer8BitsColorDepthID)
85 << QPair<KoID, KoID>(GrayAColorModelID, Integer16BitsColorDepthID);
86 addSupportedColorModels(supportedColorModels, "OpenRaster");
87}
88
89QString OraExport::verify(const QString &fileName) const
90{
91 QString error = KisImportExportFilter::verify(fileName);
92 if (error.isEmpty()) {
95 << "mimetype"
96 << "stack.xml"
97 << "mergedimage.png");
98 }
99
100 return error;
101}
102
103
104
105#include <ora_export.moc>
106
VertexDescriptor get(PredecessorMap const &m, VertexDescriptor v)
QList< QString > QStringList
const KoID GrayAColorModelID("GRAYA", ki18n("Grayscale/Alpha"))
const KoID Integer8BitsColorDepthID("U8", ki18n("8-bit integer/channel"))
const KoID Integer16BitsColorDepthID("U16", ki18n("16-bit integer/channel"))
const KoID RGBAColorModelID("RGBA", ki18n("RGB/Alpha"))
static KisExportCheckRegistry * instance()
The base class for import and export filters.
void addSupportedColorModels(QList< QPair< KoID, KoID > > supportedColorModels, const QString &name, KisExportCheckBase::Level level=KisExportCheckBase::PARTIALLY)
virtual QString verify(const QString &fileName) const
Verify whether the given file is correct and readable.
QString verifyZiPBasedFiles(const QString &fileName, const QStringList &filesToCheck) const
void addCapability(KisExportCheckBase *capability)
KisImportExportErrorCode buildFile(QIODevice *io, KisImageSP image, vKisNodeSP activeNodes)
KisImportExportErrorCode convert(KisDocument *document, QIODevice *io, KisPropertiesConfigurationSP configuration=0) override
Definition ora_export.cc:62
void initializeCapabilities() override
Definition ora_export.cc:72
QString verify(const QString &fileName) const override
Verify whether the given file is correct and readable.
Definition ora_export.cc:89
OraExport(QObject *parent, const QVariantList &)
Definition ora_export.cc:34
~OraExport() override
Definition ora_export.cc:38
K_PLUGIN_FACTORY_WITH_JSON(KritaASCCDLFactory, "kritaasccdl.json", registerPlugin< KritaASCCDL >();) KritaASCCDL
bool hasShapeLayerChild(KisNodeSP node)
Definition ora_export.cc:43
QList< KisNodeSP > childNodes(const QStringList &nodeTypes, const KoProperties &properties) const
Definition kis_node.cpp:439
KisNodeWSP parent
Definition kis_node.cpp:86