Warning, file /office/calligra/filters/karbon/wmf/WmfImport.cpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 /*  This file is part of the KDE project
0002     SPDX-FileCopyrightText: 2000 S.R.Haque <shaheedhaque@hotmail.com>.
0003     SPDX-FileCopyrightText: 2007 Jan Hambrecht <jaham@gmx.net>
0004 
0005     SPDX-License-Identifier: LGPL-2.0-or-later
0006 
0007 DESCRIPTION
0008 */
0009 
0010 #include "WmfImport.h"
0011 #include "WmfImportParser.h"
0012 
0013 #include <KoFilterChain.h>
0014 #include <KoXmlWriter.h>
0015 
0016 #include <kpluginfactory.h>
0017 
0018 #include <QFile>
0019 
0020 K_PLUGIN_FACTORY_WITH_JSON(WMFImportFactory, "calligra_filter_wmf2svg.json",
0021                registerPlugin<WMFImport>();)
0022 
0023 
0024 WMFImport::WMFImport(QObject *parent, const QVariantList&) :
0025         KoFilter(parent)
0026 {
0027 }
0028 
0029 WMFImport::~WMFImport()
0030 {
0031 }
0032 
0033 KoFilter::ConversionStatus WMFImport::convert(const QByteArray& from, const QByteArray& to)
0034 {
0035     if (to != "image/svg+xml" || from != "image/x-wmf")
0036         return KoFilter::NotImplemented;
0037 
0038     QFile svgFile(m_chain->outputFile());
0039     if (!svgFile.open(QIODevice::WriteOnly)) {
0040         return KoFilter::CreationError;
0041     }
0042 
0043     KoXmlWriter svgWriter(&svgFile);
0044 
0045     WMFImportParser wmfParser(svgWriter);
0046     if (!wmfParser.load(QString(m_chain->inputFile()))) {
0047         return KoFilter::WrongFormat;
0048     }
0049 
0050     // Do the conversion!
0051     if (!wmfParser.play()) {
0052         return KoFilter::WrongFormat;
0053     }
0054 
0055     svgFile.close();
0056 
0057     return KoFilter::OK;
0058 }
0059 
0060 #include <WmfImport.moc>