mirror of
https://github.com/GothenburgBitFactory/timewarrior.git
synced 2025-07-07 20:06:39 +02:00
helper: Direct filter range access
This commit is contained in:
parent
54cb92e18d
commit
66f6b26411
1 changed files with 23 additions and 20 deletions
|
@ -173,12 +173,14 @@ Filter createFilterFromCLI (const CLI& cli)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Daterange range;
|
||||||
|
|
||||||
// <date>
|
// <date>
|
||||||
if (args.size () == 1 &&
|
if (args.size () == 1 &&
|
||||||
args[0] == "<date>")
|
args[0] == "<date>")
|
||||||
{
|
{
|
||||||
filter.range ().start (Datetime (start));
|
range.start (Datetime (start));
|
||||||
filter.range ().end (Datetime ("now"));
|
range.end (Datetime ("now"));
|
||||||
}
|
}
|
||||||
|
|
||||||
// from <date>
|
// from <date>
|
||||||
|
@ -186,8 +188,8 @@ Filter createFilterFromCLI (const CLI& cli)
|
||||||
args[0] == "from" &&
|
args[0] == "from" &&
|
||||||
args[1] == "<date>")
|
args[1] == "<date>")
|
||||||
{
|
{
|
||||||
filter.range ().start (Datetime (start));
|
range.start (Datetime (start));
|
||||||
filter.range ().end (Datetime ("now"));
|
range.end (Datetime ("now"));
|
||||||
}
|
}
|
||||||
|
|
||||||
// <date> to/- <date>
|
// <date> to/- <date>
|
||||||
|
@ -196,8 +198,8 @@ Filter createFilterFromCLI (const CLI& cli)
|
||||||
(args[1] == "to" || args[1] == "-") &&
|
(args[1] == "to" || args[1] == "-") &&
|
||||||
args[2] == "<date>")
|
args[2] == "<date>")
|
||||||
{
|
{
|
||||||
filter.range ().start (Datetime (start));
|
range.start (Datetime (start));
|
||||||
filter.range ().end (Datetime (end));
|
range.end (Datetime (end));
|
||||||
}
|
}
|
||||||
|
|
||||||
// from/since <date> to/- <date>
|
// from/since <date> to/- <date>
|
||||||
|
@ -207,8 +209,8 @@ Filter createFilterFromCLI (const CLI& cli)
|
||||||
(args[2] == "to" || args[2] == "-") &&
|
(args[2] == "to" || args[2] == "-") &&
|
||||||
args[3] == "<date>")
|
args[3] == "<date>")
|
||||||
{
|
{
|
||||||
filter.range ().start (Datetime (start));
|
range.start (Datetime (start));
|
||||||
filter.range ().end (Datetime (end));
|
range.end (Datetime (end));
|
||||||
}
|
}
|
||||||
|
|
||||||
// <date> for <duration>
|
// <date> for <duration>
|
||||||
|
@ -217,8 +219,8 @@ Filter createFilterFromCLI (const CLI& cli)
|
||||||
args[1] == "for" &&
|
args[1] == "for" &&
|
||||||
args[2] == "<duration>")
|
args[2] == "<duration>")
|
||||||
{
|
{
|
||||||
filter.range ().start (Datetime (start));
|
range.start (Datetime (start));
|
||||||
filter.range ().end (Datetime (start) + Duration (duration).toTime_t ());
|
range.end (Datetime (start) + Duration (duration).toTime_t ());
|
||||||
}
|
}
|
||||||
|
|
||||||
// from/since <date> for <duration>
|
// from/since <date> for <duration>
|
||||||
|
@ -228,8 +230,8 @@ Filter createFilterFromCLI (const CLI& cli)
|
||||||
args[2] == "for" &&
|
args[2] == "for" &&
|
||||||
args[3] == "<duration>")
|
args[3] == "<duration>")
|
||||||
{
|
{
|
||||||
filter.range ().start (Datetime (start));
|
range.start (Datetime (start));
|
||||||
filter.range ().end (Datetime (start) + Duration (duration).toTime_t ());
|
range.end (Datetime (start) + Duration (duration).toTime_t ());
|
||||||
}
|
}
|
||||||
|
|
||||||
// <duration> before <date>
|
// <duration> before <date>
|
||||||
|
@ -238,8 +240,8 @@ Filter createFilterFromCLI (const CLI& cli)
|
||||||
args[1] == "before" &&
|
args[1] == "before" &&
|
||||||
args[2] == "<date>")
|
args[2] == "<date>")
|
||||||
{
|
{
|
||||||
filter.range ().start (Datetime (start) - Duration (duration).toTime_t ());
|
range.start (Datetime (start) - Duration (duration).toTime_t ());
|
||||||
filter.range ().end (Datetime (start));
|
range.end (Datetime (start));
|
||||||
}
|
}
|
||||||
|
|
||||||
// <duration> after <date>
|
// <duration> after <date>
|
||||||
|
@ -248,16 +250,16 @@ Filter createFilterFromCLI (const CLI& cli)
|
||||||
args[1] == "after" &&
|
args[1] == "after" &&
|
||||||
args[2] == "<date>")
|
args[2] == "<date>")
|
||||||
{
|
{
|
||||||
filter.range ().start (Datetime (start));
|
range.start (Datetime (start));
|
||||||
filter.range ().end (Datetime (start) + Duration (duration).toTime_t ());
|
range.end (Datetime (start) + Duration (duration).toTime_t ());
|
||||||
}
|
}
|
||||||
|
|
||||||
// <duration>
|
// <duration>
|
||||||
else if (args.size () == 1 &&
|
else if (args.size () == 1 &&
|
||||||
args[0] == "<duration>")
|
args[0] == "<duration>")
|
||||||
{
|
{
|
||||||
filter.range ().start (Datetime ("now") - Duration (duration).toTime_t ());
|
range.start (Datetime ("now") - Duration (duration).toTime_t ());
|
||||||
filter.range ().end (Datetime ("now"));
|
range.end (Datetime ("now"));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Unrecognized date range construct.
|
// Unrecognized date range construct.
|
||||||
|
@ -266,6 +268,7 @@ Filter createFilterFromCLI (const CLI& cli)
|
||||||
throw std::string ("Unrecognized date range: '") + join (" ", args) + "'.";
|
throw std::string ("Unrecognized date range: '") + join (" ", args) + "'.";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
filter.range (range);
|
||||||
return filter;
|
return filter;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -273,8 +276,8 @@ Filter createFilterFromCLI (const CLI& cli)
|
||||||
Interval createIntervalFromFilter (const Filter& filter)
|
Interval createIntervalFromFilter (const Filter& filter)
|
||||||
{
|
{
|
||||||
Interval interval;
|
Interval interval;
|
||||||
interval.range ().start (filter.range ().start ());
|
interval.start (filter.range ().start ());
|
||||||
interval.range ().end (filter.range ().end ());
|
interval.end (filter.range ().end ());
|
||||||
|
|
||||||
for (auto& tag : filter.tags ())
|
for (auto& tag : filter.tags ())
|
||||||
interval.tag (tag);
|
interval.tag (tag);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue