From dcc90fb00981fc271403af7f85f6b1687203a4e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lie=20Delhaie?= Date: Sun, 16 Oct 2022 17:37:42 +0200 Subject: [PATCH] Upgrade to version 4 --- chronos-save-updater.pro | 10 +- chronos-save-updater.pro.user | 83 ++++++--- chronos-save-updater.pro.user.67c351c | 231 ++++++++++++++++++++++++++ main.cpp | 8 +- version4upgrader.cpp | 75 +++++++++ version4upgrader.h | 25 +++ 6 files changed, 400 insertions(+), 32 deletions(-) create mode 100644 chronos-save-updater.pro.user.67c351c create mode 100644 version4upgrader.cpp create mode 100644 version4upgrader.h diff --git a/chronos-save-updater.pro b/chronos-save-updater.pro index e366b06..61d33d1 100644 --- a/chronos-save-updater.pro +++ b/chronos-save-updater.pro @@ -17,7 +17,7 @@ win32 { QMAKE_CXXFLAGS_RELEASE += -favor:INTEL64 } RC_ICONS = icon.ico - VERSION = 2.0.0.0 + VERSION = 2.1.0.0 QMAKE_TARGET_COMPANY = "Aurélie Delhaie" QMAKE_TARGET_PRODUCT = "Chronos Updater" QMAKE_TARGET_DESCRIPTION = "Chronos Updater" @@ -34,7 +34,7 @@ macx { message("CPU Architecture : aarch64") QMAKE_CXXFLAGS_RELEASE += -mcpu=apple-a14 } - VERSION = 2.0.0 + VERSION = 2.1.0 } # You can make your code fail to compile if it uses deprecated APIs. @@ -44,7 +44,8 @@ macx { SOURCES += \ main.cpp \ version2upgrader.cpp \ - version3upgrader.cpp + version3upgrader.cpp \ + version4upgrader.cpp # Default rules for deployment. qnx: target.path = /tmp/$${TARGET}/bin @@ -53,4 +54,5 @@ else: unix:!android: target.path = /opt/$${TARGET}/bin HEADERS += \ version2upgrader.h \ - version3upgrader.h + version3upgrader.h \ + version4upgrader.h diff --git a/chronos-save-updater.pro.user b/chronos-save-updater.pro.user index d4821d7..c2ca9a7 100644 --- a/chronos-save-updater.pro.user +++ b/chronos-save-updater.pro.user @@ -1,14 +1,14 @@ - + EnvironmentId - {67c351c8-ac7f-4fbb-b594-e8b60a17310f} + {a63f5837-38f7-48da-a346-54dee9384be2} ProjectExplorer.Project.ActiveTarget - 0 + 0 ProjectExplorer.Project.EditorSettings @@ -28,7 +28,7 @@ QmlJSGlobal - 2 + 2 UTF-8 false 4 @@ -56,20 +56,46 @@ true + + ProjectExplorer.Project.PluginSettings + + + true + false + true + true + true + true + + + 0 + true + + true + true + Builtin.DefaultTidyAndClazy + 8 + + + + true + + + ProjectExplorer.Project.Target.0 Desktop - Desktop Qt 6.2.0 MSVC2019 64bit - Desktop Qt 6.2.0 MSVC2019 64bit - qt.qt6.620.win64_msvc2019_64_kit - 0 - 0 - 0 + Desktop Qt 6.4.0 GCC 64bit + Desktop Qt 6.4.0 GCC 64bit + qt.qt6.640.gcc_64_kit + 0 + 0 + 0 0 - E:\Qt Projects Sources\build-chronos-save-updater-Desktop_Qt_6_2_0_MSVC2019_64bit-Debug - E:/Qt Projects Sources/build-chronos-save-updater-Desktop_Qt_6_2_0_MSVC2019_64bit-Debug + /home/aurelie/Documents/build-chronos-save-updater-Desktop_Qt_6_4_0_GCC_64bit-Debug + /home/aurelie/Documents/build-chronos-save-updater-Desktop_Qt_6_4_0_GCC_64bit-Debug true @@ -81,7 +107,7 @@ true Qt4ProjectManager.MakeStep - 2 + 2 Build Build ProjectExplorer.BuildSteps.Build @@ -92,7 +118,7 @@ Qt4ProjectManager.MakeStep clean - 1 + 1 Clean Clean ProjectExplorer.BuildSteps.Clean @@ -100,14 +126,15 @@ 2 false + false Debug Qt4ProjectManager.Qt4BuildConfiguration 2 - E:\Qt Projects Sources\build-chronos-save-updater-Desktop_Qt_6_2_0_MSVC2019_64bit-Release - E:/Qt Projects Sources/build-chronos-save-updater-Desktop_Qt_6_2_0_MSVC2019_64bit-Release + /home/aurelie/Documents/build-chronos-save-updater-Desktop_Qt_6_4_0_GCC_64bit-Release + /home/aurelie/Documents/build-chronos-save-updater-Desktop_Qt_6_4_0_GCC_64bit-Release true @@ -119,7 +146,7 @@ true Qt4ProjectManager.MakeStep - 2 + 2 Build Build ProjectExplorer.BuildSteps.Build @@ -130,7 +157,7 @@ Qt4ProjectManager.MakeStep clean - 1 + 1 Clean Clean ProjectExplorer.BuildSteps.Clean @@ -138,6 +165,7 @@ 2 false + false Release Qt4ProjectManager.Qt4BuildConfiguration @@ -146,8 +174,8 @@ 0 - E:\Qt Projects Sources\build-chronos-save-updater-Desktop_Qt_6_2_0_MSVC2019_64bit-Profile - E:/Qt Projects Sources/build-chronos-save-updater-Desktop_Qt_6_2_0_MSVC2019_64bit-Profile + /home/aurelie/Documents/build-chronos-save-updater-Desktop_Qt_6_4_0_GCC_64bit-Profile + /home/aurelie/Documents/build-chronos-save-updater-Desktop_Qt_6_4_0_GCC_64bit-Profile true @@ -159,7 +187,7 @@ true Qt4ProjectManager.MakeStep - 2 + 2 Build Build ProjectExplorer.BuildSteps.Build @@ -170,7 +198,7 @@ Qt4ProjectManager.MakeStep clean - 1 + 1 Clean Clean ProjectExplorer.BuildSteps.Clean @@ -178,6 +206,7 @@ 2 false + false Profile Qt4ProjectManager.Qt4BuildConfiguration @@ -185,10 +214,10 @@ 0 0 - 3 + 3 - 0 + 0 Deploy Deploy ProjectExplorer.BuildSteps.Deploy @@ -198,7 +227,7 @@ false ProjectExplorer.DefaultDeployConfiguration - 1 + 1 true true @@ -213,12 +242,12 @@ false true - 1 + 1 ProjectExplorer.Project.TargetCount - 1 + 1 ProjectExplorer.Project.Updater.FileVersion diff --git a/chronos-save-updater.pro.user.67c351c b/chronos-save-updater.pro.user.67c351c new file mode 100644 index 0000000..d4821d7 --- /dev/null +++ b/chronos-save-updater.pro.user.67c351c @@ -0,0 +1,231 @@ + + + + + + EnvironmentId + {67c351c8-ac7f-4fbb-b594-e8b60a17310f} + + + ProjectExplorer.Project.ActiveTarget + 0 + + + ProjectExplorer.Project.EditorSettings + + true + false + true + + Cpp + + CppGlobal + + + + QmlJS + + QmlJSGlobal + + + 2 + UTF-8 + false + 4 + false + 80 + true + true + 1 + false + true + false + 0 + true + true + 0 + 8 + true + false + 1 + true + true + true + *.md, *.MD, Makefile + false + true + + + + ProjectExplorer.Project.Target.0 + + Desktop + Desktop Qt 6.2.0 MSVC2019 64bit + Desktop Qt 6.2.0 MSVC2019 64bit + qt.qt6.620.win64_msvc2019_64_kit + 0 + 0 + 0 + + 0 + E:\Qt Projects Sources\build-chronos-save-updater-Desktop_Qt_6_2_0_MSVC2019_64bit-Debug + E:/Qt Projects Sources/build-chronos-save-updater-Desktop_Qt_6_2_0_MSVC2019_64bit-Debug + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Build + Build + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Clean + Clean + ProjectExplorer.BuildSteps.Clean + + 2 + false + + + Debug + Qt4ProjectManager.Qt4BuildConfiguration + 2 + + + E:\Qt Projects Sources\build-chronos-save-updater-Desktop_Qt_6_2_0_MSVC2019_64bit-Release + E:/Qt Projects Sources/build-chronos-save-updater-Desktop_Qt_6_2_0_MSVC2019_64bit-Release + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Build + Build + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Clean + Clean + ProjectExplorer.BuildSteps.Clean + + 2 + false + + + Release + Qt4ProjectManager.Qt4BuildConfiguration + 0 + 0 + + + 0 + E:\Qt Projects Sources\build-chronos-save-updater-Desktop_Qt_6_2_0_MSVC2019_64bit-Profile + E:/Qt Projects Sources/build-chronos-save-updater-Desktop_Qt_6_2_0_MSVC2019_64bit-Profile + + + true + QtProjectManager.QMakeBuildStep + false + + + + true + Qt4ProjectManager.MakeStep + + 2 + Build + Build + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + clean + + 1 + Clean + Clean + ProjectExplorer.BuildSteps.Clean + + 2 + false + + + Profile + Qt4ProjectManager.Qt4BuildConfiguration + 0 + 0 + 0 + + 3 + + + 0 + Deploy + Deploy + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + true + true + true + + 2 + + ProjectExplorer.CustomExecutableRunConfiguration + + false + true + false + true + + 1 + + + + ProjectExplorer.Project.TargetCount + 1 + + + ProjectExplorer.Project.Updater.FileVersion + 22 + + + Version + 22 + + diff --git a/main.cpp b/main.cpp index b99545d..c05559c 100644 --- a/main.cpp +++ b/main.cpp @@ -8,6 +8,7 @@ #include "version2upgrader.h" #include "version3upgrader.h" +#include "version4upgrader.h" #define SAVE_FILENAME "data.json" @@ -47,7 +48,7 @@ void save_to_file(QJsonObject save) { int main(int argc, char *argv[]) { - std::cout << "Chronos Save Upgrader v2" << std::endl; + std::cout << "Chronos Save Upgrader v2.1" << std::endl; std::cout << "by Aurélie Delhaie - https://github.com/mojitaurelie/chronos-save-updater" << std::endl << std::endl; QCoreApplication::setApplicationName("Chronos"); QJsonObject save = open_save(); @@ -62,6 +63,11 @@ int main(int argc, char *argv[]) save = Version3Upgrader::Upgrade(save); std::cout << "[INFO] Save upgraded to version 3" << std::endl; } + case 3: { + std::cout << "[INFO] Upgrading to version 4" << std::endl; + save = Version4Upgrader::Upgrade(save); + std::cout << "[INFO] Save upgraded to version 4" << std::endl; + } } std::cout << "[INFO] Saving..." << std::endl; save_to_file(save); diff --git a/version4upgrader.cpp b/version4upgrader.cpp new file mode 100644 index 0000000..1a02db4 --- /dev/null +++ b/version4upgrader.cpp @@ -0,0 +1,75 @@ +#include "version4upgrader.h" + +Version4Upgrader::Version4Upgrader() +{ + +} + +QJsonObject Version4Upgrader::UpgradeDay(QJsonObject day) +{ + if (!day["validate"].toBool(false)) { + day["not_working"] = true; + } else { + day["not_working"] = false; + } + return day; +} + +QJsonObject Version4Upgrader::UpgradeDayTemplate(QJsonObject day) +{ + day["not_working"] = false; + return day; +} + +QJsonObject Version4Upgrader::UpgradeTemplate(QJsonObject week) +{ + QJsonObject newTemplate; + newTemplate["monday"] = UpgradeDayTemplate(week["monday"].toObject()); + newTemplate["tuesday"] = UpgradeDayTemplate(week["tuesday"].toObject()); + newTemplate["wednesday"] = UpgradeDayTemplate(week["wednesday"].toObject()); + newTemplate["thurday"] = UpgradeDayTemplate(week["thurday"].toObject()); + newTemplate["friday"] = UpgradeDayTemplate(week["friday"].toObject()); + newTemplate["weekNumber"] = week["weekNumber"].toInt(); + return newTemplate; +} + +QJsonArray Version4Upgrader::UpgradeWeeks(QJsonArray weeks) +{ + QJsonArray newWeeks; + foreach (QJsonValue value, weeks) { + QJsonObject week = value.toObject(); + QJsonObject newWeek; + newWeek["monday"] = UpgradeDay(week["monday"].toObject()); + newWeek["tuesday"] = UpgradeDay(week["tuesday"].toObject()); + newWeek["wednesday"] = UpgradeDay(week["wednesday"].toObject()); + newWeek["thurday"] = UpgradeDay(week["thurday"].toObject()); + newWeek["friday"] = UpgradeDay(week["friday"].toObject()); + newWeek["weekNumber"] = week["weekNumber"].toInt(); + newWeeks.append(newWeek); + } + return newWeeks; +} + +QJsonArray Version4Upgrader::UpgradeYears(QJsonArray years) +{ + QJsonArray newYears; + foreach (QJsonValue year, years) { + QJsonObject newYear; + newYear["number"] = year["number"]; + newYear["weeks"] = UpgradeWeeks(year["weeks"].toArray()); + newYears.append(newYear); + } + return newYears; +} + +QJsonObject Version4Upgrader::Upgrade(QJsonObject old) +{ + if (old["version"].toInt() == 3) { + QJsonObject newVersion; + newVersion["version"] = 4; + newVersion["template"] = UpgradeTemplate(old["template"].toObject()); + newVersion["years"] = UpgradeYears(old["years"].toArray()); + return newVersion; + } + return old; +} diff --git a/version4upgrader.h b/version4upgrader.h new file mode 100644 index 0000000..bb6be61 --- /dev/null +++ b/version4upgrader.h @@ -0,0 +1,25 @@ +#ifndef VERSION4UPGRADER_H +#define VERSION4UPGRADER_H + +#include +#include +#include +#include +#include + +class Version4Upgrader : QObject +{ + Q_OBJECT +private: + static QJsonObject UpgradeDay(QJsonObject day); + static QJsonObject UpgradeDayTemplate(QJsonObject day); + static QJsonObject UpgradeTemplate(QJsonObject week); + static QJsonArray UpgradeWeeks(QJsonArray weeks); + static QJsonArray UpgradeYears(QJsonArray years); + +public: + Version4Upgrader(); + static QJsonObject Upgrade(QJsonObject old); +}; + +#endif // VERSION4UPGRADER_H