summaryrefslogtreecommitdiffstats
path: root/src/imageedit/sq_converter.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/imageedit/sq_converter.h')
-rw-r--r--src/imageedit/sq_converter.h120
1 files changed, 120 insertions, 0 deletions
diff --git a/src/imageedit/sq_converter.h b/src/imageedit/sq_converter.h
new file mode 100644
index 0000000..414dfe1
--- /dev/null
+++ b/src/imageedit/sq_converter.h
@@ -0,0 +1,120 @@
+/***************************************************************************
+ sq_converter.h - description
+ -------------------
+ begin : ??? Mar 3 2005
+ copyright : (C) 2005 by Baryshev Dmitry
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+#ifndef SQ_CONVERTER_H
+#define SQ_CONVERTER_H
+
+#include <tqobject.h>
+#include <tqstringlist.h>
+
+#include <sstream>
+#include <csetjmp>
+
+#include <ksquirrel-libs/fmt_utils.h>
+#include <ksquirrel-libs/fmt_codec_base.h>
+#include <ksquirrel-libs/error.h>
+
+#include "sq_imageedit.h"
+
+struct SQ_LIBRARY;
+
+class KTempFile;
+
+class SQ_ImageConvert;
+class SQ_ImageConvertOptions;
+
+/*
+ * Base class for all edit tools. It contains all methods needed by
+ * converter, resizer, printer etc. It decodes an image, writes it back to
+ * disk. All specific actions (like colorizing, resizing etc.) are done by
+ * appropriate edit tool.
+ */
+
+class SQ_Converter : public TQObject
+{
+ TQ_OBJECT
+
+
+ public:
+ SQ_Converter(TQObject *parent);
+ ~SQ_Converter();
+
+ public:
+ static SQ_Converter* instance() { return m_sing; }
+
+ private:
+ /*
+ * Create edit tool-specific dialog, and wait for user
+ * input
+ */
+ void startEditPrivate();
+
+ /*
+ * Do something with decoded image(manipDecodedImage()) and write it
+ * on disk.
+ */
+ int manipAndWriteDecodedImage(const TQString &name, fmt_image *im);
+
+ /*
+ * Main decoding loop.
+ */
+ void decodingCycle();
+
+ /*
+ * Determine file name. In this file SQ_Converter will save new image.
+ */
+ TQString adjustFileName(const TQString &globalprefix, const TQString &name, int replace,
+ TQString putto, bool paged = false, int page = 0);
+
+ void determineNextScan(const fmt_image &im, RGBA *scan, int y);
+
+ /*
+ * Copy file :-)
+ */
+ int copyFile(const TQString &src, const TQString &dst) const;
+
+ void errorjmp(jmp_buf jmp, const int code);
+
+ signals:
+ void convertText(const TQString &, bool);
+ void oneFileProcessed();
+ void done(bool allok);
+
+ private slots:
+ void slotStartEdit();
+ void slotStartConvert(SQ_ImageOptions*, SQ_ImageConvertOptions*);
+
+ protected:
+ TQStringList files;
+ TQString err_internal, err_failed;
+ TQString currentFile;
+ int error_code, current_page;
+ SQ_ImageOptions imageopt;
+ fmt_writeoptions opt;
+ SQ_LIBRARY *lr, *lw, *altw;
+ RGBA *image;
+ TQString special_action, prefix;
+ bool multi, last, lastFrame;
+ KTempFile *tempfile;
+ fmt_image *im;
+ static SQ_Converter *m_sing;
+
+ SQ_ImageConvert *convert;
+ SQ_ImageConvertOptions convopt;
+};
+
+#endif