/* This file is part of the KDE project Copyright (C) 2002, Dirk Schönberger This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ #include #include #include #include #include #include #include #include #include "aiimport.h" #include "karbonaiparserbase.h" class AiImportFactory : KGenericFactory { public: AiImportFactory( void ) : KGenericFactory( "karbonaiimport" ) {} protected: virtual void setupTranslations( void ) { TDEGlobal::locale()->insertCatalogue( "kofficefilters" ); } }; K_EXPORT_COMPONENT_FACTORY( libkarbonaiimport, AiImportFactory() ) AiImport::AiImport( KoFilter*, const char*, const TQStringList& ) : KoFilter() { } AiImport::~AiImport() { } KoFilter::ConversionStatus AiImport::convert( const TQCString& from, const TQCString& to ) { if ( from != "application/illustrator" || to != "application/x-karbon" ) { return KoFilter::NotImplemented; } TQFile fileIn( m_chain->inputFile() ); if( !fileIn.open( IO_ReadOnly ) ) { fileIn.close(); return KoFilter::FileNotFound; } TQDomDocument doc ("DOC"); KarbonAIParserBase parser; if (!parser.parse (*TQT_TQIODEVICE(&fileIn), doc)) { fileIn.close(); return KoFilter::CreationError; } TQString result = doc.toString(); kdDebug() << result << endl; KoStoreDevice* storeOut = m_chain->storageFile( "root", KoStore::Write ); if( !storeOut ) { fileIn.close(); return KoFilter::StorageCreationError; } TQCString cStr = result.latin1(); storeOut->writeBlock( cStr, cStr.size() - 1 ); return KoFilter::OK; } #include "aiimport.moc"