#ifndef CSV_DIALOG_H #define CSV_DIALOG_H #include #include 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