# HG changeset patch # User Michiel Broek # Date 1646562392 -3600 # Node ID 404b79f6a68139d9addec0058b22fa2700dc2c32 # Parent 4024b389f6893bf0b54496b241ed1c5ab2260502 Added waters CML export. diff -r 4024b389f689 -r 404b79f6a681 src/InventoryWaters.cpp --- a/src/InventoryWaters.cpp Sat Mar 05 21:49:36 2022 +0100 +++ b/src/InventoryWaters.cpp Sun Mar 06 11:26:32 2022 +0100 @@ -137,6 +137,56 @@ } +void InventoryWaters::on_exportButton_clicked() +{ + qDebug() << Q_FUNC_INFO; + + QSqlQuery query("SELECT * FROM inventory_waters ORDER BY name"); + + QString fileName = QFileDialog::getSaveFileName(this, tr("Save File"), QDir::homePath() + "/waters.xml", 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->setAutoFormattingIndent(1); + xmlWriter->writeStartElement("WATERS"); + + query.first(); + for (int i = 0 ; i < query.size() ; i++ ) { + xmlWriter->writeStartElement("WATER"); + xmlWriter->writeTextElement("VERSION", "1"); + xmlWriter->writeTextElement("NAME", query.value(1).toString()); + if (query.value(13).toDouble() > 0) + xmlWriter->writeTextElement("COST", QString::number(query.value(13).toDouble(), 'f', 5)); + if (query.value(10).toString().length()) + xmlWriter->writeTextElement("NOTES", query.value(10).toString()); + xmlWriter->writeTextElement("CALCIUM", QString::number(query.value(3).toDouble(), 'f', 4)); + xmlWriter->writeTextElement("BICARBONATE", QString::number(query.value(4).toDouble(), 'f', 4)); + xmlWriter->writeTextElement("SULFATE", QString::number(query.value(5).toDouble(), 'f', 4)); + xmlWriter->writeTextElement("CHLORIDE", QString::number(query.value(6).toDouble(), 'f', 4)); + xmlWriter->writeTextElement("SODIUM", QString::number(query.value(7).toDouble(), 'f', 4)); + xmlWriter->writeTextElement("MAGNESIUM", QString::number(query.value(8).toDouble(), 'f', 4)); + xmlWriter->writeTextElement("TOTAL_ALKALINITY", QString::number(query.value(11).toDouble(), 'f', 4)); + xmlWriter->writeTextElement("PH", QString::number(query.value(9).toDouble(), 'f', 5)); + xmlWriter->writeEndElement(); + query.next(); + } + + xmlWriter->writeEndElement(); + xmlWriter->writeEndDocument(); + QMessageBox::information(this, tr("Save File"), tr("XML export ready")); + + file.close(); +} + + void InventoryWaters::on_quitButton_clicked() { emit firstWindow(); diff -r 4024b389f689 -r 404b79f6a681 src/InventoryWaters.h --- a/src/InventoryWaters.h Sat Mar 05 21:49:36 2022 +0100 +++ b/src/InventoryWaters.h Sun Mar 06 11:26:32 2022 +0100 @@ -22,6 +22,7 @@ void on_quitButton_clicked(); void on_insertButton_clicked(); void on_editButton_clicked(); + void on_exportButton_clicked(); void refreshTable(void); private: