From c0039b6ff5b42d9db3cccd521438f339e0d1008a Mon Sep 17 00:00:00 2001 From: Thomas Lauf Date: Wed, 13 Jun 2018 23:09:12 +0200 Subject: [PATCH] Add convenience method to set range with two dates --- src/Interval.cpp | 6 ++++++ src/Interval.h | 2 ++ src/commands/CmdChart.cpp | 6 +++--- src/commands/CmdGaps.cpp | 2 +- src/commands/CmdSummary.cpp | 2 +- src/validate.cpp | 2 +- test/data.t.cpp | 4 ++-- 7 files changed, 16 insertions(+), 8 deletions(-) diff --git a/src/Interval.cpp b/src/Interval.cpp index e5eb87c3..66f034d5 100644 --- a/src/Interval.cpp +++ b/src/Interval.cpp @@ -212,6 +212,12 @@ void Interval::setRange (const Range& range) end = range.end; } +void Interval::setRange (const Datetime& start, const Datetime& end) +{ + this->start = start; + this->end = end; +} + Interval Interval::fromJson (std::string jsonString) { Interval interval = Interval (); diff --git a/src/Interval.h b/src/Interval.h index 893de3d4..ed5c499c 100644 --- a/src/Interval.h +++ b/src/Interval.h @@ -44,6 +44,7 @@ public: void untag (const std::string&); void setRange (const Range& range); + void setRange (const Datetime& start, const Datetime& end); std::string serialize () const; std::string json () const; @@ -54,6 +55,7 @@ public: public: int id {0}; bool synthetic {false}; + std::string annotation {}; private: std::set _tags {}; diff --git a/src/commands/CmdChart.cpp b/src/commands/CmdChart.cpp index 61385f24..6512137c 100644 --- a/src/commands/CmdChart.cpp +++ b/src/commands/CmdChart.cpp @@ -60,7 +60,7 @@ int CmdChartDay ( if (rules.has ("reports.day.range")) expandIntervalHint (rules.get ("reports.day.range"), filter); else - filter.setRange (Range (Datetime ("today"), Datetime ("tomorrow"))); + filter.setRange (Datetime ("today"), Datetime ("tomorrow")); } return renderChart (cli, "day", filter, rules, database); @@ -79,7 +79,7 @@ int CmdChartWeek ( if (rules.has ("reports.week.range")) expandIntervalHint (rules.get ("reports.week.range"), filter); else - filter.setRange (Range (Datetime ("sow"), Datetime ("eow"))); + filter.setRange (Datetime ("sow"), Datetime ("eow")); } return renderChart (cli, "week", filter, rules, database); @@ -98,7 +98,7 @@ int CmdChartMonth ( if (rules.has ("reports.month.range")) expandIntervalHint (rules.get ("reports.month.range"), filter); else - filter.setRange (Range (Datetime ("som"), Datetime ("eom"))); + filter.setRange (Datetime ("som"), Datetime ("eom")); } return renderChart (cli, "month", filter, rules, database); diff --git a/src/commands/CmdGaps.cpp b/src/commands/CmdGaps.cpp index 56453020..22c291ce 100644 --- a/src/commands/CmdGaps.cpp +++ b/src/commands/CmdGaps.cpp @@ -44,7 +44,7 @@ int CmdGaps ( if (rules.has ("reports.gaps.range")) expandIntervalHint (rules.get ("reports.gaps.range"), filter); else - filter.setRange (Range (Datetime ("today"), Datetime ("tomorrow"))); + filter.setRange (Datetime ("today"), Datetime ("tomorrow")); } // Is the :blank hint being used? diff --git a/src/commands/CmdSummary.cpp b/src/commands/CmdSummary.cpp index 84d8e634..d03db22f 100644 --- a/src/commands/CmdSummary.cpp +++ b/src/commands/CmdSummary.cpp @@ -44,7 +44,7 @@ int CmdSummary ( // Create a filter, and if empty, choose 'today'. auto filter = getFilter (cli); if (! filter.is_started ()) - filter.setRange (Range (Datetime ("today"), Datetime ("tomorrow"))); + filter.setRange (Datetime ("today"), Datetime ("tomorrow")); if (! filter.is_ended()) filter.end = filter.start + Duration("1d").toTime_t(); diff --git a/src/validate.cpp b/src/validate.cpp index cfefcd3f..506b057e 100644 --- a/src/validate.cpp +++ b/src/validate.cpp @@ -175,7 +175,7 @@ void validate ( // Create a filter, and if empty, choose 'today'. auto filter = getFilter (cli); if (! filter.is_started ()) - filter.setRange (Range (Datetime ("today"), Datetime ("tomorrow"))); + filter.setRange (Datetime ("today"), Datetime ("tomorrow")); // All validation performed here. if (findHint (cli, ":fill")) diff --git a/test/data.t.cpp b/test/data.t.cpp index a191c417..4e007bc9 100644 --- a/test/data.t.cpp +++ b/test/data.t.cpp @@ -201,12 +201,12 @@ int main (int, char**) // bool matchesFilter (const Interval& interval, const Interval& filter); Interval refOpen; - refOpen.setRange (Range (Datetime (2016, 6, 1), Datetime (0))); + refOpen.setRange (Datetime (2016, 6, 1), Datetime (0)); refOpen.tag ("tag1"); refOpen.tag ("tag2"); Interval refClosed; - refClosed.setRange (Range (Datetime (2016, 6, 1), Datetime (2016, 6, 30))); + refClosed.setRange (Datetime (2016, 6, 1), Datetime (2016, 6, 30)); refClosed.tag ("tag1"); refClosed.tag ("tag2");