Enhancement

- Implemented tri-state confirmation in the annotate command.
This commit is contained in:
Paul Beckingham 2009-06-27 21:31:11 -04:00
parent a2cc75d2c7
commit 8d76eaca88

View file

@ -1172,18 +1172,31 @@ std::string handleAnnotate ()
// Filter sequence. // Filter sequence.
context.filter.applySequence (tasks, context.sequence); context.filter.applySequence (tasks, context.sequence);
Permission permission;
if (context.sequence.size () > (size_t) context.config.get ("bulk", 2))
permission.bigSequence ();
foreach (task, tasks) foreach (task, tasks)
{ {
Task before (*task);
task->addAnnotation (context.task.get ("description")); task->addAnnotation (context.task.get ("description"));
context.tdb.update (*task);
if (context.config.get ("echo.command", true)) if (taskDiff (before, *task))
out << "Annotated " {
<< task->id std::string question = taskDifferences (before, *task) + "Are you sure?";
<< " with '" if (permission.confirmed (question))
<< task->get ("description") {
<< "'" context.tdb.update (*task);
<< std::endl;
if (context.config.get ("echo.command", true))
out << "Annotated "
<< task->id
<< " with '"
<< task->get ("description")
<< "'"
<< std::endl;
}
}
} }
context.tdb.commit (); context.tdb.commit ();