Thu, 21 Apr 2022 17:22:01 +0200
New recipe, calculate the boil_size. Lot's of ignoreChanges removeals and where needed QSignalBlocker is used. Bottle priming calculation added. In fermentables editor block and release to100 settings only in mash to fermentation steps, bottle and kegging are ignored. Update the IBU slider after hop changes. Set the mash name when another mash profile is selected. Don't backup initial infuse amount if there was no mash table. A small cosmetic layout change on the mash tab.
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" |
71
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
19 | #include "MainWindow.h" |
28
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 | |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
22 | |
71
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
23 | InventoryMiscs::InventoryMiscs(QWidget *parent) : QDialog(parent) |
28
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
24 | { |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
25 | qDebug() << "InventoryMiscs start"; |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
26 | |
71
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
27 | gridLayout = new QGridLayout(this); |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
28 | gridLayout->setObjectName(QString::fromUtf8("gridLayout")); |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
29 | tableMiscs = new QTableWidget(this); |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
30 | tableMiscs->setObjectName(QString::fromUtf8("tableMiscs")); |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
31 | tableMiscs->setEnabled(true); |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
32 | QSizePolicy sizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding); |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
33 | sizePolicy.setHorizontalStretch(0); |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
34 | sizePolicy.setVerticalStretch(0); |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
35 | tableMiscs->setSizePolicy(sizePolicy); |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
36 | tableMiscs->setMinimumSize(QSize(819, 0)); |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
37 | gridLayout->addWidget(tableMiscs, 0, 0, 1, 1); |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
38 | |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
39 | groupBox = new QGroupBox(this); |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
40 | groupBox->setObjectName(QString::fromUtf8("groupBox")); |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
41 | groupBox->setEnabled(true); |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
42 | groupBox->setFlat(false); |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
43 | horizontalLayout = new QHBoxLayout(groupBox); |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
44 | horizontalLayout->setSpacing(6); |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
45 | horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout")); |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
46 | horizontalLayout->setContentsMargins(0, 0, 0, 0); |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
47 | |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
48 | quitButton = new QPushButton(groupBox); |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
49 | quitButton->setObjectName(QString::fromUtf8("quitButton")); |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
50 | quitButton->setMinimumSize(QSize(80, 24)); |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
51 | quitButton->setText(tr("Quit")); |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
52 | QIcon icon; |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
53 | icon.addFile(QString::fromUtf8(":icons/silk/door_out.png"), QSize(), QIcon::Normal, QIcon::Off); |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
54 | quitButton->setIcon(icon); |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
55 | horizontalLayout->addWidget(quitButton, 0, Qt::AlignLeft); |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
56 | |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
57 | exportButton = new QPushButton(groupBox); |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
58 | exportButton->setObjectName(QString::fromUtf8("exportButton")); |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
59 | exportButton->setMinimumSize(QSize(80, 24)); |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
60 | exportButton->setText(tr("Export")); |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
61 | QIcon icon1; |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
62 | icon1.addFile(QString::fromUtf8(":/icons/silk/database_save.png"), QSize(), QIcon::Normal, QIcon::Off); |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
63 | exportButton->setIcon(icon1); |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
64 | horizontalLayout->addWidget(exportButton, 0, Qt::AlignRight); |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
65 | |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
66 | importButton = new QPushButton(groupBox); |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
67 | importButton->setObjectName(QString::fromUtf8("importButton")); |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
68 | importButton->setMinimumSize(QSize(80, 24)); |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
69 | importButton->setText(tr("Import")); |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
70 | QIcon icon2; |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
71 | icon2.addFile(QString::fromUtf8(":/icons/silk/database_add.png"), QSize(), QIcon::Normal, QIcon::Off); |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
72 | importButton->setIcon(icon2); |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
73 | horizontalLayout->addWidget(importButton, 0, Qt::AlignRight); |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
74 | |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
75 | insertButton = new QPushButton(groupBox); |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
76 | insertButton->setObjectName(QString::fromUtf8("insertButton")); |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
77 | insertButton->setMinimumSize(QSize(80, 24)); |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
78 | insertButton->setText(tr("New")); |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
79 | QIcon icon3; |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
80 | icon3.addFile(QString::fromUtf8(":icons/silk/table_row_insert.png"), QSize(), QIcon::Normal, QIcon::Off); |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
81 | insertButton->setIcon(icon3); |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
82 | horizontalLayout->addWidget(insertButton, 0, Qt::AlignRight); |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
83 | gridLayout->addWidget(groupBox, 1, 0, 1, 1); |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
84 | |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
85 | connect(quitButton, SIGNAL(clicked()), parent, SLOT(fromInventoryMiscs())); |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
86 | connect(insertButton, SIGNAL(clicked()), this, SLOT(on_insertButton_clicked())); |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
87 | connect(exportButton, SIGNAL(clicked()), this, SLOT(on_exportButton_clicked())); |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
88 | // connect(importButton, SIGNAL(clicked()), this, SLOT(on_importButton_clicked())); |
79
e726db72da3c
All inventory and profiles now show the items sizes in the statusbar.
Michiel Broek <mbroek@mbse.eu>
parents:
71
diff
changeset
|
89 | connect(this, SIGNAL(setStatus(QString)), parent, SLOT(statusMsg(QString))); |
28
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
90 | emit refreshTable(); |
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 | |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
94 | void InventoryMiscs::refreshTable() |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
95 | { |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
96 | QString w; |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
97 | |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
98 | qDebug() << "InventoryMiscs reload"; |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
99 | |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
100 | QSqlQuery query("SELECT * FROM inventory_miscs ORDER BY name"); |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
101 | 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
|
102 | 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
|
103 | 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
|
104 | |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
105 | /* origin supplier name type graintype color yield inventory Edit */ |
71
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
106 | this->tableMiscs->setColumnCount(6); |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
107 | this->tableMiscs->setColumnWidth(0, 275); /* Name */ |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
108 | this->tableMiscs->setColumnWidth(1, 120); /* Type */ |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
109 | this->tableMiscs->setColumnWidth(2, 120); /* Use */ |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
110 | this->tableMiscs->setColumnWidth(3, 120); /* Time */ |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
111 | this->tableMiscs->setColumnWidth(4, 80); /* Stock */ |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
112 | this->tableMiscs->setColumnWidth(5, 80); /* Edit button */ |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
113 | this->tableMiscs->setRowCount(query.size()); |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
114 | this->tableMiscs->setHorizontalHeaderLabels(labels); |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
115 | this->tableMiscs->verticalHeader()->hide(); |
28
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 | QTableWidgetItem *rightitem = new QTableWidgetItem(); |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
118 | rightitem->setTextAlignment(Qt::AlignRight); |
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 | query.first(); |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
121 | for (int ridx = 0 ; ridx < query.size() ; ridx++ ) { |
71
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
122 | this->tableMiscs->setItem(ridx, 0, new QTableWidgetItem(query.value(1).toString())); /* Name */ |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
123 | this->tableMiscs->setItem(ridx, 1, new QTableWidgetItem(types[query.value(2).toInt()])); /* Type */ |
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
124 | this->tableMiscs->setItem(ridx, 2, new QTableWidgetItem(use[query.value(3).toInt()])); /* Use */ |
28
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 | w = QString(""); /* Use time */ |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
127 | if (query.value(4).toInt() > 0) { |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
128 | if (query.value(4).toInt() == 1) |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
129 | w = QString("1 minute"); |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
130 | else if (query.value(4).toInt() < 180) |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
131 | w = QString("%1 minutes").arg(query.value(4).toInt()); |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
132 | else if (query.value(4).toInt() < 1440) |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
133 | w = QString("%1 hours").arg(query.value(4).toInt() / 60); |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
134 | else if (query.value(4).toInt() == 1440) |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
135 | w = QString("1 day"); |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
136 | else |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
137 | w = QString("%1 days").arg(query.value(4).toInt() / 1440); |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
138 | } |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
139 | QTableWidgetItem *item = new QTableWidgetItem(w); |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
140 | item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter); |
71
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
141 | this->tableMiscs->setItem(ridx, 3, item); |
28
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 | w = QString(""); |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
144 | if (query.value(9).toDouble() > 0) { |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
145 | if (query.value(5).toInt()) { /* Amount is weight */ |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
146 | 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
|
147 | } else { |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
148 | 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
|
149 | } |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
150 | } |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
151 | item = new QTableWidgetItem(w); |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
152 | item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter); |
71
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
153 | this->tableMiscs->setItem(ridx, 4, item); |
28
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
154 | |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
155 | /* Add the Edit button */ |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
156 | QWidget* pWidget = new QWidget(); |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
157 | QPushButton* btn_edit = new QPushButton(); |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
158 | 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
|
159 | btn_edit->setText(tr("Edit")); |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
160 | connect(btn_edit, SIGNAL(clicked()), this, SLOT(on_editButton_clicked())); |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
161 | QHBoxLayout* pLayout = new QHBoxLayout(pWidget); |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
162 | pLayout->addWidget(btn_edit); |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
163 | pLayout->setContentsMargins(5, 0, 5, 0); |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
164 | pWidget->setLayout(pLayout); |
71
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
165 | this->tableMiscs->setCellWidget(ridx, 5, pWidget); |
28
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
166 | query.next(); |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
167 | } |
79
e726db72da3c
All inventory and profiles now show the items sizes in the statusbar.
Michiel Broek <mbroek@mbse.eu>
parents:
71
diff
changeset
|
168 | emit setStatus(QString(tr("Total items: %1")).arg(query.size())); |
28
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
169 | } |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
170 | |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
171 | |
71
5bd0d7be0167
Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
172 | InventoryMiscs::~InventoryMiscs() {} |
28
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
173 | |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
174 | |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
175 | void InventoryMiscs::edit(int recno) |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
176 | { |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
177 | EditMisc dialog(recno, this); |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
178 | /* Signal from editor if a refresh is needed */ |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
179 | connect(&dialog, SIGNAL(entry_changed()), this, SLOT(refreshTable())); |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
180 | dialog.setModal(true); |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
181 | dialog.exec(); |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
182 | } |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
183 | |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
184 | |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
185 | void InventoryMiscs::on_editButton_clicked() |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
186 | { |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
187 | QPushButton *pb = qobject_cast<QPushButton *>(QObject::sender()); |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
188 | int recno = pb->objectName().toInt(); |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
189 | edit(recno); |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
190 | } |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
191 | |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
192 | |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
193 | void InventoryMiscs::on_insertButton_clicked() |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
194 | { |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
195 | edit(-1); |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
196 | } |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
197 | |
93a70b1502ca
Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
198 | |
45 | 199 | void InventoryMiscs::on_exportButton_clicked() |
200 | { | |
201 | qDebug() << Q_FUNC_INFO; | |
202 | ||
203 | QSqlQuery query("SELECT * FROM inventory_miscs ORDER BY name"); | |
204 | const QStringList types({ "Spice", "Herb", "Flavor", "Fining", "Water agent", "Other", "Other" }); | |
205 | /* 'Spice', 'Herb', 'Flavor', 'Fining', 'Water agent', 'Yeast nutrient', 'Other' */ | |
206 | /* We use more misc types then beerxml knows about, so we send known names */ | |
207 | /* instead of what we internally use. */ | |
208 | const QStringList uses({ "Secondary", "Mash", "Boil", "Primary", "Secondary", "Bottling" }); | |
209 | /* 'Starter', 'Mash', 'Boil', 'Primary', 'Secondary', 'Bottling' */ | |
210 | /* Stupid beerxml leaves us no other choice then to map a starter ingredient to secondary */ | |
211 | ||
212 | QString fileName = QFileDialog::getSaveFileName(this, tr("Save File"), QDir::homePath() + "/miscs.xml", tr("Files (*.xml)")); | |
213 | if (fileName == 0) { | |
214 | QMessageBox::warning(this, tr("Save File"), tr("No XML file selected.")); | |
215 | return; | |
216 | } | |
217 | ||
218 | QFile file(fileName); | |
219 | file.open(QIODevice::WriteOnly); | |
220 | ||
221 | QXmlStreamWriter *xmlWriter = new QXmlStreamWriter(&file); | |
222 | xmlWriter->writeStartDocument(); | |
223 | xmlWriter->setAutoFormatting(true); | |
224 | xmlWriter->setAutoFormattingIndent(1); | |
225 | xmlWriter->writeStartElement("MISCS"); | |
226 | ||
227 | query.first(); | |
228 | for (int i = 0 ; i < query.size() ; i++ ) { | |
229 | xmlWriter->writeStartElement("MISC"); | |
230 | xmlWriter->writeTextElement("VERSION", "1"); | |
231 | xmlWriter->writeTextElement("NAME", query.value(1).toString()); | |
232 | xmlWriter->writeTextElement("TYPE", types[query.value(2).toInt()]); | |
233 | xmlWriter->writeTextElement("AMOUNT_IS_WEIGHT", query.value(5).toInt() ? "TRUE":"FALSE"); | |
234 | xmlWriter->writeTextElement("USE", uses[query.value(3).toInt()]); | |
235 | if (query.value(4).toDouble() > 0) | |
236 | xmlWriter->writeTextElement("TIME", QString::number(query.value(4).toDouble(), 'f', 3)); | |
237 | if (query.value(10).toDouble() > 0) | |
238 | xmlWriter->writeTextElement("COST", QString::number(query.value(10).toDouble(), 'f', 5)); | |
239 | xmlWriter->writeTextElement("ALWAYS_ON_STOCK", query.value(8).toInt() ? "TRUE":"FALSE"); | |
240 | if (query.value(7).toString().length()) | |
241 | xmlWriter->writeTextElement("NOTES", query.value(7).toString()); | |
242 | if (query.value(6).toString().length()) | |
243 | xmlWriter->writeTextElement("USE_FOR", query.value(6).toString()); | |
244 | ||
245 | xmlWriter->writeEndElement(); | |
246 | query.next(); | |
247 | } | |
248 | ||
249 | xmlWriter->writeEndElement(); | |
250 | xmlWriter->writeEndDocument(); | |
251 | QMessageBox::information(this, tr("Save File"), tr("XML export ready")); | |
252 | ||
253 | file.close(); | |
254 | } | |
255 |