MCPcopy Create free account
hub / github.com/OpenOrienteering/mapper / toString

Method toString

src/core/objects/object_query.cpp:501–548  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

499
500
501QString ObjectQuery::toString() const
502{
503 auto ret = QString{};
504 switch (op)
505 {
506 case OperatorIs:
507 ret = keyToString(tags.key) + QLatin1String(" = \"") + toEscaped(tags.value) + QLatin1Char('"');
508 break;
509 case OperatorIsNot:
510 ret = keyToString(tags.key) + QLatin1String(" != \"") + toEscaped(tags.value) + QLatin1Char('"');
511 break;
512 case OperatorContains:
513 ret = keyToString(tags.key) + QLatin1String(" ~= \"") + toEscaped(tags.value) + QLatin1Char('"');
514 break;
515 case OperatorSearch:
516 case OperatorObjectText:
517 ret = QLatin1Char('"') + toEscaped(tags.value) + QLatin1Char('"');
518 break;
519
520 case OperatorAnd:
521 if (subqueries.first->getOperator() == OperatorOr)
522 ret = QLatin1Char('(') + subqueries.first->toString() + QLatin1Char(')');
523 else
524 ret = subqueries.first->toString();
525 ret += QLatin1String(" AND ");
526 if (subqueries.second->getOperator() == OperatorOr)
527 ret += QLatin1Char('(') + subqueries.second->toString() + QLatin1Char(')');
528 else
529 ret += subqueries.second->toString();
530 break;
531 case OperatorOr:
532 ret = subqueries.first->toString() + QLatin1String(" OR ") + subqueries.second->toString();
533 break;
534 case OperatorNot:
535 ret = QLatin1String("NOT ") + subqueries.second->toString();
536 break;
537
538 case OperatorSymbol:
539 ret = QLatin1String("SYMBOL \"") + (symbol ? symbol->getNumberAsString() : QString{}) + QLatin1Char('\"');
540 break;
541
542 case OperatorInvalid:
543 // Default empty string is sufficient
544 break;
545 }
546
547 return ret;
548}
549
550
551

Callers 2

tokenAsStringMethod · 0.45
loadImplMethod · 0.45

Calls 5

keyToStringFunction · 0.85
QLatin1StringClass · 0.85
toEscapedFunction · 0.85
getOperatorMethod · 0.80
getNumberAsStringMethod · 0.80

Tested by

no test coverage detected