From a36cd3cbd1204ae2de767fab1271f2956dd23614 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Fri, 14 Oct 2011 02:46:52 -0400 Subject: [PATCH] Confirmation - Implemented consistent confirmation. --- src/commands/CmdDuplicate.cpp | 42 +++++++++-------------------------- src/en-US.h | 9 ++++---- 2 files changed, 16 insertions(+), 35 deletions(-) diff --git a/src/commands/CmdDuplicate.cpp b/src/commands/CmdDuplicate.cpp index 63492ded4..8482f8392 100644 --- a/src/commands/CmdDuplicate.cpp +++ b/src/commands/CmdDuplicate.cpp @@ -27,9 +27,8 @@ #define L10N // Localization complete. -#include +#include #include -#include #include #include #include @@ -53,7 +52,6 @@ int CmdDuplicate::execute (std::string& output) { int rc = 0; int count = 0; - std::stringstream out; // Apply filter. std::vector filtered; @@ -67,10 +65,6 @@ int CmdDuplicate::execute (std::string& output) // Apply the command line modifications to the new task. A3 modifications = context.a3.extract_modifications (); - Permission permission; - if (filtered.size () > (size_t) context.config.getInteger ("bulk")) - permission.bigSequence (); - std::vector ::iterator task; for (task = filtered.begin (); task != filtered.end (); ++task) { @@ -91,50 +85,36 @@ int CmdDuplicate::execute (std::string& output) dup.remove ("imak"); dup.remove ("imask"); - out << format (STRING_CMD_DUPLICATE_NON_REC, task->id) + std::cout << format (STRING_CMD_DUPLICATE_NON_REC, task->id) << "\n"; } modify_task_annotate (dup, modifications); - if (permission.confirmed (dup, - format (STRING_CMD_DONE_QUESTION, - task->id, - task->get ("description")))) + if (permission (dup, + format (STRING_CMD_DUPLICATE_CONFIRM, + task->id, + task->get ("description")), + filtered.size ())) { context.tdb2.add (dup); ++count; - - if (context.verbose ("affected") || - context.config.getBoolean ("echo.command")) // Deprecated 2.0 - out << format (STRING_CMD_DUPLICATE_DUP, - task->id, - task->get ("description")) - << "\n"; + feedback_affected (STRING_CMD_DUPLICATE_TASK, *task); if (context.verbose ("new-id")) - out << format (STRING_CMD_ADD_FEEDBACK, context.tdb2.next_id ()) + "\n"; + std::cout << format (STRING_CMD_ADD_FEEDBACK, context.tdb2.next_id ()) + "\n"; context.footnote (onProjectChange (*task, false)); } else { - out << STRING_CMD_DUPLICATE_NOT << "\n"; + std::cout << STRING_CMD_DUPLICATE_NO << "\n"; rc = 1; } } context.tdb2.commit (); - - if (context.verbose ("affected") || - context.config.getBoolean ("echo.command")) // Deprecated 2.0 - out << format ((count == 1 - ? STRING_CMD_DUPLICATE_DUP_1 - : STRING_CMD_DUPLICATE_DUP_N), - count) - << "\n"; - - output = out.str (); + feedback_affected (count == 1 ? STRING_CMD_DUPLICATE_1 : STRING_CMD_DUPLICATE_N, count); return rc; } diff --git a/src/en-US.h b/src/en-US.h index b25c1357b..7af77ec96 100644 --- a/src/en-US.h +++ b/src/en-US.h @@ -302,10 +302,11 @@ #define STRING_CMD_DUPLICATE_USAGE "Duplicates the specified tasks, and allows modifications" #define STRING_CMD_DUPLICATE_NON_REC "Note: task {1} was a recurring task. The duplicate task is not." -#define STRING_CMD_DUPLICATE_DUP "Duplicated task {1} '{2}'." -#define STRING_CMD_DUPLICATE_NOT "Task not duplicated." -#define STRING_CMD_DUPLICATE_DUP_1 "Duplicated {1} task." -#define STRING_CMD_DUPLICATE_DUP_N "Duplicated {1} tasks." +#define STRING_CMD_DUPLICATE_CONFIRM "Duplicate task {1} '{2}'?" +#define STRING_CMD_DUPLICATE_TASK "Duplicated task {1} '{2}'." +#define STRING_CMD_DUPLICATE_NO "Task not duplicated." +#define STRING_CMD_DUPLICATE_1 "Duplicated {1} task." +#define STRING_CMD_DUPLICATE_N "Duplicated {1} tasks." #define STRING_CMD_START_USAGE "Marks specified task as started" #define STRING_CMD_START_NO "Task not started."