File indexing completed on 2024-05-26 04:33:34

0001 /*
0002  *  SPDX-FileCopyrightText: 2007 Cyrille Berger <cberger@cberger.net>
0003  *
0004  *  SPDX-License-Identifier: LGPL-2.0-or-later
0005  */
0006 
0007 #include "kis_open_raster_load_context.h"
0008 
0009 #include <QDomDocument>
0010 
0011 #include <KoStore.h>
0012 #include <KoStoreDevice.h>
0013 
0014 #include <kis_image.h>
0015 #include <kis_paint_device.h>
0016 #include "kis_png_converter.h"
0017 
0018 KisOpenRasterLoadContext::KisOpenRasterLoadContext(KoStore* _store)
0019     : m_store(_store)
0020 {
0021 }
0022 
0023 KisImageSP KisOpenRasterLoadContext::loadDeviceData(const QString & filename)
0024 {
0025     if (m_store->open(filename)) {
0026         KoStoreDevice io(m_store);
0027         if (!io.open(QIODevice::ReadOnly)) {
0028             dbgFile << "Could not open for reading:" << filename;
0029             return 0;
0030         }
0031         KisPNGConverter pngConv(0);
0032         pngConv.buildImage(&io);
0033         io.close();
0034         m_store->close();
0035 
0036         return pngConv.image();
0037 
0038     }
0039     return 0;
0040 }
0041 
0042 QDomDocument KisOpenRasterLoadContext::loadStack()
0043 {
0044     m_store->open("stack.xml");
0045     KoStoreDevice io(m_store);
0046     QDomDocument doc;
0047     doc.setContent(&io, false);
0048     io.close();
0049     m_store->close();
0050     return doc;
0051 }