[FORM] Form manuale

This commit is contained in:
giuliof 2020-06-14 23:08:34 +02:00
parent 0681f69f26
commit 979d392b21
6 changed files with 188 additions and 11 deletions

View File

@ -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>();
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();
}

View File

@ -7,6 +7,7 @@
#include <QCloseEvent>
#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> wmanualInsert;
QFile* csv_file;
QTimer lineTessera_timer;
SqliteInterface sqliteInterface;
void closeEvent(QCloseEvent *event);
void addVisitor(QString& codfis, QString& anagrafica);
};
#endif

View File

@ -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

28
wManualInsert.cpp Normal file
View File

@ -0,0 +1,28 @@
#include "wManualInsert.hpp"
#include <QDebug>
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() != "";
}

36
wManualInsert.hpp Normal file
View File

@ -0,0 +1,36 @@
#ifndef __WMANUALINSERT_HPP__
#define __WMANUALINSERT_HPP__
#include <QDialog>
#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

89
wManualInsert.ui Normal file
View File

@ -0,0 +1,89 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>wManualInsert</class>
<widget class="QDialog" name="wManualInsert">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
</rect>
</property>
<property name="windowTitle">
<string>Dialog</string>
</property>
<layout class="QFormLayout" name="formLayout">
<item row="0" column="1">
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>17</width>
<height>176</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>Nome</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="lineNome"/>
</item>
<item row="4" column="1">
<widget class="QLineEdit" name="lineCognome"/>
</item>
<item row="8" column="1">
<widget class="QLineEdit" name="lineCodFis"/>
</item>
<item row="9" column="1">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>17</width>
<height>95</height>
</size>
</property>
</spacer>
</item>
<item row="10" column="1">
<widget class="QDialogButtonBox" name="buttonBox">
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
</widget>
</item>
<item row="8" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>Codice Fiscale</string>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QLabel" name="label_3">
<property name="text">
<string>Cognome</string>
</property>
</widget>
</item>
</layout>
</widget>
<tabstops>
<tabstop>lineNome</tabstop>
<tabstop>lineCognome</tabstop>
<tabstop>lineCodFis</tabstop>
</tabstops>
<resources/>
<connections/>
</ui>