You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tellico/src/translators/htmlexporter.h

126 lines
3.5 KiB

/***************************************************************************
copyright : (C) 2003-2006 by Robby Stephenson
email : robby@periapsis.org
***************************************************************************/
/***************************************************************************
* *
* 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 HTMLEXPORTER_H
#define HTMLEXPORTER_H
class TQCheckBox;
#include "exporter.h"
#include "../stringset.h"
#include <tqstringlist.h>
#include <libxml/xmlstring.h>
extern "C" {
struct _xmlNode;
}
namespace Tellico {
namespace Data {
class Collection;
}
class XSLTHandler;
namespace Export {
/**
* @author Robby Stephenson
*/
class HTMLExporter : public Exporter {
Q_OBJECT
TQ_OBJECT
public:
HTMLExporter();
HTMLExporter(Data::CollPtr coll);
~HTMLExporter();
virtual bool exec();
virtual void reset();
virtual TQString formatString() const;
virtual TQString fileFilter() const;
virtual TQWidget* widget(TQWidget* tqparent, const char* name=0);
virtual void readOptions(KConfig*);
virtual void saveOptions(KConfig*);
void setCollectionURL(const KURL& url) { m_collectionURL = url; m_links.clear(); }
void setXSLTFile(const TQString& filename);
void setPrintHeaders(bool printHeaders) { m_printHeaders = printHeaders; }
void setPrintGrouped(bool printGrouped) { m_printGrouped = printGrouped; }
void setMaxImageSize(int w, int h) { m_imageWidth = w; m_imageHeight = h; }
void setGroupBy(const TQStringList& groupBy) { m_groupBy = groupBy; }
void setSortTitles(const TQStringList& l)
{ m_sort1 = l[0]; m_sort2 = l[1]; m_sort3 = l[2]; }
void setColumns(const TQStringList& columns) { m_columns = columns; }
void setParseDOM(bool parseDOM) { m_parseDOM = parseDOM; reset(); }
TQString text();
public slots:
void slotCancel();
private:
void setFormattingOptions(Data::CollPtr coll);
void writeImages(Data::CollPtr coll);
bool writeEntryFiles();
KURL fileDir() const;
TQString fileDirName() const;
void parseDOM(_xmlNode* node);
TQString handleLink(const TQString& link);
const xmlChar* handleLink(const xmlChar* link);
TQString analyzeInternalCSS(const TQString& string);
const xmlChar* analyzeInternalCSS(const xmlChar* string);
bool copyFiles();
bool loadXSLTFile();
void createDir();
XSLTHandler* m_handler;
bool m_printHeaders : 1;
bool m_printGrouped : 1;
bool m_exportEntryFiles : 1;
bool m_cancelled : 1;
bool m_parseDOM : 1;
bool m_checkCreateDir : 1;
int m_imageWidth;
int m_imageHeight;
TQWidget* m_widget;
TQCheckBox* m_checkPrintHeaders;
TQCheckBox* m_checkPrintGrouped;
TQCheckBox* m_checkExportEntryFiles;
TQCheckBox* m_checkExportImages;
KURL m_collectionURL;
TQString m_xsltFile;
TQString m_xsltFilePath;
TQString m_dataDir;
TQStringList m_groupBy;
TQString m_sort1;
TQString m_sort2;
TQString m_sort3;
TQStringList m_columns;
TQString m_entryXSLTFile;
KURL::List m_files;
TQMap<TQString, TQString> m_links;
StringSet m_copiedFiles;
};
} // end namespace
} // end namespace
#endif