src/InventoryFermentables.cpp

changeset 42
88e827ea7172
parent 34
5510352432f5
child 43
26910c149073
--- a/src/InventoryFermentables.cpp	Sat Mar 05 10:37:09 2022 +0100
+++ b/src/InventoryFermentables.cpp	Sat Mar 05 16:19:52 2022 +0100
@@ -142,6 +142,72 @@
 }
 
 
+void InventoryFermentables::on_exportButton_clicked()
+{
+    qDebug() << Q_FUNC_INFO;
+
+    QSqlQuery query("SELECT * FROM inventory_fermentables ORDER BY supplier,name");
+    const QStringList types({"Grain", "Sugar", "Extract", "Dry extract", "Adjunct"});
+    const QStringList graintypes({"Base", "Roast", "Crystal", "Kilned", "Sour Malt", "Special", "No malt"});
+    const QStringList added({"Mash", "Boil", "Fermentation", "Lagering", "Bottle"});
+
+    QString fileName = QFileDialog::getSaveFileName(this, tr("Save File"), "", tr("Files (*.xml)"));
+    if (fileName == 0) {
+	QMessageBox::warning(this, tr("Save File"), tr("No XML file selected."));
+        return;
+    }
+
+    QFile file(fileName);
+    file.open(QIODevice::WriteOnly);
+
+    QXmlStreamWriter *xmlWriter = new QXmlStreamWriter(&file);
+    xmlWriter->writeStartDocument();
+    xmlWriter->setAutoFormatting(true);
+    xmlWriter->writeStartElement("FERMENTABLES");
+
+    query.first();
+    for (int i = 0 ; i < query.size() ; i++ ) {
+	xmlWriter->writeStartElement("FERMENTABLE");
+	xmlWriter->writeTextElement("VERSION", "1");
+	xmlWriter->writeTextElement("NAME", query.value(1).toString());
+	xmlWriter->writeTextElement("NOTES", query.value(8).toString());
+	xmlWriter->writeTextElement("TYPE", types[query.value(2).toInt()]);
+	xmlWriter->writeTextElement("YIELD", QString::number(query.value(3).toDouble(), 'f', 5));
+	xmlWriter->writeTextElement("COLOR", QString::number(Utils::ebc_to_srm(query.value(4).toDouble()), 'f', 3) );
+	xmlWriter->writeTextElement("ADD_AFTER_BOIL", query.value(5).toInt() ? "TRUE":"FALSE");
+	xmlWriter->writeTextElement("ORIGIN", query.value(6).toString());
+	xmlWriter->writeTextElement("SUPPLIER", query.value(7).toString());
+	if (query.value(9).toDouble() > 0)
+	    xmlWriter->writeTextElement("COARSE_FINE_DIFF", QString::number(query.value(9).toDouble(), 'f', 4));
+	if (query.value(10).toDouble() > 0)
+	    xmlWriter->writeTextElement("MOISTURE", QString::number(query.value(10).toDouble(), 'f', 4));
+	if (query.value(11).toDouble() > 0)
+	    xmlWriter->writeTextElement("DIASTATIC_POWER", QString::number(query.value(11).toDouble(), 'f', 4));
+	if (query.value(12).toDouble() > 0)
+	    xmlWriter->writeTextElement("PROTEIN", QString::number(query.value(12).toDouble(), 'f', 4));
+	if (query.value(14).toDouble() > 0)
+	    xmlWriter->writeTextElement("MAX_IN_BATCH", QString::number(query.value(14).toDouble(), 'f', 3));
+	xmlWriter->writeTextElement("RECOMMEND_MASH", query.value(15).toInt() ? "TRUE":"FALSE");
+	xmlWriter->writeTextElement("DISPLAY_COLOR", QString("%1 EBC").arg(query.value(4).toDouble(), 1, 'f', 0));
+	xmlWriter->writeTextElement("GRAINTYPE", graintypes[query.value(20).toInt()]);
+	xmlWriter->writeTextElement("ADDED", added[query.value(17).toInt()]);
+	if (query.value(18).toDouble() > 0)
+	    xmlWriter->writeTextElement("DI_pH", QString::number(query.value(18).toDouble(), 'f', 5));
+	if (query.value(19).toDouble() > 0)
+	    xmlWriter->writeTextElement("ACID_TO_pH_5.7", QString::number(query.value(19).toDouble(), 'f', 5));
+
+	xmlWriter->writeEndElement();
+	query.next();
+    }
+
+    xmlWriter->writeEndElement();
+    xmlWriter->writeEndDocument();
+    QMessageBox::warning(this, tr("Save File"), tr("XML export ready"));
+
+    file.close();
+}
+
+
 void InventoryFermentables::on_quitButton_clicked()
 {
     emit firstWindow();

mercurial