From 78a55b655925d4c88330211faf094135a570eda7 Mon Sep 17 00:00:00 2001 From: Bent Witthold Date: Sun, 4 Jan 2026 16:52:03 +0100 Subject: [PATCH] Model items can be imported from CSV file. --- mainwindow.cpp | 18 ++++++++++++++++-- mainwindow.h | 1 + 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/mainwindow.cpp b/mainwindow.cpp index 6ac04d6..bb7df1b 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -2,7 +2,9 @@ #include "./ui_mainwindow.h" #include +#include #include +#include #include #include @@ -13,6 +15,7 @@ #include "genericcore.h" #include "model/tablemodel.h" +static QStandardPaths::StandardLocation standardLocation = QStandardPaths::HomeLocation; static QString updateTextClean = "Do you want to update the application now?"; static QString updateTextDirty = "Do you want to save the tasks & update the application now?"; @@ -238,6 +241,18 @@ void MainWindow::saveItems() { m_core->saveItems(); } +void MainWindow::importCSV() { + showStatusMessage(tr("Invoked 'File|Import CSV'")); + const QString csvFilePath = QFileDialog::getOpenFileName( + this, tr("Import CSV"), QStandardPaths::standardLocations(standardLocation).first(), + tr("CSV Files (*.csv)")); + if (QFileInfo::exists(csvFilePath)) { + m_core->importCSVFile(csvFilePath); + } else { + qWarning() << "Selected CSV file path doesn't exist. Doing nothing..."; + showStatusMessage(tr("Could't find CSV file!")); + } +} void MainWindow::createActions() { // TODO add generic menu actions (file/new, edit/cut, ...) createFileActions(); @@ -270,8 +285,7 @@ void MainWindow::createFileActions() { m_importAct = make_unique(tr("&Import CSV..."), this); m_importAct->setStatusTip(tr("Import an existing CSV file")); - // connect(m_importAct, &QAction::triggered, this, &MainWindow::importCSV); - m_importAct->setEnabled(false); + connect(m_importAct.get(), &QAction::triggered, this, &MainWindow::importCSV); ui->menu_File->addAction(m_importAct.get()); m_exportAct = make_unique(tr("&Export CSV..."), this); diff --git a/mainwindow.h b/mainwindow.h index 1da27c5..a2442e1 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -56,6 +56,7 @@ class MainWindow : public QMainWindow { /// 'File' slots void saveItems(); + void importCSV(); private: Ui::MainWindow* ui;