- Addressed bug #804 by allowing rc.hyphenate to control whether hyphens are
inserted when long lines are broken. This may help prevent xterm from
mis-parsing URLs in task annotations, when wrapped (thanks to Yann Davin).
- Added unit tests.
- Task is no longer a map of string to Att. Att is itself a name/
value pair, so the name was redundant. Task is now a map of string
to string. This brings the obsoletion of Att much closer.
- Added Context::getColumns to return a vector of column names.
This is to help a shift toward using the Column objects to assist
in the parsing/validation of data entry/modifications.
- Added Column::modifiable to delegate an attributes readable/writeable
state. This means the columns will be in charge of their own
mutability, which will simplify and generalize Command::modify_task.
- Added feature #800, adding a new command 'columns' that lists all the columns
available for custom reports, and includes their formatting options (thanks
to T. Charles Yun).
- Refactored column objects to contain a ::validate method, for the
validation of incoming data.
- Context.columns is now a vector of one of each column object,
indexed by attribute name, for validation purposes.
- Fixed bug so that columns of type "string*" calculate ideal size
by taking into account \n characters in the data, rather than simply
the string length.
- Fixed problem with incorrect Color vector addressing.
- Modified ViewText to not underline empty column headers.
- Implemented ViewText::set method to set only color.
- Corrected use of rc.fontunderline with the new Views.
- Added new sample todo.sh import data, thanks to Daniel Wilcox.
- Added rc.defaultwidth to various tests.
- Modified tests to accomodate new next report.
- Corrected regex in rc.override.t.
- The ColumnDepends object was failing to map uuid --> id and so
rendered no data for the blocked report.
- Code used the term 'blocked' when it should have used the term
'blocking'.
- Broke out View into ViewTask and ViewText, where the former uses an
external std::vector <Task> as storage, thus eliminating the additional
copy, and the latter that duplicates data and color into 2D vectors
for rendering non-task data.
- Changed the ::measure and ::render methods from pure virtual to
virtual.
- Fixed bug where recur.indicator used the length of the indicator
instead of the indicator.
- Implemented ColString.{h,cpp} to support generic Views based on
strings, not tasks.
- Implemented newly virtual Column:: methods.
- ColDescription::measure did not correctly account for annotation size.
- The macro 'max' was used with expensive arguments, which get evaluated
twice.
- Integrated new View in place of Table for all custom reports.
- Implemented legacy field mapping for columns and sort fields.
- Implemented rc.indent.report.
- Implemented rc.row.padding.
- Implemented rc.column.padding.
- Implemented rc.color.label.
- Modified default rc.indent.annotation from 1 to 2.
- Implemented urgency value caching.
- Implemented View truncation by line and row.
- Columns now know which report thy belong to, so they can use the
rc.report.<report>.dateformat override.
- Assorted bugs remain.
- Implemented 'description.default', 'description.count', and
'description.oneline'.
- New 'indent.annotation' for the 'description.default' field format.
- Removed debugging code.
- Implemented intra, extra and alternate colorization.
- Column::factory now parses <type>.<style> and properly initializes
the column objects.
- Documented the new layout algorithm.
- Used Nibbler for decomposing fields into word chunks.
- Implemented variable intra padding.
- Implemented variable left margin.
- Implemented variable extra padding.
- Implemented colored headers.
- Implemented wrappable headers.
- Eliminated need to specify fixed column size.