Commit graph

83 commits

Author SHA1 Message Date
Wilhelm Schuermann
49f7612704 TW-1572: Implement better urgency inheritance
- Implement recursive urgency inheritance.  If this is to be made a
  default setting, some thought will have to be put into making it
  more efficient.
2015-05-22 23:01:21 +02:00
Paul Beckingham
935b2993f3 C++11: Took advantage of N1757. 2015-04-06 15:30:39 -04:00
Paul Beckingham
5af4579741 Priority: Converted 'priority' attribute to a UDA
- 'priority.long' and 'priority.short' formats now map to 'priority', and
  generate a warning.
- Man page updated.
- Converted priority urgency coefficients to UDA equivalents.
- Converted priority color rules to UDA color rules.
- Removed 'default.priority' support.
- Removed special sort handling for 'priority' field in Variant, added special
  UDA sort handling.
- Removed ColPriority.{h,cpp} source files.
- Removed asorted newly-unused variables.
- The 'show' command now highlights unused priority settings.
- Removed unused localized priority-relateѕ strings.
- Added legacy mapping for columns and sort columns for 'priority.long' and
  'priority.short' columns in report definitions.
- Removed priority color rules implementation.
- Removed obsolete tests for #860, #990, custom.priority_long.t.
- Updated various tests that set priority default, colors.
2015-04-04 19:30:33 -04:00
Paul Beckingham
743cb92958 Context: Static initialize UDA sort order values 2015-04-04 14:50:38 -04:00
Paul Beckingham
7665d13d42 Duration
- Removed legacy duration value mapping, which causes much performance
  degradation.
2015-03-02 16:16:39 -05:00
Paul Beckingham
b7ad091d00 Updated copyright to 2015 2015-01-01 00:00:41 -05:00
Paul Beckingham
b972c2c6c8 Task
- Improved structure of legacy duration value upgrades, so it can be used for
  other things, namely UDA durations.
2014-10-07 22:38:44 -04:00
Paul Beckingham
1a5fb437a5 Task
- Upgrades legacy recur values.
2014-10-07 00:24:03 -04:00
Paul Beckingham
b5f3cfd9a3 Code Cleanup
- Replaced multiple Task:setX methods with Task::setAsNow (x).
2014-09-14 11:57:02 -04:00
Paul Beckingham
a7171193ca Task
- Migrated util.cpp encode and decode functions because this is the only place
  they are used.
2014-09-07 17:23:16 -04:00
Wilhelm Schuermann
7548ce662a TW-296
- TW-296 urgency of blocked task should affect urgency of blocking task

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2014-07-06 14:11:10 -04:00
Paul Beckingham
1ccbb3b43a Task
- Added ::get_float method for accessing numeric attributes.
2014-06-24 22:14:46 -04:00
Paul Beckingham
55b5149be0 TW-72
- TW-72 extend info report with urgency column
2014-06-01 16:33:14 -04:00
Paul Beckingham
46d1f2c679 Build
- Added missing include for FreeBSD.
2014-05-29 20:05:29 -04:00
Paul Beckingham
c39285b61c Task
- Renamed 'mods_required' argument to the more accurate 'text_required' in the
  ::modify method.
2014-05-27 00:37:31 -04:00
Paul Beckingham
b4539a9df9 Task
- ::modify now assumes that it is not mandatory that there be a non-trivial set
  of changes.  This can be overridden.
2014-05-27 00:34:48 -04:00
Paul Beckingham
f495e7c385 A3
- Removed obsolete ::which_operator.
2014-05-25 19:02:44 -04:00
Paul Beckingham
3abff20a46 Code Cleanup
- Removed obsolete A3::postfix, Task::modify, Task::next_mod_group,
  Command::modify_task*.
2014-05-25 18:53:30 -04:00
Paul Beckingham
1bdfb5d431 Task
- Implemented an overloaded ::modify method that walks the parse tree instead
  of iterating over an A3 list.
- ::modify takes a Task::modType argument, which specifieѕ how words are
  handled (replace description, prepend to description, append to description,
  add annotation), and this eliminates the need for multiple modify methods.
- Marked existing methods as obsolete.
2014-05-25 16:47:27 -04:00
Paul Beckingham
c933ed2cf7 Code Cleanup
- Migrated the recur.cpp getDueState() function into Task::getDateState(),
  which can assess any date attribute.
- Improved implementation to distinguish between:
    - not due, or not due for rc.due days
    - due after today
    - due later today
    - due earlier today
    - due before today
  This greater precision should address some outstanding issues.
2014-04-12 16:03:19 -04:00
Paul Beckingham
5ca55e75cf Feature TW-197
- TW-197 New virtual tag READY.
2014-02-15 14:39:46 -05:00
Paul Beckingham
b9c853fece Feature TW-1260
- TW-1260 New virtual tags YESTERDAY, TOMORROW.
2014-02-15 14:36:49 -05:00
Paul Beckingham
523dce8f32 Code Cleanup
- Standardized headers.
2014-02-01 14:33:37 -05:00
Paul Beckingham
8ed92ca498 Copyright
- Bumped copyright to 2014, ready for release.
2014-01-01 13:32:22 -05:00
Paul Beckingham
bc41e7378a Feature
- New virtual tags (WEEK, MONTH, YEAR, PARENT).
2013-08-26 09:25:29 -07:00
Thomas
55a8b157b1 Migrated core task modification code to the Task object, leaving wrappers behind for legacy usage. 2013-06-10 17:18:33 -04:00
Paul Beckingham
29e9dbcea6 Convergence
- Task.{h,cpp} code is converging on a shared taskwarrior/task server version.
2013-06-02 17:46:34 -04:00
Paul Beckingham
d03c4cda8a Build Error
- Many files were missing an explicit cmake.h include.  Some were not including
  it at all.  Now it's used almost everywhere.

(cherry picked from commit 82ae86979c497e6d1d0c6b2b5a55aa379ec82c98)
2013-06-02 13:57:36 -04:00
Paul Beckingham
c16a735040 Decoupling
- Eliminated some calls to context.config from Task‥cpp, reducing the coupling.
  If context can be eliminated from Task.cpp, via statically initialized
  variables, then Taskwarrior and the task server can share Task.{ḩ,cpp} which
  would be an enormous saving in effort.

(cherry picked from commit 215b03b1a7f47299a0d3e64331c7e3c962b4caf0)
2013-06-02 13:55:45 -04:00
Paul Beckingham
4672d16091 Shared Code
- Added '#ifdef PRODUCT_TASKWARRIOR' in enough places that taskd can now share an
  identical copy of Task.{h,cpp}.
2013-05-20 18:17:05 -04:00
Paul Beckingham
6a97017c79 File Format
- File format 2 (used in version 0.9.3 - 1.5.0) is no longer supported.
- Task::parseJSON implemented.
- PRODUCT_TASKWARRIOR defined, to facilitate code sharing.
- Strings renamed for sharing purposes.
2013-05-20 16:14:34 -04:00
Paul Beckingham
773b55d374 Code Cleanup
- Removed L10N define.  It served its purpose.
2013-04-07 23:50:51 -04:00
Paul Beckingham
1de2f9e6f1 Virtual Tag
- Added 'ANNOTATED' virtual tag.  This fell out of a change mandated by #1218.
2013-04-01 15:47:51 -04:00
Paul Beckingham
1dccd29643 Copyright 2013
- Updated copyright notices.
2013-03-04 17:47:12 -05:00
Paul Beckingham
bb167b2275 Feature
- New 'modified' attribute, which contains the most recent modification date,
  if a modification has occurred.
2012-09-27 00:56:41 -04:00
Paul Beckingham
8d66d801c0 Enhancement
- Added virtual tag support for the first batch.  There will be follow-up
  work, tests and so on.
2012-08-12 13:46:23 -04:00
Paul Beckingham
9028ca4945 UDA Edit
- Added UDA and Orphan support to the 'edit' command.  It will show the
  data, but not yet recognize changes to that data.
2012-07-15 19:34:55 -04:00
Paul Beckingham
79e2c591f1 Bug #1022
- Fixed bug #1022, where dependencies were note released when a blocking task
  was completed (thanks to Arkady Grudzinsky).
- The Task object now caches ::is_blocked and ::is_blocking Booleans that are
  determined on pending.data load.
- Simplified and sped up color rule processing using cached values, reducing
  the number of map lookups, and removed loop invariants when the rules are
  not defined.
- Simplified urgency calculations given the cached values for blocked/blocking.
- On load, pending.data is scanned for accurate blocked/blocking status
  determination.
- Obsoleted and removed complex single-task dependency calculations.
- Sped up 'nag' processing by using cached values..
- Modified the 'show' command to consider color.blocking to be valid.
- Added default config value for color.blocking, and included it in the
  precedence list ahead of blocked, as it is more important.
- Updated taskrc.5 man page to include the new color.blocking rule, and its
  place in the rule precedence.
2012-07-09 01:29:51 -04:00
Paul Beckingham
b0b8bfe1d2 Bug #1023
- Fixed bug #1023, which applied default.project and default.priority during
  modification (thanks to Christoph Lange).
- Added unit tests.
- Added Christoph to the AUTHORS file.
2012-07-04 16:45:09 -04:00
Paul Beckingham
98f215b1b5 Feature: scheduled date
- Supports 'scheduled' date for tasks, which represent the earliest opportunity
  to work on a task.
- Added unit tests for urgency.
- Implemented color rule.
- Added scheduled to 'info' report.
- Updated assorted documentation.
- Removed comments in default rc because they are never seen.
- Added (broken) 'ready' report, which is like 'next' but only for ready tasks.
2012-05-13 17:19:22 -04:00
Louis-Claude Canon
ebdcccbf41 Code Cleanup
- Clean duplicated and unused function.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2012-04-30 09:01:21 -04:00
Paul Beckingham
b5f4fa03d2 Performance
- Implemented Task::get_ref, which is a lower-cost attribute accessor.
- Called this in a few places.
2012-04-28 18:01:40 -04:00
Paul Beckingham
0c0f767688 Performance
- Added locally cached configuration for urgency coefficients, which effectively
  relocates expensive loop-invariants for the 'next' report.
2012-04-28 17:59:48 -04:00
Paul Beckingham
77200d7eb4 Bug #837
- Fixed bug #837, which caused incorrect urgency calculations for tasks that
  have completed dependencies, and problems when editing those tasks (thanks
  to Matt Kraai).
- Added Task::addDependency (const std::string&) method for reconstructing
  dependencies on tasks with no ID.
- Modfified Task::urgency_blocked so that it considers the blocking task's
  status.  This is an expensive test, and so it is wrapped by a cheaper test
  to see if there are/were any dependencies at all.  This means that urgency
  calculations are not slowed for tasks without dependencies, and is slower
  but more accurate for tasks that do have dependencies.
- Modified edit command so that dependencies are shown as IDs or UUIDs
  depending on whether the task is pending or not.
- Modified edit command so that dependencies are parsed as IDs or UUIDs
  depending on whether the task is pending or not.
- Modified wording in the template of the edit command to reflect the above.
- Added unit tests bug.837.t.
2012-03-04 00:05:11 -05:00
Paul Beckingham
6580095002 Copyright
- Year change.
2012-01-02 23:32:10 -05:00
Johannes Schlatow
69fecbb2c0 Urgency
- Age-dependet urgency calculation now normalizes.
2011-12-17 19:08:31 +01:00
Johannes Schlatow
3d33d90d57 Urgency
- Added a coefficient for ageing which is the increase (or decrease)
   of urgency per day. The calculated urgency offset due to ageing
   can be limited by setting urgency.age.max.
2011-12-16 20:54:03 +01:00
Federico Hernandez
8116c6a103 License
- moving task from GPL to MIT license
  top level src directory
2011-10-08 00:04:01 +02:00
Paul Beckingham
8e34a02811 Task Validation
- Implemented more relaxed validation rules.
- Added quiet corrections for missing data.
2011-08-31 01:15:12 -04:00
Paul Beckingham
f14b414b9c Code Cleanup
- Eliminated obsolete composeYAML and composeCSV methods.  With export
  capabilities moving outside the core, these are no longer needed.
2011-08-29 21:33:34 -04:00