src/InventoryMiscs.cpp

Mon, 06 Jun 2022 17:15:27 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Mon, 06 Jun 2022 17:15:27 +0200
changeset 260
42b88d85fefc
parent 155
f671c599f65b
child 290
93820a8ffbff
permissions
-rw-r--r--

Fix default divide_size field in products. Update miscs table column 6 and 7 tooltips and display of the buttons after sort. After a new misc product is selected, update the current row index because the row may be moved. Fix some display misc values in the checklist, they were not multiplied by 1000. Fix display of some bars if the value was 24.

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"
155
f671c599f65b Moved more QStringList arrays to global.
Michiel Broek <mbroek@mbse.eu>
parents: 90
diff changeset
21 #include "global.h"
28
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
71
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
24 InventoryMiscs::InventoryMiscs(QWidget *parent) : QDialog(parent)
28
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
71
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
28 gridLayout = new QGridLayout(this);
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
29 gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
30 tableMiscs = new QTableWidget(this);
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
31 tableMiscs->setObjectName(QString::fromUtf8("tableMiscs"));
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
32 tableMiscs->setEnabled(true);
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
33 QSizePolicy sizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding);
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
34 sizePolicy.setHorizontalStretch(0);
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
35 sizePolicy.setVerticalStretch(0);
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
36 tableMiscs->setSizePolicy(sizePolicy);
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
37 tableMiscs->setMinimumSize(QSize(819, 0));
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
38 gridLayout->addWidget(tableMiscs, 0, 0, 1, 1);
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
39
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
40 groupBox = new QGroupBox(this);
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
41 groupBox->setObjectName(QString::fromUtf8("groupBox"));
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
42 groupBox->setEnabled(true);
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
43 groupBox->setFlat(false);
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
44 horizontalLayout = new QHBoxLayout(groupBox);
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
45 horizontalLayout->setSpacing(6);
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
46 horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout"));
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
47 horizontalLayout->setContentsMargins(0, 0, 0, 0);
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
48
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
49 quitButton = new QPushButton(groupBox);
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
50 quitButton->setObjectName(QString::fromUtf8("quitButton"));
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
51 quitButton->setMinimumSize(QSize(80, 24));
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
52 quitButton->setText(tr("Quit"));
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
53 QIcon icon;
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
54 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
55 quitButton->setIcon(icon);
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
56 horizontalLayout->addWidget(quitButton, 0, Qt::AlignLeft);
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
57
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
58 exportButton = new QPushButton(groupBox);
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
59 exportButton->setObjectName(QString::fromUtf8("exportButton"));
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
60 exportButton->setMinimumSize(QSize(80, 24));
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
61 exportButton->setText(tr("Export"));
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
62 QIcon icon1;
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
63 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
64 exportButton->setIcon(icon1);
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
65 horizontalLayout->addWidget(exportButton, 0, Qt::AlignRight);
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
66
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
67 importButton = new QPushButton(groupBox);
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
68 importButton->setObjectName(QString::fromUtf8("importButton"));
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
69 importButton->setMinimumSize(QSize(80, 24));
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
70 importButton->setText(tr("Import"));
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
71 QIcon icon2;
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
72 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
73 importButton->setIcon(icon2);
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
74 horizontalLayout->addWidget(importButton, 0, Qt::AlignRight);
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
75
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
76 insertButton = new QPushButton(groupBox);
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
77 insertButton->setObjectName(QString::fromUtf8("insertButton"));
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
78 insertButton->setMinimumSize(QSize(80, 24));
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
79 insertButton->setText(tr("New"));
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
80 QIcon icon3;
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
81 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
82 insertButton->setIcon(icon3);
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
83 horizontalLayout->addWidget(insertButton, 0, Qt::AlignRight);
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
84 gridLayout->addWidget(groupBox, 1, 0, 1, 1);
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
85
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
86 connect(quitButton, SIGNAL(clicked()), parent, SLOT(fromInventoryMiscs()));
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
87 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
88 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
89 // 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
90 connect(this, SIGNAL(setStatus(QString)), parent, SLOT(statusMsg(QString)));
28
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
91 emit refreshTable();
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
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
95 void InventoryMiscs::refreshTable()
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 QString w;
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
98
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
99 qDebug() << "InventoryMiscs reload";
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
100
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
101 QSqlQuery query("SELECT * FROM inventory_miscs ORDER BY name");
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
102 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
103
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
104 /* 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
105 this->tableMiscs->setColumnCount(6);
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
106 this->tableMiscs->setColumnWidth(0, 275); /* Name */
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
107 this->tableMiscs->setColumnWidth(1, 120); /* Type */
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
108 this->tableMiscs->setColumnWidth(2, 120); /* Use */
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
109 this->tableMiscs->setColumnWidth(3, 120); /* Time */
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
110 this->tableMiscs->setColumnWidth(4, 80); /* Stock */
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
111 this->tableMiscs->setColumnWidth(5, 80); /* Edit button */
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
112 this->tableMiscs->setRowCount(query.size());
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
113 this->tableMiscs->setHorizontalHeaderLabels(labels);
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
114 this->tableMiscs->verticalHeader()->hide();
28
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
115
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
116 QTableWidgetItem *rightitem = new QTableWidgetItem();
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
117 rightitem->setTextAlignment(Qt::AlignRight);
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
118
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
119 query.first();
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
120 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
121 this->tableMiscs->setItem(ridx, 0, new QTableWidgetItem(query.value(1).toString())); /* Name */
155
f671c599f65b Moved more QStringList arrays to global.
Michiel Broek <mbroek@mbse.eu>
parents: 90
diff changeset
122 this->tableMiscs->setItem(ridx, 1, new QTableWidgetItem(misc_types[query.value(2).toInt()])); /* Type */
f671c599f65b Moved more QStringList arrays to global.
Michiel Broek <mbroek@mbse.eu>
parents: 90
diff changeset
123 this->tableMiscs->setItem(ridx, 2, new QTableWidgetItem(misc_uses[query.value(3).toInt()])); /* Use */
28
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
124
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
125 w = QString(""); /* Use time */
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
126 if (query.value(4).toInt() > 0) {
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
127 if (query.value(4).toInt() == 1)
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
128 w = QString("1 minute");
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
129 else if (query.value(4).toInt() < 180)
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
130 w = QString("%1 minutes").arg(query.value(4).toInt());
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
131 else if (query.value(4).toInt() < 1440)
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
132 w = QString("%1 hours").arg(query.value(4).toInt() / 60);
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
133 else if (query.value(4).toInt() == 1440)
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
134 w = QString("1 day");
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
135 else
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
136 w = QString("%1 days").arg(query.value(4).toInt() / 1440);
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
137 }
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
138 QTableWidgetItem *item = new QTableWidgetItem(w);
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
139 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter);
71
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
140 this->tableMiscs->setItem(ridx, 3, item);
28
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 w = QString("");
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
143 if (query.value(9).toDouble() > 0) {
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
144 if (query.value(5).toInt()) { /* Amount is weight */
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
145 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
146 } else {
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
147 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
148 }
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 item = new QTableWidgetItem(w);
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
151 item->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter);
71
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
152 this->tableMiscs->setItem(ridx, 4, item);
28
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
153
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
154 /* Add the Edit button */
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
155 QWidget* pWidget = new QWidget();
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
156 QPushButton* btn_edit = new QPushButton();
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
157 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
158 btn_edit->setText(tr("Edit"));
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
159 connect(btn_edit, SIGNAL(clicked()), this, SLOT(on_editButton_clicked()));
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
160 QHBoxLayout* pLayout = new QHBoxLayout(pWidget);
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
161 pLayout->addWidget(btn_edit);
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
162 pLayout->setContentsMargins(5, 0, 5, 0);
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
163 pWidget->setLayout(pLayout);
71
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
164 this->tableMiscs->setCellWidget(ridx, 5, pWidget);
28
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
165 query.next();
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
166 }
79
e726db72da3c All inventory and profiles now show the items sizes in the statusbar.
Michiel Broek <mbroek@mbse.eu>
parents: 71
diff changeset
167 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
168 }
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
71
5bd0d7be0167 Inventory Miscs now on the mainscreen.
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
171 InventoryMiscs::~InventoryMiscs() {}
28
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
172
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 void InventoryMiscs::edit(int recno)
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
175 {
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
176 EditMisc dialog(recno, this);
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
177 /* Signal from editor if a refresh is needed */
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
178 connect(&dialog, SIGNAL(entry_changed()), this, SLOT(refreshTable()));
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
179 dialog.setModal(true);
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
180 dialog.exec();
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
181 }
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 void InventoryMiscs::on_editButton_clicked()
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
185 {
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
186 QPushButton *pb = qobject_cast<QPushButton *>(QObject::sender());
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
187 int recno = pb->objectName().toInt();
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
188 edit(recno);
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
189 }
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 void InventoryMiscs::on_insertButton_clicked()
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
193 {
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
194 edit(-1);
93a70b1502ca Added the inventory miscs table.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
195 }
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
45
4024b389f689 Added miscs XML export
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
198 void InventoryMiscs::on_exportButton_clicked()
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 qDebug() << Q_FUNC_INFO;
4024b389f689 Added miscs XML export
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
201
4024b389f689 Added miscs XML export
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
202 QSqlQuery query("SELECT * FROM inventory_miscs ORDER BY name");
4024b389f689 Added miscs XML export
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
203 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
204 /* 'Spice', 'Herb', 'Flavor', 'Fining', 'Water agent', 'Yeast nutrient', 'Other' */
4024b389f689 Added miscs XML export
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
205 /* 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
206 /* instead of what we internally use. */
4024b389f689 Added miscs XML export
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
207 const QStringList uses({ "Secondary", "Mash", "Boil", "Primary", "Secondary", "Bottling" });
4024b389f689 Added miscs XML export
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
208 /* 'Starter', 'Mash', 'Boil', 'Primary', 'Secondary', 'Bottling' */
4024b389f689 Added miscs XML export
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
209 /* 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
210
4024b389f689 Added miscs XML export
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
211 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
212 if (fileName == 0) {
4024b389f689 Added miscs XML export
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
213 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
214 return;
4024b389f689 Added miscs XML export
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
215 }
4024b389f689 Added miscs XML export
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
216
4024b389f689 Added miscs XML export
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
217 QFile file(fileName);
4024b389f689 Added miscs XML export
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
218 file.open(QIODevice::WriteOnly);
4024b389f689 Added miscs XML export
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
219
4024b389f689 Added miscs XML export
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
220 QXmlStreamWriter *xmlWriter = new QXmlStreamWriter(&file);
4024b389f689 Added miscs XML export
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
221 xmlWriter->writeStartDocument();
4024b389f689 Added miscs XML export
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
222 xmlWriter->setAutoFormatting(true);
4024b389f689 Added miscs XML export
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
223 xmlWriter->setAutoFormattingIndent(1);
4024b389f689 Added miscs XML export
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
224 xmlWriter->writeStartElement("MISCS");
4024b389f689 Added miscs XML export
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
225
4024b389f689 Added miscs XML export
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
226 query.first();
4024b389f689 Added miscs XML export
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
227 for (int i = 0 ; i < query.size() ; i++ ) {
4024b389f689 Added miscs XML export
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
228 xmlWriter->writeStartElement("MISC");
4024b389f689 Added miscs XML export
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
229 xmlWriter->writeTextElement("VERSION", "1");
4024b389f689 Added miscs XML export
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
230 xmlWriter->writeTextElement("NAME", query.value(1).toString());
4024b389f689 Added miscs XML export
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
231 xmlWriter->writeTextElement("TYPE", types[query.value(2).toInt()]);
4024b389f689 Added miscs XML export
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
232 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
233 xmlWriter->writeTextElement("USE", uses[query.value(3).toInt()]);
4024b389f689 Added miscs XML export
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
234 if (query.value(4).toDouble() > 0)
4024b389f689 Added miscs XML export
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
235 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
236 if (query.value(10).toDouble() > 0)
4024b389f689 Added miscs XML export
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
237 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
238 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
239 if (query.value(7).toString().length())
4024b389f689 Added miscs XML export
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
240 xmlWriter->writeTextElement("NOTES", query.value(7).toString());
4024b389f689 Added miscs XML export
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
241 if (query.value(6).toString().length())
4024b389f689 Added miscs XML export
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
242 xmlWriter->writeTextElement("USE_FOR", query.value(6).toString());
4024b389f689 Added miscs XML export
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
243
4024b389f689 Added miscs XML export
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
244 xmlWriter->writeEndElement();
4024b389f689 Added miscs XML export
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
245 query.next();
4024b389f689 Added miscs XML export
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
246 }
4024b389f689 Added miscs XML export
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
247
4024b389f689 Added miscs XML export
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
248 xmlWriter->writeEndElement();
4024b389f689 Added miscs XML export
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
249 xmlWriter->writeEndDocument();
4024b389f689 Added miscs XML export
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
250 QMessageBox::information(this, tr("Save File"), tr("XML export ready"));
4024b389f689 Added miscs XML export
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
251
4024b389f689 Added miscs XML export
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
252 file.close();
4024b389f689 Added miscs XML export
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
253 }
4024b389f689 Added miscs XML export
Michiel Broek <mbroek@mbse.eu>
parents: 28
diff changeset
254

mercurial