| Line |
Branch |
Decision |
Call |
Exec |
Source |
| 1 |
|
|
|
|
#include "PatternImporter.h" |
| 2 |
|
|
|
|
|
| 3 |
|
|
|
|
#include <QJsonArray> |
| 4 |
|
|
|
|
#include <QJsonObject> |
| 5 |
|
|
|
|
#include <QJsonDocument> |
| 6 |
|
|
|
|
#include <QTemporaryFile> |
| 7 |
|
|
|
|
|
| 8 |
|
|
|
|
#include "CLOAPIInterface.h" |
| 9 |
|
|
|
|
|
| 10 |
|
|
|
|
#include "Pattern.h" |
| 11 |
|
|
|
|
|
| 12 |
|
|
|
|
#include "Logging.h" |
| 13 |
|
|
|
|
#define LOGGER_NAME "Pattern Importer" |
| 14 |
|
|
|
|
|
| 15 |
|
|
|
|
using namespace CLO3D; |
| 16 |
|
|
|
|
using namespace Chrysalis; |
| 17 |
|
|
|
|
|
| 18 |
|
|
0/5
✗ Call 0 not invoked.
✗ Call 1 not invoked.
✗ Call 2 not invoked.
✗ Call 3 not invoked.
✗ Call 4 not invoked.
|
✗ |
PatternImporter::PatternImporter(std::unique_ptr<Project> project): project_(std::move(project)) {} |
| 19 |
|
|
|
|
|
| 20 |
|
|
|
✗ |
void PatternImporter::import() const { |
| 21 |
|
|
|
✗ |
static auto getPointObject = [](const CG::Point& point, const bool isCurved = false) { |
| 22 |
|
|
0/1
✗ Call 0 not invoked.
|
✗ |
QJsonObject pointObject; |
| 23 |
|
|
0/27
✗ Call 0 not invoked.
✗ Call 1 not invoked.
✗ Call 2 not invoked.
✗ Call 5 not invoked.
✗ Call 6 not invoked.
✗ Call 9 not invoked.
✗ Call 10 not invoked.
✗ Call 11 not invoked.
✗ Call 12 not invoked.
✗ Call 15 not invoked.
✗ Call 16 not invoked.
✗ Call 19 not invoked.
✗ Call 20 not invoked.
✗ Call 23 not invoked.
✗ Call 24 not invoked.
✗ Call 25 not invoked.
✗ Call 26 not invoked.
✗ Call 27 not invoked.
✗ Call 28 not invoked.
✗ Call 29 not invoked.
✗ Call 30 not invoked.
✗ Call 31 not invoked.
✗ Call 32 not invoked.
✗ Call 33 not invoked.
✗ Call 34 not invoked.
✗ Call 35 not invoked.
✗ Call 36 not invoked.
|
✗ |
pointObject["ID"] = QString::number(reinterpret_cast<std::size_t>(&point)); |
| 24 |
|
|
0/2
✗ Call 0 not invoked.
✗ Call 1 not invoked.
|
✗ |
QJsonObject position; |
| 25 |
|
|
0/23
✗ Call 0 not invoked.
✗ Call 1 not invoked.
✗ Call 2 not invoked.
✗ Call 5 not invoked.
✗ Call 6 not invoked.
✗ Call 9 not invoked.
✗ Call 10 not invoked.
✗ Call 11 not invoked.
✗ Call 12 not invoked.
✗ Call 15 not invoked.
✗ Call 16 not invoked.
✗ Call 19 not invoked.
✗ Call 20 not invoked.
✗ Call 23 not invoked.
✗ Call 24 not invoked.
✗ Call 25 not invoked.
✗ Call 26 not invoked.
✗ Call 27 not invoked.
✗ Call 28 not invoked.
✗ Call 29 not invoked.
✗ Call 30 not invoked.
✗ Call 31 not invoked.
✗ Call 32 not invoked.
|
✗ |
position["x"] = point.x() * 100; |
| 26 |
|
|
0/23
✗ Call 0 not invoked.
✗ Call 1 not invoked.
✗ Call 2 not invoked.
✗ Call 5 not invoked.
✗ Call 6 not invoked.
✗ Call 9 not invoked.
✗ Call 10 not invoked.
✗ Call 11 not invoked.
✗ Call 12 not invoked.
✗ Call 15 not invoked.
✗ Call 16 not invoked.
✗ Call 19 not invoked.
✗ Call 20 not invoked.
✗ Call 23 not invoked.
✗ Call 24 not invoked.
✗ Call 25 not invoked.
✗ Call 26 not invoked.
✗ Call 27 not invoked.
✗ Call 28 not invoked.
✗ Call 29 not invoked.
✗ Call 30 not invoked.
✗ Call 31 not invoked.
✗ Call 32 not invoked.
|
✗ |
position["y"] = point.y() * 100; |
| 27 |
|
|
0/22
✗ Call 0 not invoked.
✗ Call 1 not invoked.
✗ Call 2 not invoked.
✗ Call 3 not invoked.
✗ Call 6 not invoked.
✗ Call 7 not invoked.
✗ Call 8 not invoked.
✗ Call 9 not invoked.
✗ Call 12 not invoked.
✗ Call 13 not invoked.
✗ Call 16 not invoked.
✗ Call 17 not invoked.
✗ Call 20 not invoked.
✗ Call 21 not invoked.
✗ Call 22 not invoked.
✗ Call 23 not invoked.
✗ Call 24 not invoked.
✗ Call 25 not invoked.
✗ Call 26 not invoked.
✗ Call 27 not invoked.
✗ Call 28 not invoked.
✗ Call 29 not invoked.
|
✗ |
pointObject["Position"] = std::move(position); |
| 28 |
|
0/2
✗ Decision 'true' not taken.
✗ Decision 'false' not taken.
|
0/20
✗ Call 2 not invoked.
✗ Call 3 not invoked.
✗ Call 6 not invoked.
✗ Call 7 not invoked.
✗ Call 8 not invoked.
✗ Call 9 not invoked.
✗ Call 12 not invoked.
✗ Call 13 not invoked.
✗ Call 16 not invoked.
✗ Call 17 not invoked.
✗ Call 20 not invoked.
✗ Call 21 not invoked.
✗ Call 22 not invoked.
✗ Call 23 not invoked.
✗ Call 24 not invoked.
✗ Call 25 not invoked.
✗ Call 26 not invoked.
✗ Call 27 not invoked.
✗ Call 28 not invoked.
✗ Call 29 not invoked.
|
✗ |
if (isCurved) pointObject["PointType"] = "Polyline"; |
| 29 |
|
|
|
✗ |
return pointObject; |
| 30 |
|
|
0/3
✗ Call 0 not invoked.
✗ Call 1 not invoked.
✗ Call 2 not invoked.
|
✗ |
}; |
| 31 |
|
|
0/15
✗ Call 0 not invoked.
✗ Call 1 not invoked.
✗ Call 4 not invoked.
✗ Call 5 not invoked.
✗ Call 6 not invoked.
✗ Call 7 not invoked.
✗ Call 8 not invoked.
✗ Call 9 not invoked.
✗ Call 10 not invoked.
✗ Call 13 not invoked.
✗ Call 14 not invoked.
✗ Call 17 not invoked.
✗ Call 18 not invoked.
✗ Call 19 not invoked.
✗ Call 20 not invoked.
|
✗ |
LOG_INFO("Importing pattern from project: {}", project_->getName()); |
| 32 |
|
|
0/11
✗ Call 0 not invoked.
✗ Call 1 not invoked.
✗ Call 2 not invoked.
✗ Call 3 not invoked.
✗ Call 4 not invoked.
✗ Call 5 not invoked.
✗ Call 8 not invoked.
✗ Call 9 not invoked.
✗ Call 10 not invoked.
✗ Call 11 not invoked.
✗ Call 12 not invoked.
|
✗ |
project_->getInstructions()->run(); |
| 33 |
|
|
|
|
|
| 34 |
|
|
0/2
✗ Call 0 not invoked.
✗ Call 1 not invoked.
|
✗ |
QJsonObject root; |
| 35 |
|
|
0/2
✗ Call 0 not invoked.
✗ Call 1 not invoked.
|
✗ |
QJsonArray patternList; |
| 36 |
|
|
0/6
✗ Call 0 not invoked.
✗ Call 1 not invoked.
✗ Call 2 not invoked.
✗ Call 3 not invoked.
✗ Call 4 not invoked.
✗ Call 5 not invoked.
|
✗ |
const auto space = project_->getSpace(); |
| 37 |
|
0/1
? Decision couldn't be analyzed.
|
0/23
✗ Call 0 not invoked.
✗ Call 1 not invoked.
✗ Call 2 not invoked.
✗ Call 3 not invoked.
✗ Call 4 not invoked.
✗ Call 5 not invoked.
✗ Call 8 not invoked.
✗ Call 9 not invoked.
✗ Call 10 not invoked.
✗ Call 11 not invoked.
✗ Call 12 not invoked.
✗ Call 13 not invoked.
✗ Call 14 not invoked.
✗ Call 15 not invoked.
✗ Call 16 not invoked.
✗ Call 17 not invoked.
✗ Call 18 not invoked.
✗ Call 19 not invoked.
✗ Call 20 not invoked.
✗ Call 21 not invoked.
✗ Call 22 not invoked.
✗ Call 23 not invoked.
✗ Call 24 not invoked.
|
✗ |
for (const auto& pattern: *project_->getPatterns()) { |
| 38 |
|
0/2
✗ Decision 'true' not taken.
✗ Decision 'false' not taken.
|
0/4
✗ Call 0 not invoked.
✗ Call 1 not invoked.
✗ Call 2 not invoked.
✗ Call 3 not invoked.
|
✗ |
for (const auto patternSpace = pattern->getSpace(); |
| 39 |
|
|
0/23
✗ Call 0 not invoked.
✗ Call 1 not invoked.
✗ Call 2 not invoked.
✗ Call 3 not invoked.
✗ Call 6 not invoked.
✗ Call 7 not invoked.
✗ Call 8 not invoked.
✗ Call 9 not invoked.
✗ Call 10 not invoked.
✗ Call 11 not invoked.
✗ Call 12 not invoked.
✗ Call 13 not invoked.
✗ Call 14 not invoked.
✗ Call 15 not invoked.
✗ Call 16 not invoked.
✗ Call 17 not invoked.
✗ Call 18 not invoked.
✗ Call 19 not invoked.
✗ Call 20 not invoked.
✗ Call 21 not invoked.
✗ Call 22 not invoked.
✗ Call 23 not invoked.
✗ Call 24 not invoked.
|
✗ |
const auto& outline: *patternSpace->getOutline()) { |
| 40 |
|
|
0/2
✗ Call 0 not invoked.
✗ Call 1 not invoked.
|
✗ |
QJsonObject patternObject; |
| 41 |
|
|
0/15
✗ Call 0 not invoked.
✗ Call 3 not invoked.
✗ Call 4 not invoked.
✗ Call 7 not invoked.
✗ Call 8 not invoked.
✗ Call 11 not invoked.
✗ Call 12 not invoked.
✗ Call 13 not invoked.
✗ Call 14 not invoked.
✗ Call 15 not invoked.
✗ Call 16 not invoked.
✗ Call 17 not invoked.
✗ Call 18 not invoked.
✗ Call 19 not invoked.
✗ Call 20 not invoked.
|
✗ |
patternObject["Name"] = QString("%1 - %2") |
| 42 |
|
|
0/27
✗ Call 0 not invoked.
✗ Call 1 not invoked.
✗ Call 2 not invoked.
✗ Call 3 not invoked.
✗ Call 4 not invoked.
✗ Call 5 not invoked.
✗ Call 6 not invoked.
✗ Call 7 not invoked.
✗ Call 8 not invoked.
✗ Call 9 not invoked.
✗ Call 12 not invoked.
✗ Call 13 not invoked.
✗ Call 14 not invoked.
✗ Call 17 not invoked.
✗ Call 18 not invoked.
✗ Call 21 not invoked.
✗ Call 22 not invoked.
✗ Call 23 not invoked.
✗ Call 24 not invoked.
✗ Call 25 not invoked.
✗ Call 26 not invoked.
✗ Call 27 not invoked.
✗ Call 28 not invoked.
✗ Call 29 not invoked.
✗ Call 30 not invoked.
✗ Call 31 not invoked.
✗ Call 32 not invoked.
|
✗ |
.arg(pattern->getName().data()) |
| 43 |
|
|
0/39
✗ Call 0 not invoked.
✗ Call 1 not invoked.
✗ Call 2 not invoked.
✗ Call 3 not invoked.
✗ Call 4 not invoked.
✗ Call 5 not invoked.
✗ Call 6 not invoked.
✗ Call 7 not invoked.
✗ Call 8 not invoked.
✗ Call 9 not invoked.
✗ Call 10 not invoked.
✗ Call 11 not invoked.
✗ Call 14 not invoked.
✗ Call 15 not invoked.
✗ Call 16 not invoked.
✗ Call 19 not invoked.
✗ Call 20 not invoked.
✗ Call 23 not invoked.
✗ Call 24 not invoked.
✗ Call 27 not invoked.
✗ Call 28 not invoked.
✗ Call 29 not invoked.
✗ Call 30 not invoked.
✗ Call 33 not invoked.
✗ Call 34 not invoked.
✗ Call 35 not invoked.
✗ Call 36 not invoked.
✗ Call 37 not invoked.
✗ Call 38 not invoked.
✗ Call 39 not invoked.
✗ Call 40 not invoked.
✗ Call 41 not invoked.
✗ Call 42 not invoked.
✗ Call 43 not invoked.
✗ Call 44 not invoked.
✗ Call 45 not invoked.
✗ Call 46 not invoked.
✗ Call 47 not invoked.
✗ Call 48 not invoked.
|
✗ |
.arg(outline->getName().data()); |
| 44 |
|
|
0/2
✗ Call 0 not invoked.
✗ Call 1 not invoked.
|
✗ |
QJsonArray lineList; |
| 45 |
|
|
0/2
✗ Call 0 not invoked.
✗ Call 1 not invoked.
|
✗ |
QJsonObject prevPointObject; |
| 46 |
|
|
|
✗ |
const Point* prevPoint = nullptr; |
| 47 |
|
0/1
? Decision couldn't be analyzed.
|
0/14
✗ Call 0 not invoked.
✗ Call 1 not invoked.
✗ Call 2 not invoked.
✗ Call 3 not invoked.
✗ Call 6 not invoked.
✗ Call 7 not invoked.
✗ Call 8 not invoked.
✗ Call 9 not invoked.
✗ Call 10 not invoked.
✗ Call 11 not invoked.
✗ Call 12 not invoked.
✗ Call 13 not invoked.
✗ Call 14 not invoked.
✗ Call 15 not invoked.
|
✗ |
for (const auto& point: outline->points()) { |
| 48 |
|
|
0/10
✗ Call 0 not invoked.
✗ Call 1 not invoked.
✗ Call 2 not invoked.
✗ Call 3 not invoked.
✗ Call 4 not invoked.
✗ Call 5 not invoked.
✗ Call 6 not invoked.
✗ Call 7 not invoked.
✗ Call 8 not invoked.
✗ Call 11 not invoked.
|
✗ |
QJsonObject pointObject = getPointObject(*point); |
| 49 |
|
|
|
|
|
| 50 |
|
0/2
✗ Decision 'true' not taken.
✗ Decision 'false' not taken.
|
0/1
✗ Call 0 not invoked.
|
✗ |
if (!prevPointObject.empty()) { |
| 51 |
|
|
0/2
✗ Call 0 not invoked.
✗ Call 1 not invoked.
|
✗ |
QJsonArray pointList; |
| 52 |
|
|
0/8
✗ Call 0 not invoked.
✗ Call 1 not invoked.
✗ Call 4 not invoked.
✗ Call 5 not invoked.
✗ Call 8 not invoked.
✗ Call 9 not invoked.
✗ Call 10 not invoked.
✗ Call 11 not invoked.
|
✗ |
pointList.push_back(prevPointObject); |
| 53 |
|
0/2
✗ Decision 'true' not taken.
✗ Decision 'false' not taken.
|
0/3
✗ Call 0 not invoked.
✗ Call 1 not invoked.
✗ Call 2 not invoked.
|
✗ |
if (space->hasCurve(point, prevPoint)) { |
| 54 |
|
0/1
? Decision couldn't be analyzed.
|
0/17
✗ Call 0 not invoked.
✗ Call 1 not invoked.
✗ Call 2 not invoked.
✗ Call 3 not invoked.
✗ Call 6 not invoked.
✗ Call 9 not invoked.
✗ Call 10 not invoked.
✗ Call 11 not invoked.
✗ Call 12 not invoked.
✗ Call 13 not invoked.
✗ Call 14 not invoked.
✗ Call 15 not invoked.
✗ Call 16 not invoked.
✗ Call 17 not invoked.
✗ Call 18 not invoked.
✗ Call 19 not invoked.
✗ Call 20 not invoked.
|
✗ |
for (const auto curvePoint: space->getCurve(point, prevPoint)->curvePoints(0.1)) { |
| 55 |
|
|
0/15
✗ Call 0 not invoked.
✗ Call 1 not invoked.
✗ Call 2 not invoked.
✗ Call 5 not invoked.
✗ Call 6 not invoked.
✗ Call 9 not invoked.
✗ Call 10 not invoked.
✗ Call 13 not invoked.
✗ Call 14 not invoked.
✗ Call 15 not invoked.
✗ Call 16 not invoked.
✗ Call 17 not invoked.
✗ Call 18 not invoked.
✗ Call 19 not invoked.
✗ Call 20 not invoked.
|
✗ |
pointList.push_back(getPointObject(curvePoint, true)); |
| 56 |
|
|
0/2
✗ Call 0 not invoked.
✗ Call 1 not invoked.
|
✗ |
} |
| 57 |
|
|
|
|
} |
| 58 |
|
|
0/8
✗ Call 0 not invoked.
✗ Call 1 not invoked.
✗ Call 4 not invoked.
✗ Call 5 not invoked.
✗ Call 8 not invoked.
✗ Call 9 not invoked.
✗ Call 10 not invoked.
✗ Call 11 not invoked.
|
✗ |
pointList.push_back(pointObject); |
| 59 |
|
|
0/2
✗ Call 0 not invoked.
✗ Call 1 not invoked.
|
✗ |
QJsonObject lineObject; |
| 60 |
|
|
0/22
✗ Call 0 not invoked.
✗ Call 1 not invoked.
✗ Call 2 not invoked.
✗ Call 3 not invoked.
✗ Call 6 not invoked.
✗ Call 7 not invoked.
✗ Call 8 not invoked.
✗ Call 9 not invoked.
✗ Call 12 not invoked.
✗ Call 13 not invoked.
✗ Call 16 not invoked.
✗ Call 17 not invoked.
✗ Call 20 not invoked.
✗ Call 21 not invoked.
✗ Call 22 not invoked.
✗ Call 23 not invoked.
✗ Call 24 not invoked.
✗ Call 25 not invoked.
✗ Call 26 not invoked.
✗ Call 27 not invoked.
✗ Call 28 not invoked.
✗ Call 29 not invoked.
|
✗ |
lineObject["PointList"] = std::move(pointList); |
| 61 |
|
|
0/10
✗ Call 0 not invoked.
✗ Call 1 not invoked.
✗ Call 2 not invoked.
✗ Call 3 not invoked.
✗ Call 6 not invoked.
✗ Call 7 not invoked.
✗ Call 10 not invoked.
✗ Call 11 not invoked.
✗ Call 12 not invoked.
✗ Call 13 not invoked.
|
✗ |
lineList.push_back(std::move(lineObject)); |
| 62 |
|
|
0/4
✗ Call 0 not invoked.
✗ Call 1 not invoked.
✗ Call 2 not invoked.
✗ Call 3 not invoked.
|
✗ |
} |
| 63 |
|
|
|
|
|
| 64 |
|
|
0/3
✗ Call 0 not invoked.
✗ Call 1 not invoked.
✗ Call 2 not invoked.
|
✗ |
prevPointObject = std::move(pointObject); |
| 65 |
|
|
0/1
✗ Call 0 not invoked.
|
✗ |
prevPoint = point; |
| 66 |
|
|
0/2
✗ Call 0 not invoked.
✗ Call 1 not invoked.
|
✗ |
} |
| 67 |
|
|
0/2
✗ Call 0 not invoked.
✗ Call 1 not invoked.
|
✗ |
QJsonObject shapeInfo; |
| 68 |
|
|
0/22
✗ Call 0 not invoked.
✗ Call 1 not invoked.
✗ Call 2 not invoked.
✗ Call 3 not invoked.
✗ Call 6 not invoked.
✗ Call 7 not invoked.
✗ Call 8 not invoked.
✗ Call 9 not invoked.
✗ Call 12 not invoked.
✗ Call 13 not invoked.
✗ Call 16 not invoked.
✗ Call 17 not invoked.
✗ Call 20 not invoked.
✗ Call 21 not invoked.
✗ Call 22 not invoked.
✗ Call 23 not invoked.
✗ Call 24 not invoked.
✗ Call 25 not invoked.
✗ Call 26 not invoked.
✗ Call 27 not invoked.
✗ Call 28 not invoked.
✗ Call 29 not invoked.
|
✗ |
shapeInfo["LineList"] = std::move(lineList); |
| 69 |
|
|
0/22
✗ Call 0 not invoked.
✗ Call 1 not invoked.
✗ Call 2 not invoked.
✗ Call 3 not invoked.
✗ Call 6 not invoked.
✗ Call 7 not invoked.
✗ Call 8 not invoked.
✗ Call 9 not invoked.
✗ Call 12 not invoked.
✗ Call 13 not invoked.
✗ Call 16 not invoked.
✗ Call 17 not invoked.
✗ Call 20 not invoked.
✗ Call 21 not invoked.
✗ Call 22 not invoked.
✗ Call 23 not invoked.
✗ Call 24 not invoked.
✗ Call 25 not invoked.
✗ Call 26 not invoked.
✗ Call 27 not invoked.
✗ Call 28 not invoked.
✗ Call 29 not invoked.
|
✗ |
patternObject["ShapeInfo"] = std::move(shapeInfo); |
| 70 |
|
|
0/8
✗ Call 0 not invoked.
✗ Call 1 not invoked.
✗ Call 4 not invoked.
✗ Call 5 not invoked.
✗ Call 8 not invoked.
✗ Call 9 not invoked.
✗ Call 10 not invoked.
✗ Call 11 not invoked.
|
✗ |
patternList.push_back(patternObject); |
| 71 |
|
|
0/8
✗ Call 0 not invoked.
✗ Call 1 not invoked.
✗ Call 2 not invoked.
✗ Call 3 not invoked.
✗ Call 4 not invoked.
✗ Call 5 not invoked.
✗ Call 6 not invoked.
✗ Call 7 not invoked.
|
✗ |
} |
| 72 |
|
|
|
|
} |
| 73 |
|
|
|
|
|
| 74 |
|
|
0/20
✗ Call 0 not invoked.
✗ Call 1 not invoked.
✗ Call 4 not invoked.
✗ Call 5 not invoked.
✗ Call 6 not invoked.
✗ Call 7 not invoked.
✗ Call 10 not invoked.
✗ Call 11 not invoked.
✗ Call 14 not invoked.
✗ Call 15 not invoked.
✗ Call 18 not invoked.
✗ Call 19 not invoked.
✗ Call 20 not invoked.
✗ Call 21 not invoked.
✗ Call 22 not invoked.
✗ Call 23 not invoked.
✗ Call 24 not invoked.
✗ Call 25 not invoked.
✗ Call 26 not invoked.
✗ Call 27 not invoked.
|
✗ |
root["PatternList"] = patternList; |
| 75 |
|
|
|
|
|
| 76 |
|
|
0/2
✗ Call 0 not invoked.
✗ Call 1 not invoked.
|
✗ |
QTemporaryFile tempFile; |
| 77 |
|
0/2
✗ Decision 'true' not taken.
✗ Decision 'false' not taken.
|
0/2
✗ Call 0 not invoked.
✗ Call 1 not invoked.
|
✗ |
if (!tempFile.open()) { |
| 78 |
|
|
0/4
✗ Call 0 not invoked.
✗ Call 1 not invoked.
✗ Call 4 not invoked.
✗ Call 5 not invoked.
|
✗ |
LOG_ERROR("Failed to create temporary file."); |
| 79 |
|
|
|
✗ |
return; |
| 80 |
|
|
|
|
} |
| 81 |
|
|
|
|
|
| 82 |
|
|
0/2
✗ Call 0 not invoked.
✗ Call 1 not invoked.
|
✗ |
const QJsonDocument doc(root); |
| 83 |
|
|
0/9
✗ Call 0 not invoked.
✗ Call 1 not invoked.
✗ Call 2 not invoked.
✗ Call 5 not invoked.
✗ Call 6 not invoked.
✗ Call 9 not invoked.
✗ Call 10 not invoked.
✗ Call 11 not invoked.
✗ Call 12 not invoked.
|
✗ |
tempFile.write(doc.toJson(QJsonDocument::Indented)); |
| 84 |
|
|
0/2
✗ Call 0 not invoked.
✗ Call 1 not invoked.
|
✗ |
tempFile.flush(); |
| 85 |
|
|
|
|
|
| 86 |
|
0/2
✗ Decision 'true' not taken.
✗ Decision 'false' not taken.
|
0/8
✗ Call 0 not invoked.
✗ Call 1 not invoked.
✗ Call 2 not invoked.
✗ Call 5 not invoked.
✗ Call 8 not invoked.
✗ Call 9 not invoked.
✗ Call 12 not invoked.
✗ Call 13 not invoked.
|
✗ |
if (std::string tempFilePath = tempFile.fileName().toStdString(); |
| 87 |
|
|
0/18
✗ Call 0 not invoked.
✗ Call 3 not invoked.
✗ Call 4 not invoked.
✗ Call 5 not invoked.
✗ Call 6 not invoked.
✗ Call 9 not invoked.
✗ Call 10 not invoked.
✗ Call 11 not invoked.
✗ Call 12 not invoked.
✗ Call 13 not invoked.
✗ Call 14 not invoked.
✗ Call 15 not invoked.
✗ Call 16 not invoked.
✗ Call 19 not invoked.
✗ Call 22 not invoked.
✗ Call 23 not invoked.
✗ Call 24 not invoked.
✗ Call 25 not invoked.
|
✗ |
!PATTERN_API->ImportPatternJSON(tempFilePath)) { |
| 88 |
|
|
0/4
✗ Call 0 not invoked.
✗ Call 1 not invoked.
✗ Call 4 not invoked.
✗ Call 5 not invoked.
|
✗ |
LOG_ERROR("Failed to import pattern: {}", tempFilePath); |
| 89 |
|
|
0/2
✗ Call 0 not invoked.
✗ Call 1 not invoked.
|
✗ |
} |
| 90 |
|
|
0/10
✗ Call 0 not invoked.
✗ Call 1 not invoked.
✗ Call 2 not invoked.
✗ Call 5 not invoked.
✗ Call 8 not invoked.
✗ Call 11 not invoked.
✗ Call 12 not invoked.
✗ Call 13 not invoked.
✗ Call 14 not invoked.
✗ Call 15 not invoked.
|
✗ |
} |
| 91 |
|
|
|
|
|