# HG changeset patch # User Michiel Broek # Date 1651057489 -7200 # Node ID 541ddf3edb102cdd94640c58feb066001521ec7a # Parent 4bc92122d001c80e294ecbd77ef609ec4e30df5d If percentages are not set when loading a recipe, they are set during the load. diff -r 4bc92122d001 -r 541ddf3edb10 src/EditRecipe.cpp --- a/src/EditRecipe.cpp Wed Apr 27 12:15:36 2022 +0200 +++ b/src/EditRecipe.cpp Wed Apr 27 13:04:49 2022 +0200 @@ -203,6 +203,7 @@ if (parseError.error != QJsonParseError::NoError) { qDebug() << "Parse error: " << parseError.errorString() << "at" << parseError.offset ; } else if (fermentables.isArray()) { + double percentcheck = 0; for (int i = 0; i < fermentables.array().size(); i++) { QJsonObject obj = fermentables.array().at(i).toObject(); //qDebug() << i << obj; @@ -231,9 +232,24 @@ f.f_acid_to_ph_57 = obj["f_acid_to_ph_57"].toDouble(); if (f.f_adjust_to_total_100) recipe->fermentables_use100 = true; + percentcheck += f.f_percentage; recipe->fermentables.append(f); } - qDebug() << "fermentables" << recipe->fermentables.size(); + qDebug() << "fermentables" << recipe->fermentables.size() << percentcheck; + if (percentcheck == 0) { + /* Missing percentages, fix it. */ + double total = 0; + for (int i = 0; i < recipe->fermentables.size(); i++) { + if (recipe->fermentables.at(i).f_added < 4) + total += recipe->fermentables.at(i).f_amount; + } + for (int i = 0; i < recipe->fermentables.size(); i++) { + if (recipe->fermentables.at(i).f_added < 4) + recipe->fermentables[i].f_percentage = round((recipe->fermentables.at(i).f_amount / total) * 10000.0) / 100.0; + } + qDebug() << " fixed missing percentages"; + is_changed(); + } } } else { qDebug() << "empty fermentables";