filters
kis_png_import.cc00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include "kis_png_import.h"
00021
00022 #include <kgenericfactory.h>
00023
00024 #include <KoFilterChain.h>
00025
00026 #include <kis_doc.h>
00027 #include <kis_image.h>
00028 #include <kis_progress_display_interface.h>
00029 #include <kis_view.h>
00030
00031 #include "kis_png_converter.h"
00032
00033 typedef KGenericFactory<KisPNGImport, KoFilter> PNGImportFactory;
00034 K_EXPORT_COMPONENT_FACTORY(libkritapngimport, PNGImportFactory("kofficefilters"))
00035
00036 KisPNGImport::KisPNGImport(KoFilter *, const char *, const QStringList&) : KoFilter()
00037 {
00038 }
00039
00040 KisPNGImport::~KisPNGImport()
00041 {
00042 }
00043
00044 KoFilter::ConversionStatus KisPNGImport::convert(const QCString&, const QCString& to)
00045 {
00046 kdDebug(41008) << "Importing using PNGImport!\n";
00047
00048 if (to != "application/x-krita")
00049 return KoFilter::BadMimeType;
00050
00051 KisDoc * doc = dynamic_cast<KisDoc*>(m_chain -> outputDocument());
00052 KisView * view = static_cast<KisView*>(doc -> views().getFirst());
00053
00054 QString filename = m_chain -> inputFile();
00055
00056 if (!doc)
00057 return KoFilter::CreationError;
00058
00059 doc -> prepareForImport();
00060
00061
00062 if (!filename.isEmpty()) {
00063
00064 KURL url;
00065 url.setPath(filename);
00066
00067 if (url.isEmpty())
00068 return KoFilter::FileNotFound;
00069
00070 KisPNGConverter ib(doc, doc -> undoAdapter());
00071
00072 if (view != 0)
00073 view -> canvasSubject() -> progressDisplay() -> setSubject(&ib, false, true);
00074
00075 switch (ib.buildImage(url)) {
00076 case KisImageBuilder_RESULT_UNSUPPORTED:
00077 return KoFilter::NotImplemented;
00078 break;
00079 case KisImageBuilder_RESULT_INVALID_ARG:
00080 return KoFilter::BadMimeType;
00081 break;
00082 case KisImageBuilder_RESULT_NO_URI:
00083 case KisImageBuilder_RESULT_NOT_LOCAL:
00084 return KoFilter::FileNotFound;
00085 break;
00086 case KisImageBuilder_RESULT_BAD_FETCH:
00087 case KisImageBuilder_RESULT_EMPTY:
00088 return KoFilter::ParsingError;
00089 break;
00090 case KisImageBuilder_RESULT_FAILURE:
00091 return KoFilter::InternalError;
00092 break;
00093 case KisImageBuilder_RESULT_OK:
00094 doc -> setCurrentImage( ib.image());
00095 return KoFilter::OK;
00096 default:
00097 break;
00098 }
00099
00100 }
00101 return KoFilter::StorageCreationError;
00102 }
00103
00104 #include <kis_png_import.moc>
00105
|