diff options
Diffstat (limited to 'filters/karbon/ai/aiimport.cpp')
-rw-r--r-- | filters/karbon/ai/aiimport.cpp | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/filters/karbon/ai/aiimport.cpp b/filters/karbon/ai/aiimport.cpp new file mode 100644 index 000000000..0af2cc939 --- /dev/null +++ b/filters/karbon/ai/aiimport.cpp @@ -0,0 +1,101 @@ +/* This file is part of the KDE project + Copyright (C) 2002, Dirk Schönberger <dirk.schoenberger@sz-online.de> + + 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 <tqdom.h> +#include <tqcstring.h> +#include <tqfile.h> +#include <tqstring.h> + +#include <kgenericfactory.h> +#include <KoFilterChain.h> +#include <KoStore.h> + +#include <kdebug.h> + +#include "aiimport.h" +#include "karbonaiparserbase.h" + +class AiImportFactory : KGenericFactory<AiImport, KoFilter> +{ +public: + AiImportFactory( void ) + : KGenericFactory<AiImport, KoFilter>( "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" + + + |