Added monitor fermenters overview

Tue, 28 Jun 2022 14:48:38 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Tue, 28 Jun 2022 14:48:38 +0200
changeset 312
251b9aaae916
parent 311
449116c083bd
child 313
966b5de3182e

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	*/

mercurial