From 979d392b21e3d8d25affe78d7cd84127f1e27a20 Mon Sep 17 00:00:00 2001 From: giuliof Date: Sun, 14 Jun 2020 23:08:34 +0200 Subject: [PATCH] [FORM] Form manuale --- ImmuNoattri.cpp | 34 +++++++++++++----- ImmuNoattri.hpp | 3 ++ ImmuNoattri.pro | 9 +++-- wManualInsert.cpp | 28 +++++++++++++++ wManualInsert.hpp | 36 +++++++++++++++++++ wManualInsert.ui | 89 +++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 188 insertions(+), 11 deletions(-) create mode 100644 wManualInsert.cpp create mode 100644 wManualInsert.hpp create mode 100644 wManualInsert.ui diff --git a/ImmuNoattri.cpp b/ImmuNoattri.cpp index 47a5cec..7e7832f 100644 --- a/ImmuNoattri.cpp +++ b/ImmuNoattri.cpp @@ -23,7 +23,6 @@ MainWindow::MainWindow(QWidget* parent) sqliteInterface("presenze.db") { ui->setupUi(this); - connect(&lineTessera_timer, &QTimer::timeout, this, &MainWindow::on_lineTessera_timer_timeout); @@ -54,11 +53,7 @@ void MainWindow::on_lineTessera_timer_timeout() { QString anagrafica; // Validating input if (decodeCodfis(ui->lineTessera->text(), codfis, anagrafica)) { - int registrati = ui->lineRegistrati->text().toInt(); - registrati++; - ui->lineRegistrati->setText(QString::number(registrati)); - ui->lineStato->setText("Tessera valida! Strusciare la prossima"); - sqliteInterface.addVisitor(codfis, anagrafica); + addVisitor(codfis, anagrafica); } else { ui->lineStato->setText("Tessera non valida, riprovare a strusciare!"); } @@ -66,9 +61,32 @@ void MainWindow::on_lineTessera_timer_timeout() { ui->lineTessera->setText(""); } -void MainWindow::on_pushMano_clicked() {} +/** + * @brief Callback pulsante per inserimento manuale dei dati + * + */ +void MainWindow::on_pushMano_clicked() { + wmanualInsert = std::make_unique(); + wmanualInsert->exec(); + if (wmanualInsert->validData()) { + QString codfis = wmanualInsert->getCodFis(); + QString anagrafica = QString("%1 %2") + .arg(wmanualInsert->getCognome()) + .arg(wmanualInsert->getNome()); + addVisitor(codfis, anagrafica); + } + wmanualInsert.release(); +} -void MainWindow::closeEvent(QCloseEvent *event) { +void MainWindow::addVisitor(QString& codfis, QString& anagrafica) { + sqliteInterface.addVisitor(codfis, anagrafica); + int registrati = ui->lineRegistrati->text().toInt(); + registrati++; + ui->lineRegistrati->setText(QString::number(registrati)); + ui->lineStato->setText("Inserimento manuale corretto! Avanti il prossimo"); +} + +void MainWindow::closeEvent(QCloseEvent* event) { qDebug() << "Pulisco db"; sqliteInterface.cleanup(); } \ No newline at end of file diff --git a/ImmuNoattri.hpp b/ImmuNoattri.hpp index bd1b9e1..3bc8bfd 100644 --- a/ImmuNoattri.hpp +++ b/ImmuNoattri.hpp @@ -7,6 +7,7 @@ #include #include "sqliteInterface.hpp" +#include "wManualInsert.hpp" namespace Ui { class MainWindow; @@ -33,11 +34,13 @@ class MainWindow : public QMainWindow { private: Ui::MainWindow* ui; + std::unique_ptr wmanualInsert; QFile* csv_file; QTimer lineTessera_timer; SqliteInterface sqliteInterface; void closeEvent(QCloseEvent *event); + void addVisitor(QString& codfis, QString& anagrafica); }; #endif \ No newline at end of file diff --git a/ImmuNoattri.pro b/ImmuNoattri.pro index 4788b3f..c8e439e 100644 --- a/ImmuNoattri.pro +++ b/ImmuNoattri.pro @@ -7,12 +7,15 @@ TEMPLATE = app SOURCES += main.cpp \ ImmuNoattri.cpp \ - sqliteInterface.cpp + sqliteInterface.cpp \ + wManualInsert.cpp HEADERS += ImmuNoattri.hpp \ - sqliteInterface.hpp + sqliteInterface.hpp \ + wManualInsert.hpp -FORMS += ImmuNoattri.ui +FORMS += ImmuNoattri.ui \ + wManualInsert.ui QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO QMAKE_CFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO diff --git a/wManualInsert.cpp b/wManualInsert.cpp new file mode 100644 index 0000000..2d684ab --- /dev/null +++ b/wManualInsert.cpp @@ -0,0 +1,28 @@ +#include "wManualInsert.hpp" + +#include + +wManualInsert::wManualInsert(QDialog* parent) + : QDialog(parent), ui(new Ui::wManualInsert) { + ui->setupUi(this); + valid = false; + connect(ui->buttonBox, SIGNAL(accepted()), this, + SLOT(on_buttonBox_accepted())); + connect(ui->buttonBox, SIGNAL(rejected()), this, + SLOT(on_buttonBox_rejected())); +} + +wManualInsert::~wManualInsert() {} + +void wManualInsert::on_buttonBox_accepted() { + valid = true; + accept(); +} + +void wManualInsert::on_buttonBox_rejected() { + reject(); +} + +bool wManualInsert::validData() const { + return valid && getCodFis() != "" && getNome() != "" && getCognome() != ""; +} \ No newline at end of file diff --git a/wManualInsert.hpp b/wManualInsert.hpp new file mode 100644 index 0000000..070b904 --- /dev/null +++ b/wManualInsert.hpp @@ -0,0 +1,36 @@ +#ifndef __WMANUALINSERT_HPP__ +#define __WMANUALINSERT_HPP__ + +#include + +#include "ui_wManualInsert.h" + +namespace Ui { +class wManualInsert; +} + +class wManualInsert : public QDialog { + Q_OBJECT + + public: + explicit wManualInsert(QDialog* parent = 0); + ~wManualInsert(); + + private slots: + // GUI Events + void on_buttonBox_accepted(); + void on_buttonBox_rejected(); + + private: + Ui::wManualInsert* ui; + bool valid; + + // Fields getters + public: + QString getNome() const { return ui->lineNome->text().trimmed(); }; + QString getCognome() const { return ui->lineCognome->text().trimmed(); }; + QString getCodFis() const { return ui->lineCodFis->text().trimmed(); }; + bool validData() const; +}; + +#endif \ No newline at end of file diff --git a/wManualInsert.ui b/wManualInsert.ui new file mode 100644 index 0000000..98c247a --- /dev/null +++ b/wManualInsert.ui @@ -0,0 +1,89 @@ + + + wManualInsert + + + + 0 + 0 + 400 + 300 + + + + Dialog + + + + + + Qt::Vertical + + + + 17 + 176 + + + + + + + + Nome + + + + + + + + + + + + + + + + Qt::Vertical + + + + 17 + 95 + + + + + + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + Codice Fiscale + + + + + + + Cognome + + + + + + + lineNome + lineCognome + lineCodFis + + + +