src/DetailFermenter.cpp

Wed, 29 Jun 2022 22:19:39 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Wed, 29 Jun 2022 22:19:39 +0200
changeset 317
f78827503fb0
child 318
ff02aca2b63c
permissions
-rw-r--r--

Added DetailFermenter screen

317
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1 /**
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2 * DetailFermenter.cpp is part of bmsapp.
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3 *
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
4 * bmsapp is free software: you can redistribute it and/or modify
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
5 * it under the terms of the GNU General Public License as published by
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
6 * the Free Software Foundation, either version 3 of the License, or
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
7 * (at your option) any later version.
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
8 *
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
9 * bmsapp is distributed in the hope that it will be useful,
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
12 * GNU General Public License for more details.
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
13 *
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
14 * You should have received a copy of the GNU General Public License
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
16 */
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
17 #include "DetailFermenter.h"
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
18 #include "../ui/ui_DetailFermenter.h"
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
19 #include "MainWindow.h"
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
20
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
21
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
22 DetailFermenter::DetailFermenter(int id, QWidget *parent) : QDialog(parent), ui(new Ui::DetailFermenter)
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
23 {
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
24 qDebug() << "DetailFermenter record:" << id;
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
25 ui->setupUi(this);
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
26 this->recno = id;
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
27
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
28 WindowTitle();
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
29
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
30 // connect(ui->nameEdit, &QLineEdit::textChanged, this, &DetailFermenter::is_changed);
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
31 // connect(ui->unlimitedEdit, &QCheckBox::stateChanged, this, &DetailFermenter::is_changed);
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
32 // connect(ui->caEdit, &QDoubleSpinBox::textChanged, this, &DetailFermenter::water_changed);
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
33
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
34 emit refreshTable();
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
35 }
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
36
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
37
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
38 void DetailFermenter::refreshTable()
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
39 {
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
40 QSqlQuery query;
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
41
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
42 qDebug() << "refreshTable fermenter" << this->recno;
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
43
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
44 query.prepare("SELECT * FROM mon_fermenters WHERE record = :recno");
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
45 query.bindValue(":recno", this->recno);
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
46 query.exec();
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
47 if (query.next()) {
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
48
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
49 if (query.value("online").toInt()) {
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
50 if (query.value("mode").toString() == "OFF") {
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
51 ui->powerLED->setChecked(false);
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
52 // disable dropdowns select beer.
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
53 } else {
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
54 ui->powerLED->setChecked(true);
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
55 // enable beerslect
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
56 }
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
57 ui->alarmLED->setChecked((query.value("alarm").toInt() != 0) ? true:false);
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
58
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
59 if (query.value("air_state").toString() == "OK") {
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
60 ui->airThermo->setValue(query.value("air_temperature").toDouble());
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
61 }
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
62 if (query.value("beer_state").toString() == "OK") {
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
63 ui->beerThermo->setValue(query.value("beer_temperature").toDouble());
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
64 }
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
65
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
66 } else {
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
67 /* Offline */
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
68 ui->powerLED->setChecked(false);
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
69 ui->alarmLED->setChecked(true);
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
70
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
71 }
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
72 }
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
73
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
74 }
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
75
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
76
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
77 DetailFermenter::~DetailFermenter()
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
78 {
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
79 qDebug() << "DetailFermenter done";
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
80 delete ui;
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
81 emit entry_changed();
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
82 }
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
83
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
84
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
85 /*
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
86 * Window header, mark any change with '**'
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
87 */
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
88 void DetailFermenter::WindowTitle()
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
89 {
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
90 QString txt;
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
91
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
92 txt = QString(tr("BMSapp - Edit brewing water %1").arg(this->recno));
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
93 setWindowTitle(txt);
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
94 }
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
95
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
96
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
97 void DetailFermenter::on_quitButton_clicked()
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
98 {
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
99 this->close();
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
100 this->setResult(1);
f78827503fb0 Added DetailFermenter screen
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
101 }

mercurial