SXXXXXXX_PyDownloadFwViaSRIO/_OLD/Vecchia_app/FpgaBeamMeUp/historydbform.cpp
2026-01-22 17:10:05 +01:00

149 lines
5.2 KiB
C++

#include "historydbform.h"
#include "ui_historydbform.h"
#include <QStandardItemModel>
#include <QPushButton>
#include <QGridLayout>
#include <QMessageBox>
#define COL_timestamp 0
#define COL_filename 1
#define COL_where 2
#define COL_srio_conn 3
#define COL_flash_address 4
#define COL_spi_port 5
#define COL_status 6
#define COL_error 7
#define COL_error_description 8
HistoryDBForm::HistoryDBForm(QWidget *parent) :
QDialog(parent),
ui(new Ui::HistoryDBForm)
{
ui->setupUi(this);
connect(ui->buttonBox->button(QDialogButtonBox::Reset), SIGNAL(clicked()), SLOT(on_reset_clicked()));
}
HistoryDBForm::~HistoryDBForm()
{
delete ui;
}
void HistoryDBForm::setDB(dbHistory *_db)
{
HistoryDB = _db;
showInfoDB();
setWindowTitle(QString("History - file: %1").arg(HistoryDB->getFileDB()));
}
void HistoryDBForm::showInfoDB()
{
int countItem = HistoryDB->getNumEntry();
QStandardItemModel *model = new QStandardItemModel(countItem,9,this);
model->setHorizontalHeaderItem(COL_timestamp, new QStandardItem(QString("timestamp")));
model->setHorizontalHeaderItem(COL_filename, new QStandardItem(QString("filename")));
model->setHorizontalHeaderItem(COL_where, new QStandardItem(QString("where")));
model->setHorizontalHeaderItem(COL_srio_conn, new QStandardItem(QString("srio_conn")));
model->setHorizontalHeaderItem(COL_flash_address, new QStandardItem(QString("flash_address")));
model->setHorizontalHeaderItem(COL_spi_port, new QStandardItem(QString("spi_port")));
model->setHorizontalHeaderItem(COL_status, new QStandardItem(QString("status")));
model->setHorizontalHeaderItem(COL_error, new QStandardItem(QString("error")));
model->setHorizontalHeaderItem(COL_error_description, new QStandardItem(QString("error_description")));
ui->twHistory->setModel(model);
db_item_t itemDB;
for (int i = 0; i<countItem; i++)
{
//extract for every ini files the description about testcase
itemDB = HistoryDB->getEntry(i);
QStandardItem *itemTimeStamp = new QStandardItem(itemDB.timestamp);
model->setItem(i,COL_timestamp,itemTimeStamp);
QStandardItem *itemName = new QStandardItem(itemDB.name);
model->setItem(i,COL_filename,itemName);
QStandardItem *itemWhere = new QStandardItem(itemDB.where);
model->setItem(i,COL_where,itemWhere);
QStandardItem *itemSRIO = new QStandardItem(itemDB.srio_conn);
model->setItem(i,COL_srio_conn,itemSRIO);
QStandardItem *itemFlash = new QStandardItem(itemDB.flash_address);
model->setItem(i,COL_flash_address,itemFlash);
QString spi_port_str = HistoryDB->getSPIString(itemDB.spi);
QStandardItem *itemSPI = new QStandardItem(spi_port_str);
model->setItem(i,COL_spi_port,itemSPI);
QString status_str = HistoryDB->getStatusString(itemDB.status);
QStandardItem *itemStatus = new QStandardItem(status_str);
model->setItem(i,COL_status,itemStatus);
QString error_str = HistoryDB->getErrorString(itemDB.error);
QStandardItem *itemError = new QStandardItem(error_str);
model->setItem(i,COL_error,itemError);
QStandardItem *error_desc = new QStandardItem(itemDB.errorStr);
model->setItem(i,COL_error_description,error_desc);
if (itemDB.error!=db_error_no_error)
{
//se c'è un errore
itemError->setBackground(Qt::red);
error_desc->setBackground(Qt::red);
itemStatus->setBackground(Qt::red);
itemError->setForeground(Qt::white);
error_desc->setForeground(Qt::white);
itemStatus->setForeground(Qt::white);
}
else
if (itemDB.status==db_status_programmed)
{
//se è completo senza problemi
itemError->setBackground(Qt::green);
error_desc->setBackground(Qt::green);
itemStatus->setBackground(Qt::green);
itemError->setForeground(Qt::white);
error_desc->setForeground(Qt::white);
itemStatus->setForeground(Qt::white);
}
else
if (itemDB.status==db_status_started)
{
//se è completo senza problemi
itemError->setBackground(Qt::lightGray);
error_desc->setBackground(Qt::lightGray);
itemStatus->setBackground(Qt::lightGray);
itemError->setForeground(Qt::black);
error_desc->setForeground(Qt::black);
itemStatus->setForeground(Qt::black);
}
}
ui->twHistory->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);
ui->twHistory->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Maximum);
ui->twHistory->setSelectionBehavior(QAbstractItemView::SelectRows);
ui->twHistory->show();
}
void HistoryDBForm::on_reset_clicked()
{
if (QMessageBox::Yes == QMessageBox(QMessageBox::Question, "Request confirm", "Reset history?", QMessageBox::Yes|QMessageBox::No).exec())
{
HistoryDB->reset();
close();
}
}