[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