filters
kis_image_magick_converter.h00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef KIS_IMAGE_MAGICK_CONVERTER_H_
00020 #define KIS_IMAGE_MAGICK_CONVERTER_H_
00021
00022 #include <qobject.h>
00023 #include <qvaluevector.h>
00024
00025 #include <kio/job.h>
00026
00027 #include "kis_types.h"
00028 #include "kis_global.h"
00029 #include "kis_progress_subject.h"
00030
00031 class QString;
00032 class KURL;
00033 class KisDoc;
00034 class KisNameServer;
00035 class KisUndoAdapter;
00039 enum KisImageBuilder_Result {
00040 KisImageBuilder_RESULT_FAILURE = -400,
00041 KisImageBuilder_RESULT_NOT_EXIST = -300,
00042 KisImageBuilder_RESULT_NOT_LOCAL = -200,
00043 KisImageBuilder_RESULT_BAD_FETCH = -100,
00044 KisImageBuilder_RESULT_INVALID_ARG = -50,
00045 KisImageBuilder_RESULT_OK = 0,
00046 KisImageBuilder_RESULT_PROGRESS = 1,
00047 KisImageBuilder_RESULT_EMPTY = 100,
00048 KisImageBuilder_RESULT_BUSY = 150,
00049 KisImageBuilder_RESULT_NO_URI = 200,
00050 KisImageBuilder_RESULT_UNSUPPORTED = 300,
00051 KisImageBuilder_RESULT_INTR = 400,
00052 KisImageBuilder_RESULT_PATH = 500,
00053 KisImageBuilder_RESULT_UNSUPPORTED_COLORSPACE = 600
00054 };
00055
00056
00057
00061 class KisImageMagickConverter : public KisProgressSubject {
00062 typedef QObject super;
00063 Q_OBJECT
00064
00065 public:
00066 KisImageMagickConverter(KisDoc *doc, KisUndoAdapter *adapter);
00067 virtual ~KisImageMagickConverter();
00068
00069 public slots:
00070 virtual void cancel();
00071
00072 public:
00073 KisImageBuilder_Result buildImage(const KURL& uri);
00074 KisImageBuilder_Result buildFile(const KURL& uri, KisPaintLayerSP layer, vKisAnnotationSP_it annotationsStart, vKisAnnotationSP_it annotationsEnd);
00075 KisImageSP image();
00076
00077 public:
00078 static QString readFilters();
00079 static QString writeFilters();
00080
00081 private slots:
00082 void ioData(KIO::Job *job, const QByteArray& data);
00083 void ioResult(KIO::Job *job);
00084 void ioTotalSize(KIO::Job *job, KIO::filesize_t size);
00085
00086 private:
00087 KisImageMagickConverter(const KisImageMagickConverter&);
00088 KisImageMagickConverter& operator=(const KisImageMagickConverter&);
00089 void init(KisDoc *doc, KisUndoAdapter *adapter);
00090 KisImageBuilder_Result decode(const KURL& uri, bool isBlob);
00091
00092 private:
00093 KisImageSP m_img;
00094 KisDoc *m_doc;
00095 KisUndoAdapter *m_adapter;
00096 QValueVector<Q_UINT8> m_data;
00097 KIO::TransferJob *m_job;
00098 KIO::filesize_t m_size;
00099 bool m_stop;
00100 };
00101
00102 #endif // KIS_IMAGE_MAGICK_CONVERTER_H_
00103
|