21#include <magickimport.h>
22#include <kgenericfactory.h>
23#include <KoDocument.h>
24#include <KoFilterChain.h>
28#include <kis_image_magick_converter.h>
29#include <kis_progress_display_interface.h>
33typedef KGenericFactory<MagickImport, KoFilter> MagickImportFactory;
34K_EXPORT_COMPONENT_FACTORY(libchalkmagickimport, MagickImportFactory(
"kofficefilters"))
36MagickImport::MagickImport(KoFilter *, const
char *, const TQStringList&) : KoFilter()
40MagickImport::~MagickImport()
44KoFilter::ConversionStatus MagickImport::convert(
const TQCString&,
const TQCString& to)
46 kdDebug(41008) <<
"Importing using MagickImport!\n";
48 if (to !=
"application/x-chalk")
49 return KoFilter::BadMimeType;
51 KisDoc * doc =
dynamic_cast<KisDoc*
>(m_chain -> outputDocument());
52 KisView * view =
static_cast<KisView*
>(doc -> views().getFirst());
54 TQString filename = m_chain -> inputFile();
57 return KoFilter::CreationError;
59 doc -> prepareForImport();
62 if (!filename.isEmpty()) {
65 url.setPath(filename);
68 return KoFilter::FileNotFound;
70 KisImageMagickConverter ib(doc, doc -> undoAdapter());
73 view -> canvasSubject() -> progressDisplay() -> setSubject(&ib,
false,
true);
75 switch (ib.buildImage(url)) {
76 case KisImageBuilder_RESULT_UNSUPPORTED:
77 return KoFilter::NotImplemented;
79 case KisImageBuilder_RESULT_INVALID_ARG:
80 return KoFilter::BadMimeType;
82 case KisImageBuilder_RESULT_NO_URI:
83 case KisImageBuilder_RESULT_NOT_LOCAL:
84 return KoFilter::FileNotFound;
86 case KisImageBuilder_RESULT_BAD_FETCH:
87 case KisImageBuilder_RESULT_EMPTY:
88 return KoFilter::ParsingError;
90 case KisImageBuilder_RESULT_FAILURE:
91 return KoFilter::InternalError;
93 case KisImageBuilder_RESULT_OK:
94 doc -> setCurrentImage( ib.image());
101 return KoFilter::StorageCreationError;
104#include <magickimport.moc>