mirror of
https://github.com/GothenburgBitFactory/taskwarrior.git
synced 2025-08-27 10:07:19 +02:00
Enhancement - confirm3
- Added a tri-state confirmation function for confirming bulk operations allowing the user to answer yes/no/all to and optionally allow, disallow or bulk-allow big changes.
This commit is contained in:
parent
acb6e3cfdc
commit
b6bc72c449
2 changed files with 35 additions and 0 deletions
34
src/util.cpp
34
src/util.cpp
|
@ -74,6 +74,40 @@ bool confirm (const std::string& question)
|
||||||
return (answer == "y" || answer == "ye" || answer == "yes") ? true : false; // TODO i18n
|
return (answer == "y" || answer == "ye" || answer == "yes") ? true : false; // TODO i18n
|
||||||
}
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// 0 = no
|
||||||
|
// 1 = yes
|
||||||
|
// 2 = all
|
||||||
|
int confirm3 (const std::string& question)
|
||||||
|
{
|
||||||
|
std::vector <std::string> options;
|
||||||
|
options.push_back ("yes");
|
||||||
|
options.push_back ("no");
|
||||||
|
options.push_back ("all");
|
||||||
|
|
||||||
|
std::string answer;
|
||||||
|
std::vector <std::string> matches;
|
||||||
|
|
||||||
|
do
|
||||||
|
{
|
||||||
|
std::cout << question
|
||||||
|
<< " ("
|
||||||
|
<< options[0] << "/"
|
||||||
|
<< options[1] << "/"
|
||||||
|
<< options[2]
|
||||||
|
<< ") ";
|
||||||
|
|
||||||
|
std::getline (std::cin, answer);
|
||||||
|
answer = trim (answer);
|
||||||
|
autoComplete (answer, options, matches);
|
||||||
|
}
|
||||||
|
while (matches.size () != 1);
|
||||||
|
|
||||||
|
if (matches[0] == "yes") return 1;
|
||||||
|
else if (matches[0] == "all") return 2;
|
||||||
|
else return 0;
|
||||||
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
void delay (float f)
|
void delay (float f)
|
||||||
{
|
{
|
||||||
|
|
|
@ -51,6 +51,7 @@ for (typeof (c) *foreach_p = & (c); \
|
||||||
|
|
||||||
// util.cpp
|
// util.cpp
|
||||||
bool confirm (const std::string&);
|
bool confirm (const std::string&);
|
||||||
|
int confirm3 (const std::string&);
|
||||||
void delay (float);
|
void delay (float);
|
||||||
std::string formatSeconds (time_t);
|
std::string formatSeconds (time_t);
|
||||||
std::string formatSecondsCompact (time_t);
|
std::string formatSecondsCompact (time_t);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue