diff -r 251b9aaae916 -r 966b5de3182e src/MonCO2meters.cpp --- a/src/MonCO2meters.cpp Tue Jun 28 14:48:38 2022 +0200 +++ b/src/MonCO2meters.cpp Tue Jun 28 15:33:52 2022 +0200 @@ -31,16 +31,16 @@ gridLayout = new QGridLayout(this); gridLayout->setObjectName(QString::fromUtf8("gridLayout")); - tableSuppliers = new QTableWidget(this); - tableSuppliers->setObjectName(QString::fromUtf8("tableSuppliers")); - tableSuppliers->setEnabled(true); + tableCO2meters = new QTableWidget(this); + tableCO2meters->setObjectName(QString::fromUtf8("tableCO2meters")); + tableCO2meters->setEnabled(true); QSizePolicy sizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding); sizePolicy.setHorizontalStretch(0); sizePolicy.setVerticalStretch(0); - sizePolicy.setHeightForWidth(tableSuppliers->sizePolicy().hasHeightForWidth()); - tableSuppliers->setSizePolicy(sizePolicy); - tableSuppliers->setMinimumSize(QSize(1054, 0)); - gridLayout->addWidget(tableSuppliers, 0, 0, 1, 1); + sizePolicy.setHeightForWidth(tableCO2meters->sizePolicy().hasHeightForWidth()); + tableCO2meters->setSizePolicy(sizePolicy); + tableCO2meters->setMinimumSize(QSize(1054, 0)); + gridLayout->addWidget(tableCO2meters, 0, 0, 1, 1); groupBox = new QGroupBox(this); groupBox->setObjectName(QString::fromUtf8("groupBox")); @@ -57,64 +57,81 @@ QIcon icon; icon.addFile(QString::fromUtf8(":icons/silk/door_out.png"), QSize(), QIcon::Normal, QIcon::Off); quitButton->setIcon(icon); - horizontalLayout->addWidget(quitButton, 0, Qt::AlignLeft); - - insertButton = new QPushButton(groupBox); - insertButton->setObjectName(QString::fromUtf8("insertButton")); - insertButton->setMinimumSize(QSize(80, 24)); - insertButton->setText(tr("New")); - QIcon icon1; - icon1.addFile(QString::fromUtf8(":icons/silk/table_row_insert.png"), QSize(), QIcon::Normal, QIcon::Off); - insertButton->setIcon(icon1); - horizontalLayout->addWidget(insertButton, 0, Qt::AlignRight); + horizontalLayout->addWidget(quitButton, 0, Qt::AlignCenter); gridLayout->addWidget(groupBox, 1, 0, 1, 1); connect(quitButton, SIGNAL(clicked()), parent, SLOT(fromMonCO2meters())); - connect(insertButton, SIGNAL(clicked()), this, SLOT(on_insertButton_clicked())); connect(this, SIGNAL(setStatus(QString)), parent, SLOT(statusMsg(QString))); + connect(parent, SIGNAL(updateCO2meters(QString)), this, SLOT(refreshCO2meters(QString))); emit refreshTable(); } void MonCO2meters::refreshTable() { - qDebug() << "MonCO2meters reload"; + QTableWidgetItem *item; - // query.exec("SELECT record,node,alias,online FROM mon_co2meters ORDER BY node,alias"); - QSqlQuery query("SELECT * FROM inventory_suppliers ORDER BY name"); - const QStringList labels({tr("Name"), tr("Address"), tr("City"), tr("Country"), tr("Phone"), tr("Edit")}); + qDebug() << "MonCO2meters reload"; + QSqlQuery query("SELECT record,node,alias,online,mode,beercode,beername,temperature,pressure_bar FROM mon_co2meters ORDER BY node,alias"); + const QStringList labels({tr("Node"), tr("Unit"), tr("Status"), tr("Beer"), tr("Temperature"), tr("Pressure"), tr("Details")}); - this->tableSuppliers->setColumnCount(6); - this->tableSuppliers->setColumnWidth(0, 250); /* Name */ - this->tableSuppliers->setColumnWidth(1, 250); /* Address */ - this->tableSuppliers->setColumnWidth(2, 200); /* City */ - this->tableSuppliers->setColumnWidth(3, 120); /* Country */ - this->tableSuppliers->setColumnWidth(4, 120); /* Phone */ - this->tableSuppliers->setColumnWidth(5, 90); /* Edit button */ - this->tableSuppliers->setRowCount(query.size()); - this->tableSuppliers->setHorizontalHeaderLabels(labels); - this->tableSuppliers->verticalHeader()->hide(); + this->tableCO2meters->setColumnCount(7); + this->tableCO2meters->setColumnWidth(0, 150); /* Node */ + this->tableCO2meters->setColumnWidth(1, 100); /* Unit */ + this->tableCO2meters->setColumnWidth(2, 100); /* Status */ + this->tableCO2meters->setColumnWidth(3, 390); /* Beer */ + this->tableCO2meters->setColumnWidth(4, 100); /* Temperature */ + this->tableCO2meters->setColumnWidth(5, 100); /* Pressure */ + this->tableCO2meters->setColumnWidth(6, 90); /* Edit button */ + this->tableCO2meters->setRowCount(query.size()); + this->tableCO2meters->setHorizontalHeaderLabels(labels); + this->tableCO2meters->verticalHeader()->hide(); /* Set the widget size to 1054 x 575 in the ui. */ query.first(); - for (int ridx = 0 ; ridx < query.size() ; ridx++ ) { - this->tableSuppliers->setItem(ridx, 0, new QTableWidgetItem(query.value(1).toString())); - this->tableSuppliers->setItem(ridx, 1, new QTableWidgetItem(query.value(2).toString())); - this->tableSuppliers->setItem(ridx, 2, new QTableWidgetItem(query.value(3).toString())); - this->tableSuppliers->setItem(ridx, 3, new QTableWidgetItem(query.value(5).toString())); - this->tableSuppliers->setItem(ridx, 4, new QTableWidgetItem(query.value(8).toString())); + for (int i = 0 ; i < query.size() ; i++ ) { + this->tableCO2meters->setItem(i, 0, new QTableWidgetItem(query.value("node").toString())); + this->tableCO2meters->setItem(i, 1, new QTableWidgetItem(query.value("alias").toString())); + + if (query.value("online").toInt()) { + item = new QTableWidgetItem(QString("Ok")); + } else { + item = new QTableWidgetItem(QString("Offline")); + item->setForeground(QBrush(QColor(Qt::red))); + } + item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); + this->tableCO2meters->setItem(i, 2, item); + + if (query.value("mode").toString() == "ON") { + item = new QTableWidgetItem(query.value("beercode").toString()+" - "+query.value("beername").toString()); + this->tableCO2meters->setItem(i, 3, item); + } else { + this->tableCO2meters->setItem(i, 3, new QTableWidgetItem(QString(""))); + } + + if (query.value("online").toInt()) { + item = new QTableWidgetItem(QString("%1°C").arg(query.value("temperature").toDouble(), 4, 'f', 3, '0')); + item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); + this->tableCO2meters->setItem(i, 4, item); + item = new QTableWidgetItem(QString("%1 bar").arg(query.value("pressure_bar").toDouble(), 2, 'f', 1, '0')); + item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); + this->tableCO2meters->setItem(i, 5, item); + } else { + this->tableCO2meters->setItem(i, 4, new QTableWidgetItem(QString(""))); + this->tableCO2meters->setItem(i, 5, new QTableWidgetItem(QString(""))); + } /* Add the Edit button */ QWidget* pWidget = new QWidget(); QPushButton* btn_edit = new QPushButton(); btn_edit->setObjectName(QString("%1").arg(query.value(0).toString())); /* Send record with the button */ - btn_edit->setText(tr("Edit")); + btn_edit->setText(tr("Details")); connect(btn_edit, SIGNAL(clicked()), this, SLOT(on_editButton_clicked())); QHBoxLayout* pLayout = new QHBoxLayout(pWidget); pLayout->addWidget(btn_edit); pLayout->setContentsMargins(5, 0, 5, 0); pWidget->setLayout(pLayout); - this->tableSuppliers->setCellWidget(ridx, 5, pWidget); + this->tableCO2meters->setCellWidget(i, 6, pWidget); query.next(); } emit setStatus(QString(tr("Total items: %1")).arg(query.size())); @@ -124,13 +141,20 @@ MonCO2meters::~MonCO2meters() {} +void MonCO2meters::refreshCO2meters(QString data) +{ + qDebug() << "refreshCO2meters" << data; + emit refreshTable(); +} + + void MonCO2meters::edit(int recno) { - EditSupplier dialog(recno, this); +// EditSupplier dialog(recno, this); /* Signal from editor if a refresh is needed */ - connect(&dialog, SIGNAL(entry_changed()), this, SLOT(refreshTable())); - dialog.setModal(true); - dialog.exec(); +// connect(&dialog, SIGNAL(entry_changed()), this, SLOT(refreshTable())); +// dialog.setModal(true); +// dialog.exec(); } @@ -142,8 +166,3 @@ } -void MonCO2meters::on_insertButton_clicked() -{ - edit(-1); -} -