summaryrefslogtreecommitdiff
path: root/src/export-import/CsvDialog.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/export-import/CsvDialog.h')
-rw-r--r--src/export-import/CsvDialog.h62
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