@@ -243,8 +243,8 @@ ColumnUDADuration::ColumnUDADuration() {
243243 _style = " default" ;
244244 _label = " " ;
245245 _uda = true ;
246- _styles = {_style, " indicator" , " age" , " iso" };
247- _examples = {" P30D" , " U" , " 4w" , " P30D" };
246+ _styles = {_style, " indicator" , " age" , " countdown " , " iso" };
247+ _examples = {" P30D" , " U" , " 4w" , " 30d 0:00:00 " , " P30D" };
248248}
249249
250250// //////////////////////////////////////////////////////////////////////////////
@@ -272,6 +272,9 @@ void ColumnUDADuration::measure(Task& task, unsigned int& minimum, unsigned int&
272272 } else if (_style == " age" ) {
273273 auto value = task.get (_name);
274274 if (value != " " ) minimum = maximum = Duration (value).formatVague (true ).length ();
275+ } else if (_style == " countdown" ) {
276+ auto value = task.get (_name);
277+ if (value != " " ) minimum = maximum = Duration (value).format ().length ();
275278 } else if (_style == " indicator" ) {
276279 if (task.has (_name)) {
277280 auto indicator = Context::getContext ().config .get (" uda." + _name + " .indicator" );
@@ -294,6 +297,9 @@ void ColumnUDADuration::render(std::vector<std::string>& lines, Task& task, int
294297 } else if (_style == " age" ) {
295298 auto value = task.get (_name);
296299 renderStringRight (lines, width, color, Duration (value).formatVague (true ));
300+ } else if (_style == " countdown" ) {
301+ auto value = task.get (_name);
302+ renderStringRight (lines, width, color, Duration (value).format ());
297303 } else if (_style == " indicator" ) {
298304 auto indicator = Context::getContext ().config .get (" uda." + _name + " .indicator" );
299305 if (indicator == " " ) indicator = " U" ;
0 commit comments