Columns: Removed _fixed_width for indicator columns

- Column indicator formats (depends.indicator, for example), should not set the
  ::_fixed_width flag because then the column does not have the opportunity to
  be suppressed via rc.print.empty.colums=1.
This commit is contained in:
Paul Beckingham 2015-07-11 22:09:15 -04:00
parent 31ff9d476e
commit e930bb0ba9
6 changed files with 29 additions and 19 deletions

View file

@ -83,8 +83,10 @@ void ColumnDepends::measure (Task& task, unsigned int& minimum, unsigned int& ma
if (_style == "indicator") if (_style == "indicator")
{ {
if (task.has ("depends"))
minimum = maximum = utf8_width (context.config.get ("dependency.indicator")); minimum = maximum = utf8_width (context.config.get ("dependency.indicator"));
_fixed_width = true; else
minimum = maximum = 0;
} }
else if (_style == "count") else if (_style == "count")
{ {

View file

@ -86,8 +86,10 @@ void ColumnRecur::measure (Task& task, unsigned int& minimum, unsigned int& maxi
} }
else if (_style == "indicator") else if (_style == "indicator")
{ {
if (task.has ("recur"))
minimum = maximum = utf8_width (context.config.get ("recurrence.indicator")); minimum = maximum = utf8_width (context.config.get ("recurrence.indicator"));
_fixed_width = true; else
minimum = maximum = 0;
} }
else else
throw format (STRING_COLUMN_BAD_FORMAT, _name, _style); throw format (STRING_COLUMN_BAD_FORMAT, _name, _style);

View file

@ -74,8 +74,10 @@ void ColumnStart::measure (Task& task, unsigned int& minimum, unsigned int& maxi
{ {
if (_style == "active") if (_style == "active")
{ {
if (task.has ("start"))
minimum = maximum = utf8_width (context.config.get ("active.indicator")); minimum = maximum = utf8_width (context.config.get ("active.indicator"));
_fixed_width = true; else
minimum = maximum = 0;
} }
else else
ColumnDate::measure (task, minimum, maximum); ColumnDate::measure (task, minimum, maximum);

View file

@ -85,8 +85,10 @@ void ColumnTags::measure (Task& task, unsigned int& minimum, unsigned int& maxim
{ {
if (_style == "indicator") if (_style == "indicator")
{ {
if (task.has ("tags"))
minimum = maximum = utf8_width (context.config.get ("tag.indicator")); minimum = maximum = utf8_width (context.config.get ("tag.indicator"));
_fixed_width = true; else
minimum = maximum = 0;
} }
else if (_style == "count") else if (_style == "count")
{ {

View file

@ -116,8 +116,10 @@ void ColumnUDA::measure (Task& task, unsigned int& minimum, unsigned int& maximu
} }
else if (_style == "indicator") else if (_style == "indicator")
{ {
if (task.has (_name))
minimum = maximum = utf8_width (context.config.get ("uda." + _name + ".indicator")); minimum = maximum = utf8_width (context.config.get ("uda." + _name + ".indicator"));
_fixed_width = true; else
minimum = maximum = 0;
} }
else else
throw format (STRING_COLUMN_BAD_FORMAT, _name, _style); throw format (STRING_COLUMN_BAD_FORMAT, _name, _style);

View file

@ -52,7 +52,7 @@ public:
const std::string& type () const { return _type; } const std::string& type () const { return _type; }
bool modifiable () const { return _modifiable; } bool modifiable () const { return _modifiable; }
bool is_uda () const { return _uda; } bool is_uda () const { return _uda; }
bool is_fixed_width () const { return _fixed_width;} bool is_fixed_width () const { return _fixed_width; }
std::vector <std::string> styles () const { return _styles; } std::vector <std::string> styles () const { return _styles; }
std::vector <std::string> examples () const { return _examples; } std::vector <std::string> examples () const { return _examples; }