#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 Year::iterator() { QMapIterator i(weeks); return i; } int Year::getNumber() { return number; } void Year::addWeek(Week* w) { weeks[w->getWeekNumber()] = w; }