diff options
author | Jedidiah Barber <contact@jedbarber.id.au> | 2021-07-14 11:49:10 +1200 |
---|---|---|
committer | Jedidiah Barber <contact@jedbarber.id.au> | 2021-07-14 11:49:10 +1200 |
commit | d24f813f3f2a05c112e803e4256b53535895fc98 (patch) | |
tree | 601e6ae9a1cd44bcfdcf91739a5ca36aedd827c9 /src/export-import/CsvDialog.h |
Diffstat (limited to 'src/export-import/CsvDialog.h')
-rw-r--r-- | src/export-import/CsvDialog.h | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/src/export-import/CsvDialog.h b/src/export-import/CsvDialog.h new file mode 100644 index 0000000..f50cd62 --- /dev/null +++ b/src/export-import/CsvDialog.h @@ -0,0 +1,62 @@ +#ifndef CSV_DIALOG_H +#define CSV_DIALOG_H + +#include <QtCore> +#include <QtWidgets> + +class CsvDialog: public QDialog +{ + Q_OBJECT + +public: + CsvDialog(QWidget* parent); + +protected: + static QString setCharVisibility(const QString& input, bool visible); + +protected: + void init(); + virtual QLayout* createLeftGroupLayout() = 0; + virtual QString getLeftGroupTitle() = 0; + QWidget* createCharSetCombo(); + virtual QLayout* createSeparatorsLayout() = 0; + QWidget* createFieldSeparatorWidget(const QString& additionalSeparators = ""); + QWidget* createTextDelimiterBox(); + QWidget* createTextDelimiterCombo(); + QWidget* createCommentCharCombo(); + QComboBox* createEditableCombo(const QStringList& items); + virtual QLayout* createPreviewLt() = 0; + QDialogButtonBox* createButtonBox(); + QTextCodec* getTextCodec(); + QChar getTextDelimiterChar() const; + +protected slots: + virtual void updatePreview() = 0; + void updateTextDelimiterCombo(); + +private: + QLayout* createMainLayout(); + void connectControlsToPreview(); + QLayout* createTopLayout(); + QGroupBox* createLeftGroup(); + QGroupBox* createSeparatorsGroup(); + void doUpdatePreview() { updatePreview(); } + +private slots: + void showInvisibleInSeparatorsEdit(); + void insertTabToSeparators(); + +protected: + static QChar SpaceChar; + static QChar TabChar; + static QString ExtendedTab; + +protected: + QComboBox* charSetCombo; + QLineEdit* separatorsEdit; + QCheckBox* textDelimiterCB; + QComboBox* textDelimiterCombo; + QComboBox* commentCharCombo; +}; + +#endif |