aboutsummaryrefslogtreecommitdiffstats
path: root/Plugins/HtmlExport/htmlexport.h
diff options
context:
space:
mode:
Diffstat (limited to 'Plugins/HtmlExport/htmlexport.h')
-rw-r--r--Plugins/HtmlExport/htmlexport.h74
1 files changed, 74 insertions, 0 deletions
diff --git a/Plugins/HtmlExport/htmlexport.h b/Plugins/HtmlExport/htmlexport.h
new file mode 100644
index 0000000..04a379c
--- /dev/null
+++ b/Plugins/HtmlExport/htmlexport.h
@@ -0,0 +1,74 @@
+#ifndef HTMLEXPORT_H
+#define HTMLEXPORT_H
+
+#include "htmlexport_global.h"
+#include "plugins/genericexportplugin.h"
+#include "config_builder.h"
+
+CFG_CATEGORIES(HtmlExportConfig,
+ CFG_CATEGORY(HtmlExport,
+ CFG_ENTRY(QString, Format, "compress")
+ CFG_ENTRY(bool, PrintRowNum, true)
+ CFG_ENTRY(bool, PrintHeader, true)
+ CFG_ENTRY(bool, PrintDataTypes, true)
+ CFG_ENTRY(bool, DontEscapeHtml, false)
+ CFG_ENTRY(int, ByteLengthLimit, 10000)
+ )
+)
+class HTMLEXPORTSHARED_EXPORT HtmlExport : public GenericExportPlugin
+{
+ Q_OBJECT
+ SQLITESTUDIO_PLUGIN("htmlexport.json")
+
+ public:
+ QString getFormatName() const;
+ ExportManager::StandardConfigFlags standardOptionsToEnable() const;
+ QString getExportConfigFormName() const;
+ CfgMain* getConfig();
+ void validateOptions();
+ QString defaultFileExtension() const;
+ bool beforeExportQueryResults(const QString& query, QList<QueryExecutor::ResultColumnPtr>& columns,
+ const QHash<ExportManager::ExportProviderFlag,QVariant> providedData);
+ bool exportQueryResultsRow(SqlResultsRowPtr row);
+ bool exportTable(const QString& database, const QString& table, const QStringList& columnNames, const QString& ddl, SqliteCreateTablePtr createTable,
+ const QHash<ExportManager::ExportProviderFlag,QVariant> providedData);
+ bool exportVirtualTable(const QString& database, const QString& table, const QStringList& columnNames, const QString& ddl, SqliteCreateVirtualTablePtr createTable,
+ const QHash<ExportManager::ExportProviderFlag,QVariant> providedData);
+ bool exportTableRow(SqlResultsRowPtr data);
+ bool beforeExportDatabase(const QString& database);
+ bool exportIndex(const QString& database, const QString& name, const QString& ddl, SqliteCreateIndexPtr createIndex);
+ bool exportTrigger(const QString& database, const QString& name, const QString& ddl, SqliteCreateTriggerPtr createTrigger);
+ bool exportView(const QString& database, const QString& name, const QString& ddl, SqliteCreateViewPtr view);
+ bool afterExportQueryResults();
+ bool afterExportTable();
+ bool afterExport();
+ bool init();
+ void deinit();
+
+ private:
+ bool beginDoc(const QString& title);
+ bool exportDataRow(SqlResultsRowPtr data);
+ void setupConfig();
+ void incrIndent();
+ void decrIndent();
+ void updateIndent();
+ void writeln(const QString& str);
+ QString escape(const QString& str);
+
+ static QString compressCss(QString css);
+
+ CFG_LOCAL(HtmlExportConfig, cfg)
+ bool indent = false;
+ int indentDepth = 0;
+ QString indentStr;
+ QString newLineStr;
+ QString codecName;
+ int currentDataRow = 0;
+ QList<DataType> columnTypes;
+ bool printRownum = false;
+ bool printHeader = false;
+ bool printDatatypes = false;
+ int byteLengthLimit = 0;
+};
+
+#endif // HTMLEXPORT_H