Added monitor co2meters overview

Tue, 28 Jun 2022 15:33:52 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Tue, 28 Jun 2022 15:33:52 +0200
changeset 313
966b5de3182e
parent 312
251b9aaae916
child 314
04b93b656b60

Added monitor co2meters overview

src/MonCO2meters.cpp file | annotate | diff | comparison | revisions
src/MonCO2meters.h file | annotate | diff | comparison | revisions
--- 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);
-}
-
--- a/src/MonCO2meters.h	Tue Jun 28 14:48:38 2022 +0200
+++ b/src/MonCO2meters.h	Tue Jun 28 15:33:52 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 refreshCO2meters(QString);
+
 private:
     QGridLayout *gridLayout;
-    QTableWidget *tableSuppliers;
+    QTableWidget *tableCO2meters;
     QGroupBox *groupBox;
     QHBoxLayout *horizontalLayout;
     QPushButton *quitButton;
-    QPushButton *insertButton;
 
     void edit(int recno);
 };

mercurial