1
/* This file is part of the KDE project
2
Copyright (C) 2005 Laurent Montel <montel@kde.org>
4
This library is free software; you can redistribute it and/or
5
modify it under the terms of the GNU Library General Public
6
License as published by the Free Software Foundation; either
7
version 2 of the License, or (at your option) any later version.
9
This library is distributed in the hope that it will be useful,
10
but WITHOUT ANY WARRANTY; without even the implied warranty of
11
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
Library General Public License for more details.
14
You should have received a copy of the GNU Library General Public License
15
along with this library; see the file COPYING.LIB. If not, write to
16
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17
* Boston, MA 02110-1301, USA.
23
#include <kmessagebox.h>
25
#include <KoFilterChain.h>
27
#include <kgenericfactory.h>
28
#include <KoDocument.h>
30
#include "imageexport.h"
31
#include "kchart_part.h"
33
ImageExport::ImageExport(KoFilter *, const char *, const QStringList&)
38
ImageExport::~ImageExport()
43
KoFilter::ConversionStatus
44
ImageExport::convert(const QCString& from, const QCString& to)
46
// Check for proper conversion.
47
if ( from != "application/x-kchart" || to != exportFormat() )
48
return KoFilter::NotImplemented;
50
// Read the contents of the KChart file
51
KoStoreDevice* storeIn = m_chain->storageFile( "root", KoStore::Read );
53
KMessageBox::error( 0, i18n("Failed to read data." ),
54
i18n( "Export Error" ) );
55
return KoFilter::FileNotFound;
60
domIn.setContent( storeIn );
61
QDomElement docNode = domIn.documentElement();
63
// Read the document from the XML tree.
64
KChart::KChartPart kchartDoc;
65
if ( !kchartDoc.loadXML(0, domIn) ) {
66
KMessageBox::error( 0, i18n( "Malformed XML data." ),
67
i18n( "Export Error" ) );
68
return KoFilter::WrongFormat;
72
extraImageAttribute();
73
pixmap = QPixmap(width, height);
74
QPainter painter(&pixmap);
75
kchartDoc.paintContent(painter, pixmap.rect(), false);
76
saveImage( m_chain->outputFile());
81
#include "imageexport.moc"