diff options
Diffstat (limited to 'Plugins/CsvImport/csvimport.h')
| -rw-r--r-- | Plugins/CsvImport/csvimport.h | 55 |
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 |
