[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [krita/rempt/impex-refactoring] plugins/impex/ora: Add export capabilities for ora
From: Boudewijn Rempt <boud () valdyas ! org>
Date: 2016-09-30 15:24:14
Message-ID: E1bpzfa-0006JX-9u () code ! kde ! org
[Download RAW message or body]
Git commit 05fa09c030aeedff0e91514c411a1beead65a651 by Boudewijn Rempt.
Committed on 30/09/2016 at 14:49.
Pushed by rempt into branch 'rempt/impex-refactoring'.
Add export capabilities for ora
And convert to something that works before trying to save to
png instead of refusing to save.
M +8 -19 plugins/impex/ora/ora_export.cc
M +9 -1 plugins/impex/ora/ora_save_context.cc
M +1 -0 plugins/impex/ora/ora_save_context.h
http://commits.kde.org/krita/05fa09c030aeedff0e91514c411a1beead65a651
diff --git a/plugins/impex/ora/ora_export.cc b/plugins/impex/ora/ora_export.cc
index 473195d..199a8d1 100644
--- a/plugins/impex/ora/ora_export.cc
+++ b/plugins/impex/ora/ora_export.cc
@@ -78,25 +78,6 @@ KisImportExportFilter::ConversionStatus \
OraExport::convert(KisDocument *document Q_CHECK_PTR(image);
KisPaintDeviceSP pd = image->projection();
- QStringList supportedColorModelIds;
- supportedColorModelIds << RGBAColorModelID.id() << GrayAColorModelID.id() << \
GrayColorModelID.id();
- QStringList supportedColorDepthIds;
- supportedColorDepthIds << Integer8BitsColorDepthID.id() << \
Integer16BitsColorDepthID.id();
- if (!supportedColorModelIds.contains(pd->colorSpace()->colorModelId().id()) ||
- !supportedColorDepthIds.contains(pd->colorSpace()->colorDepthId().id())) \
{
- if (!batchMode()) {
- QMessageBox::critical(0, i18nc("@title:window", "Krita OpenRaster \
Export"), i18n("Cannot export images in this colorspace or channel depth to \
OpenRaster"));
- }
- return KisImportExportFilter::UsageError;
- }
-
-
- if (hasShapeLayerChild(image->root()) && !batchMode()) {
- QMessageBox::information(0,
- i18nc("@title:window", "Krita:Warning"),
- i18n("This image contains vector, clone or fill \
layers.\nThese layers will be saved as raster layers."));
- }
-
OraConverter oraConverter(document);
KisImageBuilder_Result res;
@@ -111,6 +92,14 @@ KisImportExportFilter::ConversionStatus \
OraExport::convert(KisDocument *document
void OraExport::initializeCapabilities()
{
+ addCapability(KisExportCheckRegistry::instance()->get("MultiLayerCheck")->create(KisExportCheckBase::SUPPORTED));
+ addCapability(KisExportCheckRegistry::instance()->get("NodeTypeCheck/KisGroupLayer")->create(KisExportCheckBase::SUPPORTED));
+ addCapability(KisExportCheckRegistry::instance()->get("NodeTypeCheck/KisAdjustmentLayer")->create(KisExportCheckBase::SUPPORTED));
+ addCapability(KisExportCheckRegistry::instance()->get("sRGBProfileCheck")->create(KisExportCheckBase::SUPPORTED));
+ addCapability(KisExportCheckRegistry::instance()->get("ColorModelCheck/" + \
RGBAColorModelID.id() + "/" + \
Integer8BitsColorDepthID.id())->create(KisExportCheckBase::SUPPORTED)); + \
addCapability(KisExportCheckRegistry::instance()->get("ColorModelCheck/" + \
RGBAColorModelID.id() + "/" + \
Integer16BitsColorDepthID.id())->create(KisExportCheckBase::SUPPORTED)); + \
addCapability(KisExportCheckRegistry::instance()->get("ColorModelCheck/" + \
GrayAColorModelID.id() + "/" + \
Integer8BitsColorDepthID.id())->create(KisExportCheckBase::SUPPORTED)); + \
addCapability(KisExportCheckRegistry::instance()->get("ColorModelCheck/" + \
GrayAColorModelID.id() + "/" + \
Integer16BitsColorDepthID.id())->create(KisExportCheckBase::SUPPORTED)); }
diff --git a/plugins/impex/ora/ora_save_context.cc \
b/plugins/impex/ora/ora_save_context.cc index 37caf90..3a624b6 100644
--- a/plugins/impex/ora/ora_save_context.cc
+++ b/plugins/impex/ora/ora_save_context.cc
@@ -21,7 +21,8 @@
#include <KoStore.h>
#include <KoStoreDevice.h>
-
+#include <KoColorSpaceRegistry.h>
+#include <kundo2command.h>
#include <kis_paint_layer.h>
#include <kis_paint_device.h>
#include <kis_image.h>
@@ -38,6 +39,13 @@ OraSaveContext::OraSaveContext(KoStore* _store) : m_id(0), \
m_store(_store) QString OraSaveContext::saveDeviceData(KisPaintDeviceSP dev, \
KisMetaData::Store* metaData, const QRect &imageRect, const qreal xRes, const qreal \
yRes) {
QString filename = QString("data/layer%1.png").arg(m_id++);
+
+ if (!KisPNGConverter::isColorSpaceSupported(dev->colorSpace())) {
+ dev = new KisPaintDevice(*dev.data());
+ KUndo2Command *cmd = \
dev->convertTo(KoColorSpaceRegistry::instance()->rgb8()); + delete cmd;
+ }
+
if (KisPNGConverter::saveDeviceToStore(filename, imageRect, xRes, yRes, dev, \
m_store, metaData)) { return filename;
}
diff --git a/plugins/impex/ora/ora_save_context.h \
b/plugins/impex/ora/ora_save_context.h index 0cc3ca9..d7cd62b 100644
--- a/plugins/impex/ora/ora_save_context.h
+++ b/plugins/impex/ora/ora_save_context.h
@@ -27,6 +27,7 @@ class OraSaveContext : public KisOpenRasterSaveContext
{
public:
OraSaveContext(KoStore* _store);
+ virtual ~OraSaveContext(){}
virtual QString saveDeviceData(KisPaintDeviceSP dev, KisMetaData::Store \
*metaData, const QRect &imageRect, const qreal xRes, const qreal yRes); virtual void \
saveStack(const QDomDocument& doc); private:
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic