Improve implementation of TagTarget::toString
This commit is contained in:
parent
f9187c0682
commit
f06b64bd99
|
@ -59,28 +59,29 @@ const char *tagTargetLevelName(TagTargetLevel tagTargetLevel)
|
||||||
*/
|
*/
|
||||||
string TagTarget::toString(TagTargetLevel tagTargetLevel) const
|
string TagTarget::toString(TagTargetLevel tagTargetLevel) const
|
||||||
{
|
{
|
||||||
list<string> parts;
|
string levelString;
|
||||||
parts.emplace_back();
|
if(level()) {
|
||||||
string &level = parts.back();
|
levelString += "level ";
|
||||||
if(this->level()) {
|
levelString += numberToString(level());
|
||||||
level.append("level " + numberToString(this->level()));
|
|
||||||
}
|
}
|
||||||
string name;
|
const char *defaultLevelName;
|
||||||
if(!levelName().empty()) {
|
if(!levelName().empty() || *(defaultLevelName = tagTargetLevelName(tagTargetLevel))) {
|
||||||
name = levelName();
|
if(!levelString.empty()) {
|
||||||
} else {
|
levelString += ' ';
|
||||||
name = tagTargetLevelName(tagTargetLevel);
|
|
||||||
}
|
|
||||||
if(!name.empty()) {
|
|
||||||
if(!level.empty()) {
|
|
||||||
level.append(" ");
|
|
||||||
}
|
}
|
||||||
level.append("»");
|
levelString += '\'';
|
||||||
level.append(name);
|
if(!levelName().empty()) {
|
||||||
level.append("«");
|
levelString += levelName();
|
||||||
|
} else {
|
||||||
|
levelString += defaultLevelName;
|
||||||
|
}
|
||||||
|
levelString += '\'';
|
||||||
}
|
}
|
||||||
if(level.empty()) {
|
list<string> parts;
|
||||||
level.append("undefined target");
|
if(levelString.empty()) {
|
||||||
|
parts.emplace_back("undefined target");
|
||||||
|
} else {
|
||||||
|
parts.emplace_back(move(levelString));
|
||||||
}
|
}
|
||||||
for(auto v : tracks()) {
|
for(auto v : tracks()) {
|
||||||
parts.emplace_back("track " + numberToString(v));
|
parts.emplace_back("track " + numberToString(v));
|
||||||
|
|
Loading…
Reference in New Issue