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 } |