Tue, 28 Jun 2022 14:48:38 +0200
Added monitor fermenters overview
src/MonFermenters.cpp | file | annotate | diff | comparison | revisions | |
src/MonFermenters.h | file | annotate | diff | comparison | revisions | |
src/MonNodes.cpp | file | annotate | diff | comparison | revisions | |
src/MoniSpindels.cpp | file | annotate | diff | comparison | revisions |
--- a/src/MonFermenters.cpp Tue Jun 28 13:26:51 2022 +0200 +++ b/src/MonFermenters.cpp Tue Jun 28 14:48:38 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); + tableFermenters = new QTableWidget(this); + tableFermenters->setObjectName(QString::fromUtf8("tableFermenters")); + tableFermenters->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(tableFermenters->sizePolicy().hasHeightForWidth()); + tableFermenters->setSizePolicy(sizePolicy); + tableFermenters->setMinimumSize(QSize(1054, 0)); + gridLayout->addWidget(tableFermenters, 0, 0, 1, 1); groupBox = new QGroupBox(this); groupBox->setObjectName(QString::fromUtf8("groupBox")); @@ -57,65 +57,82 @@ 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(fromMonFermenters())); - connect(insertButton, SIGNAL(clicked()), this, SLOT(on_insertButton_clicked())); connect(this, SIGNAL(setStatus(QString)), parent, SLOT(statusMsg(QString))); + connect(parent, SIGNAL(updateFermenters(QString)), this, SLOT(refreshFermenters(QString))); emit refreshTable(); } void MonFermenters::refreshTable() { - qDebug() << "MonFermenters reload"; + QTableWidgetItem *item; - // query.exec("SELECT record,node,alias,online FROM mon_fermenters 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() << "MonFermenters reload"; + QSqlQuery query("SELECT record,node,alias,online,beercode,beername,mode,air_temperature,beer_temperature FROM mon_fermenters ORDER BY node,alias"); + const QStringList labels({tr("Node"), tr("Unit"), tr("Status"), tr("Mode"), tr("Beer"), tr("Air"), tr("Beer"), 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->tableFermenters->setColumnCount(8); + this->tableFermenters->setColumnWidth(0, 100); /* Node */ + this->tableFermenters->setColumnWidth(1, 100); /* Alias */ + this->tableFermenters->setColumnWidth(2, 100); /* Status */ + this->tableFermenters->setColumnWidth(3, 100); /* Mode */ + this->tableFermenters->setColumnWidth(4, 360); /* Beer */ + this->tableFermenters->setColumnWidth(5, 90); /* Air temp */ + this->tableFermenters->setColumnWidth(6, 90); /* Beer temp */ + this->tableFermenters->setColumnWidth(7, 90); /* Edit button */ + this->tableFermenters->setRowCount(query.size()); + this->tableFermenters->setHorizontalHeaderLabels(labels); + this->tableFermenters->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->tableFermenters->setItem(i, 0, new QTableWidgetItem(query.value("node").toString())); + this->tableFermenters->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->tableFermenters->setItem(i, 2, item); + + item = new QTableWidgetItem(query.value("beercode").toString()+" - "+query.value("beername").toString()); + this->tableFermenters->setItem(i, 4, item); + + if (query.value("online").toInt()) { + item = new QTableWidgetItem(query.value("mode").toString()); + item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); + this->tableFermenters->setItem(i, 3, item); + item = new QTableWidgetItem(QString("%1°C").arg(query.value("air_temperature").toDouble(), 4, 'f', 3, '0')); + item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); + this->tableFermenters->setItem(i, 5, item); + item = new QTableWidgetItem(QString("%1°C").arg(query.value("beer_temperature").toDouble(), 4, 'f', 3, '0')); + item->setTextAlignment(Qt::AlignCenter|Qt::AlignVCenter); + this->tableFermenters->setItem(i, 6, item); + } else { + this->tableFermenters->setItem(i, 3, new QTableWidgetItem(QString(""))); + this->tableFermenters->setItem(i, 5, new QTableWidgetItem(QString(""))); + this->tableFermenters->setItem(i, 6, 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->setObjectName(QString("%1").arg(query.value("record").toString())); /* Send record with the button */ + 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->tableFermenters->setCellWidget(i, 7, pWidget); query.next(); } emit setStatus(QString(tr("Total items: %1")).arg(query.size())); @@ -125,13 +142,20 @@ MonFermenters::~MonFermenters() {} +void MonFermenters::refreshFermenters(QString data) +{ + qDebug() << "refreshFermenters" << data; + emit refreshTable(); +} + + void MonFermenters::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(); } @@ -143,8 +167,3 @@ } -void MonFermenters::on_insertButton_clicked() -{ - edit(-1); -} -
--- a/src/MonFermenters.h Tue Jun 28 13:26:51 2022 +0200 +++ b/src/MonFermenters.h Tue Jun 28 14:48:38 2022 +0200 @@ -25,17 +25,18 @@ void setStatus(QString); private slots: - void on_insertButton_clicked(); void on_editButton_clicked(); void refreshTable(void); +public slots: + void refreshFermenters(QString); + private: QGridLayout *gridLayout; - QTableWidget *tableSuppliers; + QTableWidget *tableFermenters; QGroupBox *groupBox; QHBoxLayout *horizontalLayout; QPushButton *quitButton; - QPushButton *insertButton; void edit(int recno); };
--- a/src/MonNodes.cpp Tue Jun 28 13:26:51 2022 +0200 +++ b/src/MonNodes.cpp Tue Jun 28 14:48:38 2022 +0200 @@ -74,7 +74,7 @@ qDebug() << "MonNodes reload"; QSqlQuery query("SELECT record,node,online,group_id,lastseen,net_address,up_interval FROM mon_nodes ORDER BY node"); - const QStringList labels({tr("Node"), tr("Status"), tr("Group"), tr("Last seen"), tr("Address"), tr("Interval"), tr("Edit")}); + const QStringList labels({tr("Node"), tr("Status"), tr("Group"), tr("Last seen"), tr("Address"), tr("Interval"), tr("Details")}); this->tableNodes->setColumnCount(7); this->tableNodes->setColumnWidth(0, 200); /* Node */
--- a/src/MoniSpindels.cpp Tue Jun 28 13:26:51 2022 +0200 +++ b/src/MoniSpindels.cpp Tue Jun 28 14:48:38 2022 +0200 @@ -75,13 +75,13 @@ qDebug() << "MoniSpindels reload"; QSqlQuery query("SELECT record,alias,node,online,mode,temperature,gravity,beercode,beername FROM mon_ispindels ORDER BY alias"); - const QStringList labels({tr("Unit"), tr("Node"), tr("Status"), tr("Beer"), tr("Temperature"), tr("SG"), tr("Edit")}); + const QStringList labels({tr("Unit"), tr("Node"), tr("Status"), tr("Beer"), tr("Temperature"), tr("SG"), tr("Details")}); this->tableiSpindels->setColumnCount(7); this->tableiSpindels->setColumnWidth(0, 150); /* Alias */ this->tableiSpindels->setColumnWidth(1, 120); /* Node */ this->tableiSpindels->setColumnWidth(2, 100); /* Status */ - this->tableiSpindels->setColumnWidth(3, 350); /* Beer */ + this->tableiSpindels->setColumnWidth(3, 390); /* Beer */ this->tableiSpindels->setColumnWidth(4, 90); /* Temperature */ this->tableiSpindels->setColumnWidth(5, 90); /* Gravity */ this->tableiSpindels->setColumnWidth(6, 90); /* Edit button */