src/InventoryMiscs.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 45
4024b389f689
child 71
5bd0d7be0167
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.

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

mercurial