diff options
Diffstat (limited to 'importdialog.h')
| -rw-r--r-- | importdialog.h | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/importdialog.h b/importdialog.h new file mode 100644 index 0000000..68ae7ae --- /dev/null +++ b/importdialog.h @@ -0,0 +1,58 @@ +#ifndef IMPORTDIALOG_H +#define IMPORTDIALOG_H + +#include <QDialog> +#include <QTableWidget> +#include <QComboBox> +#include <QCheckBox> +#include <QPushButton> +#include <QRadioButton> +#include <QButtonGroup> +#include <QList> +#include <QStringList> +#include "transaction.h" +#include "database.h" + +class ImportDialog : public QDialog +{ + Q_OBJECT + +public: + explicit ImportDialog(Database *db, QWidget *parent = nullptr); + ~ImportDialog(); + + QList<Transaction> getImportedTransactions() const; + +private slots: + void onBrowseFile(); + void onColumnMappingChanged(); + void onImport(); + void onSelectAll(); + void onDeselectAll(); + +private: + Database *database; + QTableWidget *previewTable; + QPushButton *browseBtn; + QPushButton *importBtn; + QPushButton *selectAllBtn; + QPushButton *deselectAllBtn; + + QComboBox *dateColumnCombo; + QComboBox *amountColumnCombo; + QComboBox *withdrawalColumnCombo; + QComboBox *depositColumnCombo; + QComboBox *descriptionColumnCombo; + QComboBox *accountCombo; + QComboBox *categoryCombo; + + QStringList csvHeaders; + QList<QStringList> csvRows; + QList<Transaction> importedTransactions; + + void loadCsvFile(const QString &filePath); + void updatePreview(); + Transaction parseRow(int rowIndex); +}; + +#endif // IMPORTDIALOG_H |
