aboutsummaryrefslogtreecommitdiffstats
path: root/Plugins/CsvExport/csvexport.h
diff options
context:
space:
mode:
Diffstat (limited to 'Plugins/CsvExport/csvexport.h')
-rw-r--r--Plugins/CsvExport/csvexport.h56
1 files changed, 56 insertions, 0 deletions
diff --git a/Plugins/CsvExport/csvexport.h b/Plugins/CsvExport/csvexport.h
new file mode 100644
index 0000000..7ecde7c
--- /dev/null
+++ b/Plugins/CsvExport/csvexport.h
@@ -0,0 +1,56 @@
+#ifndef CSVEXPORT_H
+#define CSVEXPORT_H
+
+#include "csvexport_global.h"
+#include "plugins/genericexportplugin.h"
+#include "config_builder.h"
+#include "csvformat.h"
+
+CFG_CATEGORIES(CsvExportConfig,
+ CFG_CATEGORY(CsvExport,
+ CFG_ENTRY(bool, ColumnsInFirstRow, false)
+ CFG_ENTRY(int, Separator, 0)
+ CFG_ENTRY(QString, CustomSeparator, QString())
+ CFG_ENTRY(QString, NullValueString, QString())
+ )
+)
+
+class CSVEXPORTSHARED_EXPORT CsvExport : public GenericExportPlugin
+{
+ Q_OBJECT
+ SQLITESTUDIO_PLUGIN("csvexport.json")
+
+ public:
+ CsvExport();
+
+ QString getFormatName() const;
+ ExportManager::StandardConfigFlags standardOptionsToEnable() const;
+ ExportManager::ExportModes getSupportedModes() 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 createView);
+ bool init();
+ void deinit();
+
+ private:
+ bool exportTable(const QStringList& columnNames);
+ void defineCsvFormat();
+
+ CFG_LOCAL(CsvExportConfig, cfg)
+ CsvFormat format;
+};
+
+#endif // CSVEXPORT_H