22#include <kgenericfactory.h>
23#include <KoDocument.h>
24#include <KoFilterChain.h>
28#include <kis_xcf_converter.h>
29#include <kis_progress_display_interface.h>
31typedef KGenericFactory<XCFImport, KoFilter> XCFImportFactory;
32K_EXPORT_COMPONENT_FACTORY(libchalkxcfimport, XCFImportFactory(
"kofficefilters"))
34XCFImport::XCFImport(KoFilter *, const
char *, const TQStringList&) : KoFilter()
38XCFImport::~XCFImport()
42KoFilter::ConversionStatus XCFImport::convert(
const TQCString&,
const TQCString& to)
44 kdDebug(41008) <<
"Importing using XCFImport!\n";
46 if (to !=
"application/x-chalk")
47 return KoFilter::BadMimeType;
49 KisDoc * doc =
dynamic_cast<KisDoc*
>(m_chain -> outputDocument());
50 KisView * view =
static_cast<KisView*
>(doc -> views().getFirst());
52 TQString filename = m_chain -> inputFile();
55 return KoFilter::CreationError;
57 doc -> prepareForImport();
60 if (!filename.isEmpty()) {
65 return KoFilter::FileNotFound;
67 KisXCFConverter ib(doc, doc -> undoAdapter());
69 switch (ib.buildImage(url)) {
70 case KisImageBuilder_RESULT_UNSUPPORTED:
71 return KoFilter::NotImplemented;
73 case KisImageBuilder_RESULT_INVALID_ARG:
74 return KoFilter::BadMimeType;
76 case KisImageBuilder_RESULT_NO_URI:
77 case KisImageBuilder_RESULT_NOT_LOCAL:
78 return KoFilter::FileNotFound;
80 case KisImageBuilder_RESULT_BAD_FETCH:
81 case KisImageBuilder_RESULT_EMPTY:
82 return KoFilter::ParsingError;
84 case KisImageBuilder_RESULT_FAILURE:
85 return KoFilter::InternalError;
87 case KisImageBuilder_RESULT_OK:
88 doc -> setCurrentImage( ib.image());
95 return KoFilter::StorageCreationError;
98#include <xcfimport.moc>