Switch to C++ and Qt

This commit is contained in:
Aurélie Delhaie
2021-10-25 22:49:07 +02:00
parent 720ae427e7
commit fad936e21b
13 changed files with 545 additions and 685 deletions

75
version2upgrader.cpp Normal file
View File

@@ -0,0 +1,75 @@
#include "version2upgrader.h"
Version2Upgrader::Version2Upgrader()
{
}
QJsonObject Version2Upgrader::Upgrade(QJsonObject old)
{
if (old["version"].toInt() == 1) {
QJsonObject newVersion;
newVersion["version"] = 2;
newVersion["template"] = UpgradeTemplate(old["template"].toObject());
newVersion["weeks"] = UpgradeWeeks(old["weeks"].toArray());
return newVersion;
}
return old;
}
QJsonObject Version2Upgrader::UpgradeTemplate(QJsonObject week)
{
QJsonObject newTemplate;
newTemplate["monday"] = UpgradeDay(week["monday"].toObject(), false);
newTemplate["tuesday"] = UpgradeDay(week["tuesday"].toObject(), false);
newTemplate["wednesday"] = UpgradeDay(week["wednesday"].toObject(), false);
newTemplate["thurday"] = UpgradeDay(week["thurday"].toObject(), false);
newTemplate["friday"] = UpgradeDay(week["friday"].toObject(), false);
newTemplate["weekNumber"] = week["weekNumber"].toInt();
return newTemplate;
}
QJsonArray Version2Upgrader::UpgradeWeeks(QJsonArray weeks)
{
QDate date = QDate::currentDate();
int dow = date.dayOfWeek();
int weekNumber = date.weekNumber();
QJsonArray newWeeks;
foreach (QJsonValue value, weeks) {
QJsonObject newWeek;
QJsonObject week = value.toObject();
if (week["weekNumber"].toInt() < weekNumber) {
newWeek["monday"] = UpgradeDay(week["monday"].toObject(), true);
newWeek["tuesday"] = UpgradeDay(week["tuesday"].toObject(), true);
newWeek["wednesday"] = UpgradeDay(week["wednesday"].toObject(), true);
newWeek["thurday"] = UpgradeDay(week["thurday"].toObject(), true);
newWeek["friday"] = UpgradeDay(week["friday"].toObject(), true);
} else if (week["weekNumber"].toInt() == weekNumber) {
newWeek["monday"] = UpgradeDay(week["monday"].toObject(), dow > 1);
newWeek["tuesday"] = UpgradeDay(week["tuesday"].toObject(), dow > 2);
newWeek["wednesday"] = UpgradeDay(week["wednesday"].toObject(), dow > 3);
newWeek["thurday"] = UpgradeDay(week["thurday"].toObject(), dow > 4);
newWeek["friday"] = UpgradeDay(week["friday"].toObject(), dow > 5);
} else {
newWeek["monday"] = UpgradeDay(week["monday"].toObject(), false);
newWeek["tuesday"] = UpgradeDay(week["tuesday"].toObject(), false);
newWeek["wednesday"] = UpgradeDay(week["wednesday"].toObject(), false);
newWeek["thurday"] = UpgradeDay(week["thurday"].toObject(), false);
newWeek["friday"] = UpgradeDay(week["friday"].toObject(), false);
}
newWeek["weekNumber"] = week["weekNumber"].toInt();
newWeeks.append(newWeek);
}
return newWeeks;
}
QJsonObject Version2Upgrader::UpgradeDay(QJsonObject day, bool validate)
{
QJsonObject newDay;
newDay["break"] = day["break"].toInt();
newDay["start"] = day["start"].toString();
newDay["end"] = day["end"].toString();
newDay["validate"] = validate;
return newDay;
}