Enhancement - confirmation

- Added tri-state confirmation to append command.
This commit is contained in:
Paul Beckingham 2009-06-27 21:23:45 -04:00
parent 1f3092469e
commit a2cc75d2c7

View file

@ -872,6 +872,10 @@ std::string handleAppend ()
std::vector <Task> all = tasks;
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 (other, all)
@ -881,6 +885,8 @@ std::string handleAppend ()
task->get ("parent") == other->get ("parent")) || // Sibling
other->get ("uuid") == task->get ("parent")) // Parent
{
Task before (*other);
// A non-zero value forces a file write.
int changes = 0;
@ -889,7 +895,10 @@ std::string handleAppend ()
changes += deltaTags (*other);
changes += deltaAttributes (*other);
if (changes)
if (taskDiff (before, *other))
{
std::string question = taskDifferences (before, *other) + "Are you sure?";
if (changes && permission.confirmed (question))
{
context.tdb.update (*other);
@ -899,12 +908,13 @@ std::string handleAppend ()
<< "' to task "
<< other->id
<< std::endl;
}
++count;
}
}
}
}
}
context.tdb.commit ();
context.tdb.unlock ();