aboutsummaryrefslogtreecommitdiffstats
path: root/Plugins/CsvImport/csvimport.h
diff options
context:
space:
mode:
Diffstat (limited to 'Plugins/CsvImport/csvimport.h')
-rw-r--r--Plugins/CsvImport/csvimport.h55
1 files changed, 55 insertions, 0 deletions
diff --git a/Plugins/CsvImport/csvimport.h b/Plugins/CsvImport/csvimport.h
new file mode 100644
index 0000000..cec803c
--- /dev/null
+++ b/Plugins/CsvImport/csvimport.h
@@ -0,0 +1,55 @@
+#ifndef CSVIMPORT_H
+#define CSVIMPORT_H
+
+#include "csvimport_global.h"
+#include "plugins/importplugin.h"
+#include "plugins/genericplugin.h"
+#include "config_builder.h"
+#include "csvserializer.h"
+
+CFG_CATEGORIES(CsvImportConfig,
+ CFG_CATEGORY(CsvImport,
+ CFG_ENTRY(bool, FirstRowAsColumns, false)
+ CFG_ENTRY(int, Separator, 0)
+ CFG_ENTRY(QString, CustomSeparator, QString())
+ CFG_ENTRY(bool, NullValues, false)
+ CFG_ENTRY(QString, NullValueString, QString())
+ )
+)
+
+class QFile;
+class QTextStream;
+
+class CSVIMPORTSHARED_EXPORT CsvImport : public GenericPlugin, public ImportPlugin
+{
+ Q_OBJECT
+ SQLITESTUDIO_PLUGIN("csvimport.json")
+
+ public:
+ CsvImport();
+
+ QString getDataSourceTypeName() const;
+ ImportManager::StandardConfigFlags standardOptionsToEnable() const;
+ bool beforeImport(const ImportManager::StandardImportConfig& config);
+ void afterImport();
+ QList<ColumnDefinition> getColumns() const;
+ QList<QVariant> next();
+ CfgMain* getConfig();
+ QString getImportConfigFormName() const;
+ bool validateOptions();
+ QString getFileFilter() const;
+ bool init();
+ void deinit();
+
+ private:
+ bool extractColumns();
+ void defineCsvFormat();
+
+ QFile* file = nullptr;
+ QTextStream* stream = nullptr;
+ QStringList columnNames;
+ CsvFormat csvFormat;
+ CFG_LOCAL(CsvImportConfig, cfg)
+};
+
+#endif // CSVIMPORT_H