From 558bf2ca50d88d7e54ad210d5d54cdd528b39e02 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 31 Oct 2010 11:22:36 -0400 Subject: [PATCH] Feedback - Improved feedback when announcing 'depends' attirubte changes. Now uses task IDs instead of UUIDs, resulting in a shorter, clearer message (thanks to Peter De Poorter). --- src/util.cpp | 64 ++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 52 insertions(+), 12 deletions(-) diff --git a/src/util.cpp b/src/util.cpp index 924dba3be..57371a814 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -371,22 +371,62 @@ std::string taskDifferences (const Task& before, const Task& after) << " will be deleted.\n"; foreach (name, afterOnly) - out << " - " - << *name - << " will be set to '" - << renderAttribute (*name, after.get (*name)) - << "'.\n"; + { + if (*name == "depends") + { + std::vector deps_after; + after.getDependencies (deps_after); + std::string to; + join (to, ",", deps_after); + + out << " - " + << *name + << " will be set to '" + << to + << "'.\n"; + } + else + out << " - " + << *name + << " will be set to '" + << renderAttribute (*name, after.get (*name)) + << "'.\n"; + } foreach (name, beforeAtts) if (*name != "uuid" && before.get (*name) != after.get (*name)) - out << " - " - << *name - << " will be changed from '" - << renderAttribute (*name, before.get (*name)) - << "' to '" - << renderAttribute (*name, after.get (*name)) - << "'.\n"; + { + if (*name == "depends") + { + std::vector deps_before; + before.getDependencies (deps_before); + std::string from; + join (from, ",", deps_before); + + std::vector deps_after; + after.getDependencies (deps_after); + std::string to; + join (to, ",", deps_after); + + out << " - " + << *name + << " will be changed from '" + << from + << "' to '" + << to + << "'.\n"; + } + else + out << " - " + << *name + << " will be changed from '" + << renderAttribute (*name, before.get (*name)) + << "' to '" + << renderAttribute (*name, after.get (*name)) + << "'.\n"; + } + // Shouldn't just say nothing. if (out.str ().length () == 0)