src/InventoryHops.cpp

Sat, 19 Mar 2022 19:22:58 +0100

author
Michiel Broek <mbroek@mbse.eu>
date
Sat, 19 Mar 2022 19:22:58 +0100
changeset 64
b0d30697af67
parent 44
5a9a159c2d34
child 69
228cb2a01acf
permissions
-rw-r--r--

First step in loading the Inventory Suppliers database on the mainscreen. But, it is loaded at program start en not removed when done. Weird programming to get this working.

24
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1 /**
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2 * InventoryHops.cpp is part of bmsapp.
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3 *
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
4 * bmsapp is free software: you can redistribute it and/or modify
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
5 * it under the terms of the GNU General Public License as published by
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
6 * the Free Software Foundation, either version 3 of the License, or
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
7 * (at your option) any later version.
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
8 *
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
9 * bmsapp is distributed in the hope that it will be useful,
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
12 * GNU General Public License for more details.
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
13 *
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
14 * You should have received a copy of the GNU General Public License
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
16 */
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
17 #include "InventoryHops.h"
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
18 #include "EditHop.h"
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
19 #include "../ui/ui_InventoryHops.h"
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
20 #include "config.h"
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
21 #include "bmsapp.h"
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
22
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
23
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
24 InventoryHops::InventoryHops(QWidget *parent) : QDialog(parent), ui(new Ui::InventoryHops)
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
25 {
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
26 qDebug() << "InventoryHops start";
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
27
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
28 ui->setupUi(this);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
29 emit refreshTable();
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
30
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
31 setWindowTitle( QString("BMSapp - %1 - Inventory Hops").arg(VERSIONSTRING) );
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
32 }
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
33
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
34
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
35 void InventoryHops::refreshTable()
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
36 {
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
37 QString w;
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
38
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
39 qDebug() << "InventoryHops reload";
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
40
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
41 QSqlQuery query("SELECT * FROM inventory_hops ORDER BY origin,name");
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
42 const QStringList labels({tr("Origin"), tr("Name"), tr("Type"), tr("Form"), tr("Alpha"), tr("Beta"), tr("Cohumulone"), tr("HSI"), tr("Harvest"), tr("Stock"), tr("Edit")});
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
43 const QStringList types({tr("Bittering"), tr("Aroma"), tr("Both")});
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
44 const QStringList form({tr("Pellet"), tr("Plug"), tr("Leaf"), tr("Leaf Wet"), tr("Cryo")});
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
45
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
46 /* origin supplier name type graintype color yield inventory Edit */
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
47 ui->tableHops->setColumnCount(11);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
48 ui->tableHops->setColumnWidth(0, 130); /* Origin */
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
49 ui->tableHops->setColumnWidth(1, 250); /* Name */
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
50 ui->tableHops->setColumnWidth(2, 80); /* Type */
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
51 ui->tableHops->setColumnWidth(3, 80); /* Form */
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
52 ui->tableHops->setColumnWidth(4, 80); /* Alpha */
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
53 ui->tableHops->setColumnWidth(5, 80); /* Beta */
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
54 ui->tableHops->setColumnWidth(6, 80); /* cohumulone */
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
55 ui->tableHops->setColumnWidth(7, 80); /* HSI */
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
56 ui->tableHops->setColumnWidth(8, 80); /* Harvest date */
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
57 ui->tableHops->setColumnWidth(9, 80); /* Stock */
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
58 ui->tableHops->setColumnWidth(10, 80); /* Edit button */
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
59 ui->tableHops->setRowCount(query.size());
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
60 ui->tableHops->setHorizontalHeaderLabels(labels);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
61 ui->tableHops->verticalHeader()->hide();
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
62 ui->tableHops->setFixedSize(1100 + 24, 640); /* Even if this is too large, it works */
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
63
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
64 QTableWidgetItem *rightitem = new QTableWidgetItem();
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
65 rightitem->setTextAlignment(Qt::AlignRight);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
66
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
67 query.first();
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
68 for (int ridx = 0 ; ridx < query.size() ; ridx++ ) {
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
69 ui->tableHops->setItem(ridx, 0, new QTableWidgetItem(query.value(12).toString())); /* Origin */
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
70 ui->tableHops->setItem(ridx, 1, new QTableWidgetItem(query.value(1).toString())); /* Name */
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
71 ui->tableHops->setItem(ridx, 2, new QTableWidgetItem(types[query.value(9).toInt()])); /* Type */
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
72 ui->tableHops->setItem(ridx, 3, new QTableWidgetItem(form[query.value(10).toInt()])); /* Form */
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
73 w = QString("%1 %").arg(query.value(2).toDouble(), 2, 'f', 1, '0' ); /* Alpha% */
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
74 QTableWidgetItem *item = new QTableWidgetItem(w);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
75 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
76 ui->tableHops->setItem(ridx, 4, item);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
77 w = QString("%1 %").arg(query.value(3).toDouble(), 2, 'f', 1, '0' ); /* Beta% */
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
78 item = new QTableWidgetItem(w);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
79 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
80 ui->tableHops->setItem(ridx, 5, item);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
81
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
82 w = QString("%1 %").arg(query.value(6).toDouble(), 2, 'f', 1, '0' ); /* Cohumulone */
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
83 item = new QTableWidgetItem(w);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
84 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
85 ui->tableHops->setItem(ridx, 6, item);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
86
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
87 w = QString("%1").arg(query.value(8).toDouble(), 2, 'f', 1, '0' ); /* HSI */
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
88 item = new QTableWidgetItem(w);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
89 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
90 ui->tableHops->setItem(ridx, 7, item);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
91
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
92 if (query.value(15).toDouble() > 0)
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
93 ui->tableHops->setItem(ridx, 8, new QTableWidgetItem(query.value(17).toString())); /* Harvest */
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
94 else
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
95 ui->tableHops->setItem(ridx, 8, new QTableWidgetItem(QString("")));
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
96
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
97 w = QString("");
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
98 if (query.value(15).toDouble() > 0) {
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
99 if (query.value(15).toDouble() < 1.000) {
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
100 w = QString("%1 gr").arg(query.value(15).toDouble() * 1000.0, 2, 'f', 1, '0' );
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
101 } else {
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
102 w = QString("%1 kg").arg(query.value(15).toDouble(), 4, 'f', 3, '0' );
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
103 }
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
104 }
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
105 item = new QTableWidgetItem(w);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
106 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
107 ui->tableHops->setItem(ridx, 9, item);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
108
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
109 /* Add the Edit button */
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
110 QWidget* pWidget = new QWidget();
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
111 QPushButton* btn_edit = new QPushButton();
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
112 btn_edit->setObjectName(QString("%1").arg(query.value(0).toString())); /* Send record with the button */
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
113 btn_edit->setText(tr("Edit"));
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
114 connect(btn_edit, SIGNAL(clicked()), this, SLOT(on_editButton_clicked()));
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
115 QHBoxLayout* pLayout = new QHBoxLayout(pWidget);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
116 pLayout->addWidget(btn_edit);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
117 pLayout->setContentsMargins(5, 0, 5, 0);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
118 pWidget->setLayout(pLayout);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
119 ui->tableHops->setCellWidget(ridx, 10, pWidget);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
120 query.next();
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
121 }
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
122
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
123 setWindowTitle( QString("BMSapp - %1 - Inventory Hops").arg(VERSIONSTRING) );
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
124 }
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
125
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
126
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
127 InventoryHops::~InventoryHops()
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
128 {
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
129 qDebug() << "InventoryHops done";
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
130 delete ui;
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
131 }
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
132
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
133
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
134 void InventoryHops::edit(int recno)
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
135 {
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
136 qDebug() << "InventoryHops edit:" << recno;
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
137
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
138 EditHop dialog(recno, this);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
139 /* Signal from editor if a refresh is needed */
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
140 connect(&dialog, SIGNAL(entry_changed()), this, SLOT(refreshTable()));
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
141 dialog.setModal(true);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
142 dialog.exec();
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
143 }
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
144
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
145
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
146 void InventoryHops::on_editButton_clicked()
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
147 {
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
148 QPushButton *pb = qobject_cast<QPushButton *>(QObject::sender());
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
149 int recno = pb->objectName().toInt();
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
150 qDebug() << Q_FUNC_INFO << recno;
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
151 edit(recno);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
152 }
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
153
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
154
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
155 void InventoryHops::on_insertButton_clicked()
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
156 {
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
157 qDebug() << Q_FUNC_INFO;
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
158 edit(-1);
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
159 }
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
160
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
161
44
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
162 void InventoryHops::on_exportButton_clicked()
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
163 {
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
164 qDebug() << Q_FUNC_INFO;
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
165
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
166 QSqlQuery query("SELECT * FROM inventory_hops ORDER BY origin,name");
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
167 const QStringList types({ "Bittering", "Aroma", "Both" });
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
168 const QStringList forms({ "Pellet", "Plug", "Leaf", "Leaf", "Pellet" });
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
169 /* "Leaf Wet", "Cryo" */
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
170 /* We use more hp forms then beerxml knows about, so we send known names */
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
171 /* instead of what we internally use. */
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
172
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
173 QString fileName = QFileDialog::getSaveFileName(this, tr("Save File"), QDir::homePath() + "/hops.xml", tr("Files (*.xml)"));
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
174 if (fileName == 0) {
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
175 QMessageBox::warning(this, tr("Save File"), tr("No XML file selected."));
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
176 return;
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
177 }
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
178
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
179 QFile file(fileName);
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
180 file.open(QIODevice::WriteOnly);
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
181
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
182 QXmlStreamWriter *xmlWriter = new QXmlStreamWriter(&file);
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
183 xmlWriter->writeStartDocument();
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
184 xmlWriter->setAutoFormatting(true);
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
185 xmlWriter->setAutoFormattingIndent(1);
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
186 xmlWriter->writeStartElement("HOPS");
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
187
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
188 query.first();
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
189 for (int i = 0 ; i < query.size() ; i++ ) {
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
190 xmlWriter->writeStartElement("HOP");
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
191 xmlWriter->writeTextElement("VERSION", "1");
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
192 xmlWriter->writeTextElement("NAME", query.value(1).toString());
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
193 if (query.value(11).toString().length())
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
194 xmlWriter->writeTextElement("NOTES", query.value(11).toString());
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
195 xmlWriter->writeTextElement("ALWAYS_ON_STOCK", query.value(14).toInt() ? "TRUE":"FALSE");
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
196 xmlWriter->writeTextElement("ALPHA", QString::number(query.value(2).toDouble(), 'f', 4));
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
197 xmlWriter->writeTextElement("BETA", QString::number(query.value(3).toDouble(), 'f', 4));
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
198 xmlWriter->writeTextElement("HUMULENE", QString::number(query.value(4).toDouble(), 'f', 4));
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
199 xmlWriter->writeTextElement("CAROPHYLLENE", QString::number(query.value(5).toDouble(), 'f', 4));
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
200 xmlWriter->writeTextElement("COHUMULONE", QString::number(query.value(6).toDouble(), 'f', 4));
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
201 xmlWriter->writeTextElement("MYRCENE", QString::number(query.value(7).toDouble(), 'f', 4));
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
202 xmlWriter->writeTextElement("TOTAL_OIL", QString::number(query.value(19).toDouble(), 'f', 4));
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
203 xmlWriter->writeTextElement("HSI", QString::number(query.value(8).toDouble(), 'f', 4));
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
204 xmlWriter->writeTextElement("TYPE", types[query.value(9).toInt()]);
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
205 xmlWriter->writeTextElement("FORM", forms[query.value(10).toInt()]);
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
206 xmlWriter->writeTextElement("ORIGIN", query.value(12).toString());
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
207 if (query.value(13).toString().length())
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
208 xmlWriter->writeTextElement("SUBSTITUTES", query.value(13).toString());
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
209 if (query.value(16).toDouble() > 0)
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
210 xmlWriter->writeTextElement("COST", QString::number(query.value(16).toDouble(), 'f', 4));
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
211 xmlWriter->writeEndElement();
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
212 query.next();
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
213 }
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
214
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
215 xmlWriter->writeEndElement();
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
216 xmlWriter->writeEndDocument();
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
217 QMessageBox::information(this, tr("Save File"), tr("XML export ready"));
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
218
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
219 file.close();
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
220 }
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
221
5a9a159c2d34 Added yeasts and hops XML exports.
Michiel Broek <mbroek@mbse.eu>
parents: 24
diff changeset
222
24
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
223 void InventoryHops::on_quitButton_clicked()
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
224 {
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
225 emit firstWindow();
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
226 }
684c6e74cc1b Added hops editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
227

mercurial