diff options
Diffstat (limited to 'src/translators/dataimporter.h')
-rw-r--r-- | src/translators/dataimporter.h | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/src/translators/dataimporter.h b/src/translators/dataimporter.h new file mode 100644 index 0000000..4d21a53 --- /dev/null +++ b/src/translators/dataimporter.h @@ -0,0 +1,71 @@ +/*************************************************************************** + copyright : (C) 2003-2006 by Robby Stephenson + email : [email protected] + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of version 2 of the GNU General Public License as * + * published by the Free Software Foundation; * + * * + ***************************************************************************/ + +#ifndef DATAIMPORTER_H +#define DATAIMPORTER_H + +#include "importer.h" +#include "../filehandler.h" + +namespace Tellico { + namespace Import { + +/** + * @author Robby Stephenson + */ +class DataImporter : public Importer { +Q_OBJECT + +public: + enum Source { URL, Text }; + + /** + * @param url The URL of the file to import + */ +// DataImporter(const KURL& url) : Importer(url), m_data(FileHandler::readDataFile(url)), m_source(URL) {} + DataImporter(const KURL& url) : Importer(url), m_source(URL) { m_fileRef = FileHandler::fileRef(url); } + /** + * Since the conversion to a QCString appends a \0 character at the end, remove it. + * + * @param text The text. It MUST be in UTF-8. + */ + DataImporter(const QString& text) : Importer(text), m_data(text.utf8()), m_source(Text), m_fileRef(0) + { m_data.truncate(m_data.size()-1); } + /** + */ + virtual ~DataImporter() { delete m_fileRef; m_fileRef = 0; } + + Source source() const { return m_source; } + + virtual void setText(const QString& text) { + Importer::setText(text); m_data = text.utf8(); m_data.truncate(m_data.size()-1); m_source = Text; + } + +protected: + /** + * Return the data in the imported file + * + * @return the file data + */ + const QByteArray& data() const { return m_data; } + FileHandler::FileRef& fileRef() const { return *m_fileRef; } + +private: + QByteArray m_data; + Source m_source; + FileHandler::FileRef* m_fileRef; +}; + + } // end namespace +} // end namespace +#endif |