diff --git a/src/Chart.cpp b/src/Chart.cpp index e4390d15..2ed476b5 100644 --- a/src/Chart.cpp +++ b/src/Chart.cpp @@ -51,19 +51,19 @@ Chart::Chart (ChartConfig configuration) : determine_hour_range(configuration.determine_hour_range), minutes_per_char(configuration.minutes_per_char), spacing(configuration.spacing), - num_lines(configuration.num_lines) + num_lines(configuration.num_lines), + color_today(configuration.color_today), + color_holiday(configuration.color_holiday), + color_label(configuration.color_label), + color_exclusion(configuration.color_exclusion), + tag_colors(configuration.tag_colors) { } std::string Chart::render ( const Interval &filter, const std::vector &tracked, const std::vector &exclusions, - const std::map &holidays, - const std::map &tag_colors, - const Color &color_today, - const Color &color_holiday, - const Color &color_label, - const Color &color_exclusion) + const std::map &holidays) { // Determine hours shown. auto hour_range = determine_hour_range @@ -125,7 +125,7 @@ std::string Chart::render ( for (auto &track : tracked) { time_t interval_work = 0; - renderInterval (lines, day, track, tag_colors, first_hour, interval_work); + renderInterval (lines, day, track, first_hour, interval_work); work += interval_work; } } @@ -451,7 +451,6 @@ void Chart::renderInterval ( std::vector &lines, const Datetime &day, const Interval &track, - const std::map &tag_colors, const int first_hour, time_t &work) { diff --git a/src/Chart.h b/src/Chart.h index 8813cf9b..2d43fc17 100644 --- a/src/Chart.h +++ b/src/Chart.h @@ -37,7 +37,7 @@ class Chart public: explicit Chart (ChartConfig configuration); - std::string render (const Interval&, const std::vector &, const std::vector &, const std::map &, const std::map &, const Color&, const Color&, const Color&, const Color&); + std::string render (const Interval&, const std::vector &, const std::vector &, const std::map &); private: unsigned long getIndentSize (); @@ -62,7 +62,7 @@ private: void renderExclusionBlocks (std::vector&, const Datetime&, int, int, const std::vector&, const Color&, const Color&); - void renderInterval (std::vector&, const Datetime&, const Interval&, const std::map&, int, time_t&); + void renderInterval (std::vector&, const Datetime&, const Interval&, int, time_t&); std::string renderHolidays (const std::map &); @@ -82,6 +82,11 @@ private: const int minutes_per_char; const int spacing; const int num_lines; + const Color color_today; + const Color color_holiday; + const Color color_label; + const Color color_exclusion; + const std::map tag_colors; }; #endif diff --git a/src/ChartConfig.h b/src/ChartConfig.h index 5aef6292..b60b05f3 100644 --- a/src/ChartConfig.h +++ b/src/ChartConfig.h @@ -44,6 +44,11 @@ public: int minutes_per_char; int spacing; int num_lines; + Color color_today; + Color color_holiday; + Color color_label; + Color color_exclusion; + std::map tag_colors; }; #endif diff --git a/src/commands/CmdChart.cpp b/src/commands/CmdChart.cpp index d7a17dd5..41edf258 100644 --- a/src/commands/CmdChart.cpp +++ b/src/commands/CmdChart.cpp @@ -111,14 +111,8 @@ int renderChart ( // Map tags to colors. auto palette = createPalette (rules); - auto tag_colors = createTagColorMap (rules, palette, tracked); auto with_colors = rules.getBoolean ("color"); - Color color_today (with_colors ? rules.get ("theme.colors.today") : ""); - Color color_holiday (with_colors ? rules.get ("theme.colors.holiday") : ""); - Color color_label (with_colors ? rules.get ("theme.colors.label") : ""); - Color color_exclusion (with_colors ? rules.get ("theme.colors.exclusion") : ""); - const auto minutes_per_char = rules.getInteger ("reports." + type + ".cell"); if (minutes_per_char < 1) @@ -144,10 +138,15 @@ int renderChart ( configuration.minutes_per_char = minutes_per_char; configuration.spacing = rules.getInteger ("reports." + type + ".spacing", 1); configuration.num_lines = num_lines; + configuration.color_today = (with_colors ? Color (rules.get ("theme.colors.today")) : Color ("")); + configuration.color_holiday = (with_colors ? Color (rules.get ("theme.colors.holiday")) : Color ("")); + configuration.color_label = (with_colors ? Color (rules.get ("theme.colors.label")) : Color ("")); + configuration.color_exclusion = (with_colors ? Color (rules.get ("theme.colors.exclusion")) : Color ("")); + configuration.tag_colors = createTagColorMap (rules, palette, tracked); Chart chart (configuration); - std::cout << chart.render (filter, tracked, exclusions, holidays, tag_colors, color_today, color_holiday, color_label, color_exclusion); + std::cout << chart.render (filter, tracked, exclusions, holidays); return 0; }