Files
Chronos/sources/models/year.cpp
Aurélie Delhaie 9bb56fe174 Pointer + time delta
2022-03-01 21:08:34 +01:00

78 lines
1.2 KiB
C++

#include "year.h"
Year::Year()
{
}
Year::Year(Year *old)
{
this->number = old->number;
foreach (int weekNumber, old->weeks.keys()) {
weeks[weekNumber] = new Week(old->weeks[weekNumber]);
}
}
Year::~Year()
{
foreach (Week *w, weeks) {
delete w;
}
weeks.clear();
}
Year::Year(int number)
{
this->number = number;
}
Year* Year::from_json(QJsonObject obj)
{
Year *result = new Year();
result->number = obj[KEY_NUMBER].toInt();
QJsonArray arr = obj[KEY_WEEKS].toArray();
foreach (QJsonValue val, arr) {
Week* w = Week::from_json(val.toObject());
result->weeks[w->getWeekNumber()] = w;
}
return result;
}
QJsonObject Year::to_json()
{
QJsonObject obj;
QJsonArray arr;
foreach (Week *w, weeks) {
arr.append(w->to_json());
}
obj[KEY_NUMBER] = number;
obj[KEY_WEEKS] = arr;
return obj;
}
Week *Year::getWeek(int weekNumber)
{
return weeks[weekNumber];
}
bool Year::hasWeek(int weekNumber)
{
return weeks.contains(weekNumber);
}
QMapIterator<int, Week *> Year::iterator()
{
QMapIterator i(weeks);
return i;
}
int Year::getNumber()
{
return number;
}
void Year::addWeek(Week* w)
{
weeks[w->getWeekNumber()] = w;
}