Task: Improved method signature

This commit is contained in:
Paul Beckingham 2016-12-31 15:44:13 -05:00
parent c31e0b106d
commit cfc3e098c1
6 changed files with 9 additions and 24 deletions

View file

@ -1313,9 +1313,9 @@ void Task::addTags (const std::vector <std::string>& tags)
}
////////////////////////////////////////////////////////////////////////////////
void Task::getTags (std::vector<std::string>& tags) const
std::vector <std::string> Task::getTags () const
{
tags = split (get ("tags"), ',');
return split (get ("tags"), ',');
}
////////////////////////////////////////////////////////////////////////////////

View file

@ -125,7 +125,7 @@ public:
bool hasTag (const std::string&) const;
void addTag (const std::string&);
void addTags (const std::vector <std::string>&);
void getTags (std::vector<std::string>&) const;
std::vector <std::string> getTags () const;
void removeTag (const std::string&);
bool hasAnnotations () const;

View file

@ -224,14 +224,10 @@ std::string CmdEdit::formatTask (Task task, const std::string& dateformat)
<< "# iMask: " << task.get ("imask") << '\n'
<< " Project: " << task.get ("project") << '\n';
std::vector <std::string> tags;
task.getTags (tags);
auto allTags = join (" ", tags);
if (verbose)
before << "# " << STRING_EDIT_TAG_SEP << '\n';
before << " Tags: " << allTags << '\n'
before << " Tags: " << join (" ", task.getTags ()) << '\n'
<< " Description: " << task.get ("description") << '\n'
<< " Created: " << formatDate (task, "entry", dateformat) << '\n'
<< " Started: " << formatDate (task, "start", dateformat) << '\n'
@ -353,9 +349,8 @@ void CmdEdit::parseTask (Task& task, const std::string& after, const std::string
// tags
value = findValue (after, "\n Tags:");
auto tags = split (value, ' ');
task.remove ("tags");
task.addTags (tags);
task.addTags (split (value, ' '));
// description.
value = findMultilineValue (after, "\n Description:", "\n Created:");

View file

@ -300,8 +300,7 @@ int CmdInfo::execute (std::string& output)
}
// tags ...
std::vector <std::string> tags;
task.getTags (tags);
auto tags = task.getTags ();
if (tags.size ())
{
auto allTags = join (" ", tags);

View file

@ -145,8 +145,7 @@ int CmdStats::execute (std::string& output)
task.getAnnotations (annotations);
annotationsT += annotations.size ();
std::vector <std::string> tags;
task.getTags (tags);
auto tags = task.getTags ();
if (tags.size ())
++taggedT;

View file

@ -79,10 +79,7 @@ int CmdTags::execute (std::string& output)
std::map <std::string, int> unique;
for (auto& task : filtered)
{
std::vector <std::string> tags;
task.getTags (tags);
for (auto& tag : tags)
for (auto& tag : task.getTags ())
if (unique.find (tag) != unique.end ())
unique[tag]++;
else
@ -182,13 +179,8 @@ int CmdCompletionTags::execute (std::string& output)
// names as keys.
std::map <std::string, int> unique;
for (auto& task : filtered)
{
std::vector <std::string> tags;
task.getTags (tags);
for (auto& tag : tags)
for (auto& tag : task.getTags ())
unique[tag] = 0;
}
// Add built-in tags to map.
unique["nocolor"] = 0;