Pointer + time delta
This commit is contained in:
@@ -5,6 +5,12 @@ BreakPoint::BreakPoint()
|
||||
|
||||
}
|
||||
|
||||
BreakPoint::BreakPoint(BreakPoint *old)
|
||||
{
|
||||
this->start = old->start;
|
||||
this->end = old->end;
|
||||
}
|
||||
|
||||
BreakPoint::BreakPoint(QTime start, QTime end)
|
||||
{
|
||||
this->start = start;
|
||||
@@ -45,12 +51,12 @@ QJsonObject BreakPoint::to_json()
|
||||
return obj;
|
||||
}
|
||||
|
||||
BreakPoint BreakPoint::from_json(QJsonObject obj)
|
||||
BreakPoint* BreakPoint::from_json(QJsonObject obj)
|
||||
{
|
||||
BreakPoint result;
|
||||
BreakPoint *result = new BreakPoint();
|
||||
|
||||
result.start = QTime::fromString(obj["start"].toString(), Qt::DateFormat::ISODate);
|
||||
result.end = QTime::fromString(obj["end"].toString(), Qt::DateFormat::ISODate);
|
||||
result->start = QTime::fromString(obj["start"].toString(), Qt::DateFormat::ISODate);
|
||||
result->end = QTime::fromString(obj["end"].toString(), Qt::DateFormat::ISODate);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -13,6 +13,7 @@ private:
|
||||
|
||||
public:
|
||||
BreakPoint();
|
||||
BreakPoint(BreakPoint*);
|
||||
BreakPoint(QTime, QTime);
|
||||
|
||||
QTime getStart();
|
||||
@@ -23,7 +24,7 @@ public:
|
||||
void setEnd(QTime);
|
||||
|
||||
QJsonObject to_json();
|
||||
static BreakPoint from_json(QJsonObject);
|
||||
static BreakPoint* from_json(QJsonObject);
|
||||
};
|
||||
|
||||
#endif // BREAKPOINT_H
|
||||
|
||||
@@ -4,11 +4,29 @@ Day::Day()
|
||||
{
|
||||
start = QTime(9, 0, 0, 0);
|
||||
end = QTime(17, 15, 0, 0);
|
||||
BreakPoint lunch(QTime(12, 0, 0, 0), QTime(12, 45, 0, 0));
|
||||
BreakPoint *lunch = new BreakPoint(QTime(12, 0, 0, 0), QTime(12, 45, 0, 0));
|
||||
breaks.append(lunch);
|
||||
validate = false;
|
||||
}
|
||||
|
||||
Day::Day(Day *old)
|
||||
{
|
||||
start = QTime(9, 0, 0, 0);
|
||||
end = QTime(17, 15, 0, 0);
|
||||
BreakPoint *lunch = new BreakPoint(QTime(12, 0, 0, 0), QTime(12, 45, 0, 0));
|
||||
breaks.append(lunch);
|
||||
validate = false;
|
||||
update(old);
|
||||
}
|
||||
|
||||
Day::~Day()
|
||||
{
|
||||
foreach (BreakPoint *bp, breaks) {
|
||||
delete bp;
|
||||
}
|
||||
breaks.clear();
|
||||
}
|
||||
|
||||
float Day::get_total() {
|
||||
int sec = start.secsTo(end);
|
||||
int minutes = sec / 60;
|
||||
@@ -30,7 +48,7 @@ void Day::set_validate(bool value) {
|
||||
validate = value;
|
||||
}
|
||||
|
||||
void Day::setBreaks(QVector<BreakPoint> breaks)
|
||||
void Day::setBreaks(QVector<BreakPoint*> breaks)
|
||||
{
|
||||
this->breaks = breaks;
|
||||
}
|
||||
@@ -45,7 +63,7 @@ QTime Day::get_end()
|
||||
return end;
|
||||
}
|
||||
|
||||
QVector<BreakPoint> Day::getBreaks()
|
||||
QVector<BreakPoint*> Day::getBreaks()
|
||||
{
|
||||
return breaks;
|
||||
}
|
||||
@@ -53,8 +71,8 @@ QVector<BreakPoint> Day::getBreaks()
|
||||
QJsonObject Day::to_json()
|
||||
{
|
||||
QJsonArray arr;
|
||||
foreach (BreakPoint bp, breaks) {
|
||||
arr.append(bp.to_json());
|
||||
foreach (BreakPoint *bp, breaks) {
|
||||
arr.append(bp->to_json());
|
||||
}
|
||||
QJsonObject obj{
|
||||
{KEY_START, start.toString(Qt::DateFormat::ISODate)},
|
||||
@@ -66,18 +84,18 @@ QJsonObject Day::to_json()
|
||||
return obj;
|
||||
}
|
||||
|
||||
Day Day::from_json(QJsonObject obj)
|
||||
Day* Day::from_json(QJsonObject obj)
|
||||
{
|
||||
Day result;
|
||||
Day *result = new Day();
|
||||
|
||||
result.start = QTime::fromString(obj[KEY_START].toString(), Qt::DateFormat::ISODate);
|
||||
result.end = QTime::fromString(obj[KEY_END].toString(), Qt::DateFormat::ISODate);
|
||||
result.validate = obj[KEY_VALIDATE].toBool();
|
||||
result->start = QTime::fromString(obj[KEY_START].toString(), Qt::DateFormat::ISODate);
|
||||
result->end = QTime::fromString(obj[KEY_END].toString(), Qt::DateFormat::ISODate);
|
||||
result->validate = obj[KEY_VALIDATE].toBool();
|
||||
|
||||
result.breaks.clear();
|
||||
result->breaks.clear();
|
||||
QJsonArray arr = obj[KEY_BREAKS].toArray();
|
||||
foreach (QJsonValue val, arr) {
|
||||
result.breaks.append(BreakPoint::from_json(val.toObject()));
|
||||
result->breaks.append(BreakPoint::from_json(val.toObject()));
|
||||
}
|
||||
|
||||
return result;
|
||||
@@ -90,8 +108,24 @@ bool Day::get_validate() {
|
||||
float Day::get_time_break()
|
||||
{
|
||||
float result = 0;
|
||||
foreach (BreakPoint bp, breaks) {
|
||||
result += bp.getDuration();
|
||||
foreach (BreakPoint* bp, breaks) {
|
||||
result += bp->getDuration();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
void Day::update(Day *old)
|
||||
{
|
||||
this->start = old->start;
|
||||
this->end = old->end;
|
||||
this->validate = old->validate;
|
||||
|
||||
foreach (BreakPoint *bp, breaks) {
|
||||
delete bp;
|
||||
}
|
||||
breaks.clear();
|
||||
|
||||
foreach (BreakPoint *bp, old->breaks) {
|
||||
this->breaks.append(new BreakPoint(bp));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,27 +19,30 @@ class Day
|
||||
private:
|
||||
QTime start;
|
||||
QTime end;
|
||||
QVector<BreakPoint> breaks;
|
||||
QVector<BreakPoint*> breaks;
|
||||
bool validate;
|
||||
|
||||
public:
|
||||
Day();
|
||||
Day(Day*);
|
||||
~Day();
|
||||
|
||||
void set_start(QTime value);
|
||||
void set_end(QTime value);
|
||||
void set_validate(bool);
|
||||
void setBreaks(QVector<BreakPoint>);
|
||||
void setBreaks(QVector<BreakPoint*>);
|
||||
|
||||
QTime get_start();
|
||||
QTime get_end();
|
||||
QVector<BreakPoint> getBreaks();
|
||||
QVector<BreakPoint*> getBreaks();
|
||||
bool get_validate();
|
||||
float get_time_break();
|
||||
void update(Day *);
|
||||
QJsonObject to_json();
|
||||
|
||||
float get_total();
|
||||
|
||||
static Day from_json(QJsonObject);
|
||||
static Day* from_json(QJsonObject);
|
||||
};
|
||||
|
||||
#endif // DAY_H
|
||||
|
||||
@@ -2,85 +2,135 @@
|
||||
|
||||
Week::Week()
|
||||
{
|
||||
mon = Day();
|
||||
tue = Day();
|
||||
wed = Day();
|
||||
thu = Day();
|
||||
fri = Day();
|
||||
mon = new Day();
|
||||
tue = new Day();
|
||||
wed = new Day();
|
||||
thu = new Day();
|
||||
fri = new Day();
|
||||
time_delta = 0;
|
||||
week_number = 0;
|
||||
}
|
||||
|
||||
Week Week::from_json(QJsonObject obj) {
|
||||
Week w;
|
||||
w.mon = Day::from_json(obj[MONDAY].toObject());
|
||||
w.tue = Day::from_json(obj[TUESDAY].toObject());
|
||||
w.wed = Day::from_json(obj[WEDNESDAY].toObject());
|
||||
w.thu = Day::from_json(obj[THURDAY].toObject());
|
||||
w.fri = Day::from_json(obj[FRIDAY].toObject());
|
||||
w.week_number = obj[WEEK_NUMBER].toInt();
|
||||
Week::Week(Week *old)
|
||||
{
|
||||
mon = new Day();
|
||||
tue = new Day();
|
||||
wed = new Day();
|
||||
thu = new Day();
|
||||
fri = new Day();
|
||||
time_delta = 0;
|
||||
week_number = 0;
|
||||
update(old);
|
||||
}
|
||||
|
||||
Week::~Week()
|
||||
{
|
||||
delete mon;
|
||||
delete tue;
|
||||
delete wed;
|
||||
delete thu;
|
||||
delete fri;
|
||||
}
|
||||
|
||||
Week* Week::from_json(QJsonObject obj) {
|
||||
Week *w = new Week();
|
||||
w->mon = Day::from_json(obj[MONDAY].toObject());
|
||||
w->tue = Day::from_json(obj[TUESDAY].toObject());
|
||||
w->wed = Day::from_json(obj[WEDNESDAY].toObject());
|
||||
w->thu = Day::from_json(obj[THURDAY].toObject());
|
||||
w->fri = Day::from_json(obj[FRIDAY].toObject());
|
||||
w->time_delta = obj[TIME_DELTA].toInt(0);
|
||||
w->week_number = obj[WEEK_NUMBER].toInt();
|
||||
return w;
|
||||
}
|
||||
|
||||
QJsonObject Week::to_json() {
|
||||
QJsonObject obj {
|
||||
{MONDAY, mon.to_json()},
|
||||
{TUESDAY, tue.to_json()},
|
||||
{WEDNESDAY, wed.to_json()},
|
||||
{THURDAY, thu.to_json()},
|
||||
{FRIDAY, fri.to_json()},
|
||||
{MONDAY, mon->to_json()},
|
||||
{TUESDAY, tue->to_json()},
|
||||
{WEDNESDAY, wed->to_json()},
|
||||
{THURDAY, thu->to_json()},
|
||||
{FRIDAY, fri->to_json()},
|
||||
{TIME_DELTA, time_delta},
|
||||
{WEEK_NUMBER, week_number}
|
||||
};
|
||||
return obj;
|
||||
}
|
||||
|
||||
double Week::total() {
|
||||
return mon.get_total() + tue.get_total() + wed.get_total() + thu.get_total() + fri.get_total();
|
||||
return mon->get_total() + tue->get_total() + wed->get_total() + thu->get_total() + fri->get_total();
|
||||
}
|
||||
|
||||
Day Week::getMon() {
|
||||
Day* Week::getMon() {
|
||||
return mon;
|
||||
}
|
||||
|
||||
Day Week::getTue() {
|
||||
Day* Week::getTue() {
|
||||
return tue;
|
||||
}
|
||||
|
||||
Day Week::getWed() {
|
||||
Day* Week::getWed() {
|
||||
return wed;
|
||||
}
|
||||
|
||||
Day Week::getThu() {
|
||||
Day* Week::getThu() {
|
||||
return thu;
|
||||
}
|
||||
|
||||
Day Week::getFri() {
|
||||
Day* Week::getFri() {
|
||||
return fri;
|
||||
}
|
||||
|
||||
void Week::update(Week *old)
|
||||
{
|
||||
mon = new Day(old->mon);
|
||||
tue = new Day(old->tue);
|
||||
wed = new Day(old->wed);
|
||||
thu = new Day(old->thu);
|
||||
fri = new Day(old->fri);
|
||||
time_delta = old->time_delta;
|
||||
week_number = old->week_number;
|
||||
}
|
||||
|
||||
int Week::getWeekNumber() {
|
||||
return week_number;
|
||||
}
|
||||
|
||||
void Week::setMon(Day value) {
|
||||
int Week::getTimeDelta()
|
||||
{
|
||||
return time_delta;
|
||||
}
|
||||
|
||||
float Week::getTimeDeltaInHours()
|
||||
{
|
||||
return time_delta/60.0;
|
||||
}
|
||||
|
||||
void Week::setMon(Day* value) {
|
||||
mon = value;
|
||||
}
|
||||
|
||||
void Week::setTue(Day value) {
|
||||
void Week::setTue(Day* value) {
|
||||
tue = value;
|
||||
}
|
||||
|
||||
void Week::setWed(Day value) {
|
||||
void Week::setWed(Day* value) {
|
||||
wed = value;
|
||||
}
|
||||
|
||||
void Week::setThu(Day value) {
|
||||
void Week::setThu(Day* value) {
|
||||
thu = value;
|
||||
}
|
||||
|
||||
void Week::setFri(Day value) {
|
||||
void Week::setFri(Day* value) {
|
||||
fri = value;
|
||||
}
|
||||
|
||||
void Week::setWeekNumber(int value) {
|
||||
week_number = value;
|
||||
}
|
||||
|
||||
void Week::setTimeDelta(int value)
|
||||
{
|
||||
time_delta = value;
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
#define WEDNESDAY "wednesday"
|
||||
#define THURDAY "thurday"
|
||||
#define FRIDAY "friday"
|
||||
#define TIME_DELTA "timeDelta"
|
||||
#define WEEK_NUMBER "weekNumber"
|
||||
|
||||
#include <QJsonObject>
|
||||
@@ -15,31 +16,38 @@ class Week
|
||||
{
|
||||
public:
|
||||
Week();
|
||||
Week(Week*);
|
||||
~Week();
|
||||
double total();
|
||||
|
||||
void setMon(Day);
|
||||
void setTue(Day);
|
||||
void setWed(Day);
|
||||
void setThu(Day);
|
||||
void setFri(Day);
|
||||
void setMon(Day*);
|
||||
void setTue(Day*);
|
||||
void setWed(Day*);
|
||||
void setThu(Day*);
|
||||
void setFri(Day*);
|
||||
void setWeekNumber(int);
|
||||
void setTimeDelta(int);
|
||||
|
||||
Day getMon();
|
||||
Day getTue();
|
||||
Day getWed();
|
||||
Day getThu();
|
||||
Day getFri();
|
||||
Day* getMon();
|
||||
Day* getTue();
|
||||
Day* getWed();
|
||||
Day* getThu();
|
||||
Day* getFri();
|
||||
void update(Week *);
|
||||
int getWeekNumber();
|
||||
int getTimeDelta();
|
||||
float getTimeDeltaInHours();
|
||||
|
||||
static Week from_json(QJsonObject);
|
||||
static Week* from_json(QJsonObject);
|
||||
QJsonObject to_json();
|
||||
|
||||
private:
|
||||
Day mon;
|
||||
Day tue;
|
||||
Day wed;
|
||||
Day thu;
|
||||
Day fri;
|
||||
Day* mon;
|
||||
Day* tue;
|
||||
Day* wed;
|
||||
Day* thu;
|
||||
Day* fri;
|
||||
int time_delta;
|
||||
int week_number;
|
||||
};
|
||||
|
||||
|
||||
@@ -5,19 +5,35 @@ 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* Year::from_json(QJsonObject obj)
|
||||
{
|
||||
Year result;
|
||||
result.number = obj[KEY_NUMBER].toInt();
|
||||
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;
|
||||
Week* w = Week::from_json(val.toObject());
|
||||
result->weeks[w->getWeekNumber()] = w;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@@ -26,17 +42,28 @@ QJsonObject Year::to_json()
|
||||
{
|
||||
QJsonObject obj;
|
||||
QJsonArray arr;
|
||||
foreach (Week w, weeks) {
|
||||
arr.append(w.to_json());
|
||||
foreach (Week *w, weeks) {
|
||||
arr.append(w->to_json());
|
||||
}
|
||||
obj[KEY_NUMBER] = number;
|
||||
obj[KEY_WEEKS] = arr;
|
||||
return obj;
|
||||
}
|
||||
|
||||
QMap<int, Week> Year::getWeeks()
|
||||
Week *Year::getWeek(int weekNumber)
|
||||
{
|
||||
return weeks;
|
||||
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()
|
||||
@@ -44,12 +71,7 @@ int Year::getNumber()
|
||||
return number;
|
||||
}
|
||||
|
||||
void Year::addWeek(Week w)
|
||||
void Year::addWeek(Week* w)
|
||||
{
|
||||
weeks[w.getWeekNumber()] = w;
|
||||
}
|
||||
|
||||
void Year::setWeeks(QMap<int, Week> weeks)
|
||||
{
|
||||
this->weeks = weeks;
|
||||
weeks[w->getWeekNumber()] = w;
|
||||
}
|
||||
|
||||
@@ -6,6 +6,8 @@
|
||||
|
||||
#include <QJsonObject>
|
||||
#include <QJsonArray>
|
||||
#include <QMouseEvent>
|
||||
#include <QMapIterator>
|
||||
|
||||
#include "week.h"
|
||||
|
||||
@@ -13,20 +15,23 @@ class Year
|
||||
{
|
||||
private:
|
||||
int number;
|
||||
QMap<int, Week> weeks;
|
||||
QMap<int, Week*> weeks;
|
||||
|
||||
public:
|
||||
Year();
|
||||
Year(Year*);
|
||||
~Year();
|
||||
Year(int number);
|
||||
|
||||
static Year from_json(QJsonObject);
|
||||
static Year* from_json(QJsonObject);
|
||||
QJsonObject to_json();
|
||||
|
||||
QMap<int, Week> getWeeks();
|
||||
Week *getWeek(int);
|
||||
bool hasWeek(int);
|
||||
QMapIterator<int, Week*> iterator();
|
||||
int getNumber();
|
||||
|
||||
void addWeek(Week w);
|
||||
void setWeeks(QMap<int, Week> weeks);
|
||||
void addWeek(Week* w);
|
||||
};
|
||||
|
||||
#endif // YEAR_H
|
||||
|
||||
Reference in New Issue
Block a user