src/ImportXML.cpp

changeset 288
717140ab5647
parent 286
18a7e8d67fc5
child 289
12f915849e4a
equal deleted inserted replaced
287:83e66c6b6e07 288:717140ab5647
967 */ 967 */
968 while (xml->readNext()) { 968 while (xml->readNext()) {
969 if (xml->atEnd()) 969 if (xml->atEnd())
970 break; 970 break;
971 if ((xml->tokenType() == QXmlStreamReader::EndElement) && (xml->name() == "MASHS")) { 971 if ((xml->tokenType() == QXmlStreamReader::EndElement) && (xml->name() == "MASHS")) {
972 qDebug() << "0 /MASHS";
973 break; 972 break;
974 } 973 }
975 if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "MASH")) { 974 if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "MASH")) {
976 /* 975 /*
977 * Mash 976 * Mash
978 */ 977 */
979 total++; 978 total++;
979 Mashs *m = new Mashs();
980 m->name = m->notes = "";
980 981
981 while (xml->readNext()) { 982 while (xml->readNext()) {
982 if (xml->atEnd()) 983 if (xml->atEnd())
983 break; 984 break;
984 if ((xml->tokenType() == QXmlStreamReader::EndElement) && (xml->name() == "MASH")) { 985 if ((xml->tokenType() == QXmlStreamReader::EndElement) && (xml->name() == "MASH")) {
985 // query.exec(sql); 986 query.prepare("INSERT INTO profile_mash SET name=:name, notes=:notes, steps=:steps, uuid=:uuid");
987 query.bindValue(":name", m->name);
988 query.bindValue(":notes", m->notes);
989 query.bindValue(":steps", m->steps.toJson(QJsonDocument::Compact));
990 query.bindValue(":uuid", QUuid::createUuid().toString().mid(1, 36));
991 query.exec();
986 if (query.lastError().isValid()) { 992 if (query.lastError().isValid()) {
987 // qWarning() << sql << query.lastError(); 993 qWarning() << query.lastError();
988 errors++; 994 errors++;
989 } 995 } else {
996 qInfo() << "Inserted mash step" << m->name;
997 }
990 ui->progressBar->setValue(round(100 * xml->characterOffset() / fsize)); 998 ui->progressBar->setValue(round(100 * xml->characterOffset() / fsize));
991 break; 999 break;
992 } 1000 }
993 if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "VERSION")) { 1001 if ((xml->tokenType() == QXmlStreamReader::StartElement) && (
1002 (xml->name() == "VERSION") || (xml->name() == "GRAIN_TEMP") ||
1003 (xml->name() == "TUN_TEMP") || (xml->name() == "SPARGE_TEMP") ||
1004 (xml->name() == "SG_LAST_RUNNINGS") || (xml->name() == "PH_LAST_RUNNINGS") ||
1005 (xml->name() == "PH") || (xml->name() == "TUN_WEIGHT") ||
1006 (xml->name() == "TUN_SPECIFIC_HEAT") || (xml->name() == "EQUIP_ADJUST"))) {
994 // Ignore. 1007 // Ignore.
995 } else { 1008 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "NAME")) {
1009 m->name = xml->readElementText();
1010 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "NOTES")) {
1011 m->notes = xml->readElementText();
1012 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "MASH_STEPS")) {
1013 QJsonArray array;
1014 while (xml->readNext()) {
1015 if (xml->atEnd())
1016 break;
1017 if ((xml->tokenType() == QXmlStreamReader::EndElement) && (xml->name() == "MASH_STEPS")) {
1018 m->steps.setArray(array);
1019 break;
1020 }
1021 if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "MASH_STEP")) {
1022 /*
1023 * Process mash step
1024 */
1025 QJsonObject obj;
1026 while (xml->readNext()) {
1027 if (xml->atEnd())
1028 break;
1029 if ((xml->tokenType() == QXmlStreamReader::EndElement) && (xml->name() == "MASH_STEP")) {
1030 array.append(obj);
1031 break;
1032 }
1033 if ((xml->tokenType() == QXmlStreamReader::StartElement) && (
1034 (xml->name() == "VERSION") || (xml->name() == "DISPLAY_STEP_TEMP") ||
1035 (xml->name() == "PH") || (xml->name() == "WATER_GRAIN_RATIO") ||
1036 (xml->name() == "DECOCTION_AMT") || (xml->name() == "INFUSE_TEMP") ||
1037 (xml->name() == "INFUSE_AMOUNT") || (xml->name() == "DISPLAY_INFUSE_AMT"))) {
1038 // Ignore.
1039 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "NAME")) {
1040 obj.insert("step_name", xml->readElementText());
1041 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "TYPE")) {
1042 QString temp = xml->readElementText();
1043 if (temp == "Infusion")
1044 obj.insert("step_type", 0);
1045 else if (temp == "Temperature")
1046 obj.insert("step_type", 1);
1047 else if (temp == "Decoction")
1048 obj.insert("step_type", 2);
1049 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "STEP_TEMP")) {
1050 obj.insert("step_temp", xml->readElementText().toDouble());
1051 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "END_TEMP")) {
1052 obj.insert("end_temp", xml->readElementText().toDouble());
1053 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "STEP_TIME")) {
1054 obj.insert("step_time", xml->readElementText().toDouble());
1055 } else if ((xml->tokenType() == QXmlStreamReader::StartElement) && (xml->name() == "RAMP_TIME")) {
1056 obj.insert("ramp_time", xml->readElementText().toDouble());
1057 } else {
1058 if (xml->tokenType() == QXmlStreamReader::StartElement)
1059 qDebug() << "4 " << xml->tokenType() << xml->name();
1060 }
1061 }
1062 }
1063 }
1064
1065 } else {
996 if (xml->tokenType() == QXmlStreamReader::StartElement) 1066 if (xml->tokenType() == QXmlStreamReader::StartElement)
997 qDebug() << "2 " << xml->tokenType() << xml->name(); 1067 qDebug() << "2 " << xml->tokenType() << xml->name();
998 } 1068 }
999 } 1069 }
1000 } 1070 }

mercurial