diff --git a/src/Timeline.cpp b/src/Timeline.cpp index 9098c482..473fce3c 100644 --- a/src/Timeline.cpp +++ b/src/Timeline.cpp @@ -109,9 +109,9 @@ std::vector Timeline::tracked (Rules& rules) const //////////////////////////////////////////////////////////////////////////////// // Untracked time is that which is not excluded, and not filled. Gaps. -std::vector Timeline::untracked (Rules& rules) const +std::vector Timeline::untracked (Rules& rules) const { - std::vector gaps; + std::vector gaps; // Get the set of expanded exclusions that overlap the range defined by the // timeline. If no range is defined, derive it from the set of all data. diff --git a/src/Timeline.h b/src/Timeline.h index 5d510011..5b7b4338 100644 --- a/src/Timeline.h +++ b/src/Timeline.h @@ -40,7 +40,7 @@ public: void include (const Interval&); void exclude (const Exclusion&); std::vector tracked (Rules&) const; - std::vector untracked (Rules&) const; + std::vector untracked (Rules&) const; std::vector excluded (Rules&) const; std::string dump () const; diff --git a/src/commands/CmdGaps.cpp b/src/commands/CmdGaps.cpp index 6464b58b..9bcac434 100644 --- a/src/commands/CmdGaps.cpp +++ b/src/commands/CmdGaps.cpp @@ -25,21 +25,22 @@ //////////////////////////////////////////////////////////////////////////////// #include +#include +#include #include //////////////////////////////////////////////////////////////////////////////// -int CmdGaps () +int CmdGaps ( + const CLI& cli, + Rules& rules, + Database& database) { - std::cout << "[gaps: shows untracked gaps in the current day/week/month]\n"; - - // TODO If there are no exclusions defineѕ. - // TODO Error - - // TODO Load all data. - // TODO Apply filter. - // TODO Invert the union exclusions and incluѕions - // TODO For each interval - // TODO Display + auto filter = createFilterIntervalFromCLI (cli); + auto timeline = createTimelineFromData (rules, database, filter); + for (auto& gap : timeline.untracked (rules)) + { + std::cout << "# gap " << gap.dump () << "\n"; + } return 0; } diff --git a/src/commands/commands.h b/src/commands/commands.h index 2f1d4b6a..d2d8091e 100644 --- a/src/commands/commands.h +++ b/src/commands/commands.h @@ -39,7 +39,7 @@ int CmdDefault ( Rules&, Database& ); int CmdDiagnostics ( Rules&, Database&, const Extensions&); int CmdExport (const CLI&, Rules&, Database& ); int CmdExtensions ( Rules&, const Extensions&); -int CmdGaps ( ); +int CmdGaps (const CLI&, Rules&, Database& ); int CmdHelpUsage ( ); int CmdHelp (const CLI& ); int CmdImport ( ); diff --git a/src/init.cpp b/src/init.cpp index f78b2809..6a809d5d 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -227,7 +227,7 @@ int dispatchCommand ( else if (command == "diagnostics") status = CmdDiagnostics ( rules, database, extensions); else if (command == "export") status = CmdExport (cli, rules, database ); else if (command == "extensions") status = CmdExtensions ( rules, extensions); - else if (command == "gaps") status = CmdGaps ( ); + else if (command == "gaps") status = CmdGaps (cli, rules, database ); else if (command == "help") status = CmdHelp (cli ); else if (command == "import") status = CmdImport ( ); else if (command == "report") status = CmdReport (cli, rules, database, extensions);