From 39469a1917ebc53af6a98130708d315d755bd612 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Thu, 9 Oct 2014 19:04:59 -0400 Subject: [PATCH] Color - Supports 'color.label.sort' for column labels of sort columns. --- ChangeLog | 1 + NEWS | 1 + doc/man/taskrc.5.in | 5 +++++ src/commands/CmdCustom.cpp | 15 ++++++++++++++- src/commands/CmdShow.cpp | 1 + 5 files changed, 22 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 8bb1212a1..eb1973750 100644 --- a/ChangeLog +++ b/ChangeLog @@ -206,6 +206,7 @@ match on the day by default, not the time also. - Supports 'debug.hooks' configuration setting. - Supports 'debug.parser' configuration setting. +- Supports 'color.label.sort' for column labels of sort columns. ------ current release --------------------------- diff --git a/NEWS b/NEWS index 86203b790..7218e0ea6 100644 --- a/NEWS +++ b/NEWS @@ -41,6 +41,7 @@ New configuration options in taskwarrior 2.4.0 - New 'hooks' setting is a master control switch for hook processing. - New 'debug.hooks' for debugging hook scripts. - New 'debug.parser' for debugging parser issues scripts. + - New 'color.label.sort' is used to color the column label of sort columns. Newly deprecated features in taskwarrior 2.4.0 diff --git a/doc/man/taskrc.5.in b/doc/man/taskrc.5.in index f64a7e2b4..80b508764 100644 --- a/doc/man/taskrc.5.in +++ b/doc/man/taskrc.5.in @@ -928,6 +928,11 @@ Color of weeknumbers in calendar. Colors the report labels. Defaults to not use color. .RE +.TP +.B color.label.sort= +Colors the report labels for sort columns. Defaults to color.label. +.RE + .TP .B color.alternate=on rgb253 Color of alternate tasks. diff --git a/src/commands/CmdCustom.cpp b/src/commands/CmdCustom.cpp index 9cc280774..8bf82b3ea 100644 --- a/src/commands/CmdCustom.cpp +++ b/src/commands/CmdCustom.cpp @@ -128,10 +128,16 @@ int CmdCustom::execute (std::string& output) Color label (context.config.get ("color.label")); view.colorHeader (label); + Color label_sort (context.config.get ("color.label.sort")); + view.colorSortHeader (label_sort); + Color alternate (context.config.get ("color.alternate")); view.colorOdd (alternate); view.intraColorOdd (alternate); + // Capture columns that are sorted. + std::vector sortColumns; + // Add the break columns, if any. std::vector ::iterator so; for (so = sortOrder.begin (); so != sortOrder.end (); ++so) @@ -143,6 +149,8 @@ int CmdCustom::execute (std::string& output) if (breakIndicator) view.addBreak (name); + + sortColumns.push_back (name); } // Add the columns and labels. @@ -151,7 +159,12 @@ int CmdCustom::execute (std::string& output) Column* c = Column::factory (columns[i], _keyword); if (i < labels.size ()) c->setLabel (labels[i]); - view.add (c); + + bool sort = std::find (sortColumns.begin (), sortColumns.end (), c->name ()) != sortColumns.end () + ? true + : false; + + view.add (c, sort); } // How many lines taken up by table header? diff --git a/src/commands/CmdShow.cpp b/src/commands/CmdShow.cpp index f557caf0b..97e6770ad 100644 --- a/src/commands/CmdShow.cpp +++ b/src/commands/CmdShow.cpp @@ -107,6 +107,7 @@ int CmdShow::execute (std::string& output) " color.history.delete" " color.history.done" " color.label" + " color.label.sort" " color.overdue" " color.pri.H" " color.pri.L"