diff options
Diffstat (limited to 'src/translators/exporter.h')
-rw-r--r-- | src/translators/exporter.h | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/src/translators/exporter.h b/src/translators/exporter.h new file mode 100644 index 0000000..2ffc13b --- /dev/null +++ b/src/translators/exporter.h @@ -0,0 +1,89 @@ +/*************************************************************************** + 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 TELLICO_EXPORTER_H +#define TELLICO_EXPORTER_H + +class KConfig; + +class QWidget; +class QString; + +#include "../entry.h" +#include "../datavectors.h" + +#include <kurl.h> + +#include <qobject.h> + +namespace Tellico { + namespace Export { + enum Options { + ExportFormatted = 1 << 0, // format entries when exported + ExportUTF8 = 1 << 1, // valid for some text files, export as utf-8 + ExportImages = 1 << 2, // should the images be included? + ExportForce = 1 << 3, // force the export, no confirmation of overwriting + ExportComplete = 1 << 4, // export complete document, including loans, etc. + ExportProgress = 1 << 5, // show progress bar + ExportClean = 1 << 6, // specifically for bibliographies, remove latex commands + ExportVerifyImages= 1 << 7, // don't put in an image link that's not in the cache + ExportImageSize = 1 << 8 // include image size in the generated XML + }; + +/** + * @author Robby Stephenson + */ +class Exporter : public QObject { +Q_OBJECT + +public: + Exporter(); + Exporter(Data::CollPtr coll); + virtual ~Exporter(); + + Data::CollPtr collection() const; + + void setURL(const KURL& url_) { m_url = url_; } + void setEntries(const Data::EntryVec& entries) { m_entries = entries; } + void setOptions(long options) { m_options = options; reset(); } + + virtual QString formatString() const = 0; + virtual QString fileFilter() const = 0; + const KURL& url() const { return m_url; } + const Data::EntryVec& entries() const { return m_entries; } + long options() const { return m_options; } + + /** + * Do the export + */ + virtual bool exec() = 0; + /** + * If changing options in the exporter should cause member variables to reset, implement + * that here + */ + virtual void reset() {} + + virtual QWidget* widget(QWidget* parent, const char* name=0) = 0; + virtual void readOptions(KConfig*) {} + virtual void saveOptions(KConfig*) {} + +private: + long m_options; + Data::CollPtr m_coll; + Data::EntryVec m_entries; + KURL m_url; +}; + + } // end namespace +} // end namespace +#endif |