/*
For general Scribus (>=1.3.2) copyright and licensing information please refer
to the COPYING file provided with the program. Following this notice may exist
a copyright and/or license notice that predates the release of Scribus 1.3.2
for which a new license (GPL+exception) is in place.
*/
#ifndef TEXTFILTER_H
#define TEXTFILTER_H

#include "pluginapi.h"

#include <prefscontext.h>
#include "gtwriter.h"
#include "tffilter.h"

extern "C" PLUGIN_API void GetText(const QString& filename, const QString& encoding, bool textOnly, gtWriter *writer);

extern "C" PLUGIN_API QString FileFormatName();

extern "C" PLUGIN_API QStringList FileExtensions();

class TextFilter
{
public:
	TextFilter(const QString& fname, const QString& enc, gtWriter* w);
	~TextFilter();

private:
	PrefsContext* prefs { nullptr };
	QString text;
	QString encoding;
	QString filename;
	gtWriter* writer { nullptr };
	std::vector<tfFilter*> *filters { nullptr };

	void loadText();
	void write();
	void replace(QString* text);
	void replaceHex(QString* text);
};

#endif // TEXTFILTER_H
