| Line |
Branch |
Decision |
Call |
Exec |
Source |
| 1 |
|
|
|
|
#include "JsonUIExporter.h" |
| 2 |
|
|
|
|
|
| 3 |
|
|
|
|
#include <memory> |
| 4 |
|
|
|
|
#include <utility> |
| 5 |
|
|
|
|
|
| 6 |
|
|
|
|
#include <QLayout> |
| 7 |
|
|
|
|
#include <QJsonArray> |
| 8 |
|
|
|
|
#include <QJsonObject> |
| 9 |
|
|
|
|
#include <QApplication> |
| 10 |
|
|
|
|
#include <QMetaProperty> |
| 11 |
|
|
|
|
#include <QJsonDocument> |
| 12 |
|
|
|
|
|
| 13 |
|
|
|
|
#include "ExtensionsManager.h" |
| 14 |
|
|
|
|
|
| 15 |
|
|
|
|
#include "Logging.h" |
| 16 |
|
|
|
|
#define LOGGER_NAME "Json UI Exporter" |
| 17 |
|
|
|
|
|
| 18 |
|
|
|
|
using namespace CLO3D; |
| 19 |
|
|
|
|
|
| 20 |
|
|
12/14
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 3 invoked.
✓ Call 4 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
✓ Call 7 invoked.
✓ Call 8 invoked.
✓ Call 9 invoked.
✓ Call 10 invoked.
✓ Call 11 invoked.
✗ Call 12 not invoked.
✗ Call 13 not invoked.
|
1 |
JsonUIExporter::JsonUIExporter(std::unique_ptr<JsonUIExporterOptions> options): options_(std::move(options)) { |
| 21 |
2/4
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
|
|
4/4
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 4 invoked.
✓ Call 5 invoked.
|
1 |
LOG_TRACE("Exporter has been created."); |
| 22 |
|
|
0/7
✗ 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.
|
1 |
} |
| 23 |
|
|
|
|
|
| 24 |
|
|
|
✗ |
JsonUIExporter* JsonUIExporter::create() { |
| 25 |
|
|
0/10
✗ 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 15 not invoked.
|
✗ |
return new JsonUIExporter(std::make_unique<JsonUIExporterOptions>()); |
| 26 |
|
|
|
|
} |
| 27 |
|
|
|
|
|
| 28 |
|
|
|
1 |
void JsonUIExporter::exportUI(std::forward_list<QWidget*>&& widgets) { |
| 29 |
1/2
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
|
2/2
✓ Call 0 invoked.
✓ Call 1 invoked.
|
1 |
QJsonArray json; |
| 30 |
2/2
✓ Branch 11 taken 1 times.
✓ Branch 12 taken 1 times.
|
2/2
✓ Decision 'true' taken 1 times.
✓ Decision 'false' taken 1 times.
|
11/11
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 3 invoked.
✓ Call 4 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
✓ Call 7 invoked.
✓ Call 8 invoked.
✓ Call 9 invoked.
✓ Call 10 invoked.
|
2 |
for (const auto& widget : widgets) { |
| 31 |
5/10
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
✓ Branch 17 taken 1 times.
✗ Branch 18 not taken.
✓ Branch 21 taken 1 times.
✗ Branch 22 not taken.
|
1/2
✓ Decision 'true' taken 1 times.
✗ Decision 'false' not taken.
|
16/20
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
✓ Call 9 invoked.
✓ Call 10 invoked.
✓ Call 11 invoked.
✓ Call 12 invoked.
✓ Call 15 invoked.
✓ Call 16 invoked.
✓ Call 19 invoked.
✓ Call 20 invoked.
✓ Call 23 invoked.
✓ Call 24 invoked.
✓ Call 25 invoked.
✗ Call 26 not invoked.
✗ Call 27 not invoked.
✗ Call 28 not invoked.
✗ Call 29 not invoked.
|
1 |
if (const auto jsonObject = getWidgetJson(widget); !jsonObject.keys().isEmpty()) json.append(jsonObject); |
| 32 |
|
|
|
|
} |
| 33 |
|
|
|
|
|
| 34 |
4/8
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 17 taken 1 times.
✗ Branch 18 not taken.
✓ Branch 21 taken 1 times.
✗ Branch 22 not taken.
✓ Branch 25 taken 1 times.
✗ Branch 26 not taken.
|
|
23/27
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 3 invoked.
✓ Call 4 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
✓ Call 7 invoked.
✓ Call 10 invoked.
✓ Call 11 invoked.
✓ Call 12 invoked.
✓ Call 13 invoked.
✓ Call 14 invoked.
✓ Call 15 invoked.
✓ Call 16 invoked.
✓ Call 19 invoked.
✓ Call 20 invoked.
✓ Call 23 invoked.
✓ Call 24 invoked.
✓ Call 27 invoked.
✓ Call 28 invoked.
✓ Call 29 invoked.
✓ Call 30 invoked.
✗ Call 31 not invoked.
✗ Call 32 not invoked.
✗ Call 33 not invoked.
✗ Call 34 not invoked.
|
1 |
const auto filePath = options_->getRootFolder().filePath(options_->getFileName().append(".json")); |
| 35 |
3/6
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
|
|
16/22
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
✓ Call 7 invoked.
✓ Call 8 invoked.
✓ Call 9 invoked.
✓ Call 12 invoked.
✓ Call 13 invoked.
✓ Call 16 invoked.
✓ Call 17 invoked.
✓ Call 18 invoked.
✓ Call 19 invoked.
✓ Call 20 invoked.
✓ Call 21 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.
|
1 |
LOG_UI_MESSAGE(QString("Saving json data into %1").arg(filePath)); |
| 36 |
|
|
|
|
|
| 37 |
3/6
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
|
1/2
✓ Decision 'true' taken 1 times.
✗ Decision 'false' not taken.
|
5/5
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 4 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
|
1 |
if (QFile file(filePath); file.open(QIODevice::WriteOnly | QIODevice::Truncate)) { |
| 38 |
3/6
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
|
|
11/15
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 3 invoked.
✓ Call 6 invoked.
✓ Call 9 invoked.
✓ Call 10 invoked.
✓ Call 13 invoked.
✓ Call 14 invoked.
✓ Call 15 invoked.
✓ Call 16 invoked.
✗ Call 17 not invoked.
✗ Call 18 not invoked.
✗ Call 19 not invoked.
✗ Call 20 not invoked.
|
1 |
file.write(QJsonDocument(json).toJson(QJsonDocument::Indented)); |
| 39 |
1/2
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
|
2/2
✓ Call 0 invoked.
✓ Call 1 invoked.
|
1 |
file.close(); |
| 40 |
2/4
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
|
|
6/8
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 4 invoked.
✓ Call 5 invoked.
✓ Call 8 invoked.
✓ Call 9 invoked.
✗ Call 10 not invoked.
✗ Call 11 not invoked.
|
1 |
LOG_UI_MESSAGE("Json data have been exported successfully."); |
| 41 |
|
|
|
|
} else { |
| 42 |
|
0/1
? Decision couldn't be analyzed.
|
0/24
✗ 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 13 not invoked.
✗ Call 14 not invoked.
✗ Call 15 not invoked.
✗ Call 18 not invoked.
✗ Call 19 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.
✗ Call 33 not invoked.
|
✗ |
LOG_ERROR("Failed to open {} for writing: {}", filePath.toStdString(), file.errorString().toStdString()); |
| 43 |
|
|
2/4
✓ Call 0 invoked.
✓ Call 1 invoked.
✗ Call 2 not invoked.
✗ Call 3 not invoked.
|
1 |
} |
| 44 |
|
|
2/4
✓ Call 0 invoked.
✓ Call 1 invoked.
✗ Call 2 not invoked.
✗ Call 3 not invoked.
|
2 |
} |
| 45 |
|
|
|
|
|
| 46 |
|
|
|
✗ |
BaseUIExporterOptions* JsonUIExporter::getOptions() { |
| 47 |
|
|
0/4
✗ Call 0 not invoked.
✗ Call 1 not invoked.
✗ Call 2 not invoked.
✗ Call 3 not invoked.
|
✗ |
return options_.get(); |
| 48 |
|
|
|
|
} |
| 49 |
|
|
|
|
|
| 50 |
|
|
|
9 |
QJsonObject JsonUIExporter::getWidgetJson(const QWidget *widget) { |
| 51 |
3/12
✓ Branch 8 taken 9 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 9 times.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✓ Branch 21 taken 9 times.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
|
1/2
✓ Decision 'true' taken 9 times.
✗ Decision 'false' not taken.
|
8/13
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 3 invoked.
✓ Call 4 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
✓ Call 7 invoked.
✗ Call 12 not invoked.
✗ Call 13 not invoked.
✗ Call 14 not invoked.
✗ Call 15 not invoked.
✗ Call 22 not invoked.
|
9 |
if (options_->getVisibleOnly() && !widget->isVisible()) return {}; |
| 52 |
|
|
|
|
|
| 53 |
8/16
✓ Branch 4 taken 9 times.
✗ Branch 5 not taken.
✓ Branch 17 taken 9 times.
✗ Branch 18 not taken.
✓ Branch 21 taken 9 times.
✗ Branch 22 not taken.
✓ Branch 24 taken 9 times.
✗ Branch 25 not taken.
✓ Branch 28 taken 9 times.
✗ Branch 29 not taken.
✓ Branch 37 taken 9 times.
✗ Branch 38 not taken.
✓ Branch 41 taken 9 times.
✗ Branch 42 not taken.
✓ Branch 45 taken 9 times.
✗ Branch 46 not taken.
|
|
45/59
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 3 invoked.
✓ Call 6 invoked.
✓ Call 7 invoked.
✓ Call 8 invoked.
✓ Call 9 invoked.
✓ Call 10 invoked.
✓ Call 11 invoked.
✓ Call 12 invoked.
✓ Call 13 invoked.
✓ Call 14 invoked.
✓ Call 15 invoked.
✓ Call 16 invoked.
✓ Call 19 invoked.
✓ Call 20 invoked.
✓ Call 23 invoked.
✓ Call 26 invoked.
✓ Call 27 invoked.
✓ Call 30 invoked.
✓ Call 31 invoked.
✓ Call 32 invoked.
✓ Call 33 invoked.
✓ Call 34 invoked.
✓ Call 35 invoked.
✓ Call 36 invoked.
✓ Call 39 invoked.
✓ Call 40 invoked.
✓ Call 43 invoked.
✓ Call 44 invoked.
✓ Call 47 invoked.
✓ Call 48 invoked.
✓ Call 49 invoked.
✓ Call 50 invoked.
✓ Call 51 invoked.
✓ Call 52 invoked.
✓ Call 53 invoked.
✓ Call 54 invoked.
✓ Call 55 invoked.
✓ Call 56 invoked.
✓ Call 57 invoked.
✓ Call 58 invoked.
✓ Call 59 invoked.
✓ Call 60 invoked.
✗ Call 61 not invoked.
✗ Call 62 not invoked.
✗ Call 63 not invoked.
✗ Call 64 not invoked.
✗ Call 65 not invoked.
✗ Call 66 not invoked.
✗ Call 67 not invoked.
✗ Call 68 not invoked.
✗ Call 69 not invoked.
✗ Call 70 not invoked.
✗ Call 71 not invoked.
✗ Call 72 not invoked.
✗ Call 73 not invoked.
✗ Call 74 not invoked.
|
9 |
UI_MESSAGE( |
| 54 |
|
|
|
|
QString("Exporting widget of class \"%1\" and object name \"%2\"") |
| 55 |
|
|
|
|
.arg(widget->metaObject()->className()) |
| 56 |
|
|
|
|
.arg(widget->objectName()) |
| 57 |
|
|
|
|
); |
| 58 |
|
|
|
|
|
| 59 |
1/2
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
|
|
2/2
✓ Call 0 invoked.
✓ Call 1 invoked.
|
9 |
auto objectJson = getObjectJson(widget); |
| 60 |
|
|
|
|
|
| 61 |
|
|
|
|
// ── Geometry ────────────────────────────────────────────────────────── |
| 62 |
|
|
|
|
// mapToGlobal gives position in screen coordinates, independent of |
| 63 |
|
|
|
|
// scroll offsets or parent transforms — useful for visual reconstruction. |
| 64 |
1/2
✓ Branch 5 taken 9 times.
✗ Branch 6 not taken.
|
|
6/6
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 3 invoked.
✓ Call 4 invoked.
✓ Call 7 invoked.
|
9 |
const QRect local = widget->geometry(); |
| 65 |
1/2
✓ Branch 8 taken 9 times.
✗ Branch 9 not taken.
|
|
9/10
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 3 invoked.
✓ Call 4 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
✓ Call 7 invoked.
✓ Call 10 invoked.
✗ Call 11 not invoked.
|
9 |
const QPoint global = widget->mapToGlobal(QPoint(0, 0)); |
| 66 |
|
|
|
|
|
| 67 |
1/2
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
|
|
2/2
✓ Call 0 invoked.
✓ Call 1 invoked.
|
9 |
QJsonObject geometry; |
| 68 |
4/8
✓ Branch 3 taken 9 times.
✗ Branch 4 not taken.
✓ Branch 9 taken 9 times.
✗ Branch 10 not taken.
✓ Branch 13 taken 9 times.
✗ Branch 14 not taken.
✓ Branch 17 taken 9 times.
✗ Branch 18 not taken.
|
|
16/21
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
✓ Call 7 invoked.
✓ Call 8 invoked.
✓ Call 11 invoked.
✓ Call 12 invoked.
✓ Call 15 invoked.
✓ Call 16 invoked.
✓ Call 19 invoked.
✓ Call 20 invoked.
✓ Call 21 invoked.
✓ Call 22 invoked.
✓ Call 23 invoked.
✗ Call 24 not invoked.
✗ Call 25 not invoked.
✗ Call 26 not invoked.
✗ Call 27 not invoked.
✗ Call 28 not invoked.
|
9 |
geometry["x"] = local.x(); |
| 69 |
4/8
✓ Branch 3 taken 9 times.
✗ Branch 4 not taken.
✓ Branch 9 taken 9 times.
✗ Branch 10 not taken.
✓ Branch 13 taken 9 times.
✗ Branch 14 not taken.
✓ Branch 17 taken 9 times.
✗ Branch 18 not taken.
|
|
16/21
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
✓ Call 7 invoked.
✓ Call 8 invoked.
✓ Call 11 invoked.
✓ Call 12 invoked.
✓ Call 15 invoked.
✓ Call 16 invoked.
✓ Call 19 invoked.
✓ Call 20 invoked.
✓ Call 21 invoked.
✓ Call 22 invoked.
✓ Call 23 invoked.
✗ Call 24 not invoked.
✗ Call 25 not invoked.
✗ Call 26 not invoked.
✗ Call 27 not invoked.
✗ Call 28 not invoked.
|
9 |
geometry["y"] = local.y(); |
| 70 |
4/8
✓ Branch 3 taken 9 times.
✗ Branch 4 not taken.
✓ Branch 9 taken 9 times.
✗ Branch 10 not taken.
✓ Branch 13 taken 9 times.
✗ Branch 14 not taken.
✓ Branch 17 taken 9 times.
✗ Branch 18 not taken.
|
|
16/21
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
✓ Call 7 invoked.
✓ Call 8 invoked.
✓ Call 11 invoked.
✓ Call 12 invoked.
✓ Call 15 invoked.
✓ Call 16 invoked.
✓ Call 19 invoked.
✓ Call 20 invoked.
✓ Call 21 invoked.
✓ Call 22 invoked.
✓ Call 23 invoked.
✗ Call 24 not invoked.
✗ Call 25 not invoked.
✗ Call 26 not invoked.
✗ Call 27 not invoked.
✗ Call 28 not invoked.
|
9 |
geometry["width"] = local.width(); |
| 71 |
4/8
✓ Branch 3 taken 9 times.
✗ Branch 4 not taken.
✓ Branch 9 taken 9 times.
✗ Branch 10 not taken.
✓ Branch 13 taken 9 times.
✗ Branch 14 not taken.
✓ Branch 17 taken 9 times.
✗ Branch 18 not taken.
|
|
16/21
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
✓ Call 7 invoked.
✓ Call 8 invoked.
✓ Call 11 invoked.
✓ Call 12 invoked.
✓ Call 15 invoked.
✓ Call 16 invoked.
✓ Call 19 invoked.
✓ Call 20 invoked.
✓ Call 21 invoked.
✓ Call 22 invoked.
✓ Call 23 invoked.
✗ Call 24 not invoked.
✗ Call 25 not invoked.
✗ Call 26 not invoked.
✗ Call 27 not invoked.
✗ Call 28 not invoked.
|
9 |
geometry["height"] = local.height(); |
| 72 |
4/8
✓ Branch 3 taken 9 times.
✗ Branch 4 not taken.
✓ Branch 9 taken 9 times.
✗ Branch 10 not taken.
✓ Branch 13 taken 9 times.
✗ Branch 14 not taken.
✓ Branch 17 taken 9 times.
✗ Branch 18 not taken.
|
|
16/21
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
✓ Call 7 invoked.
✓ Call 8 invoked.
✓ Call 11 invoked.
✓ Call 12 invoked.
✓ Call 15 invoked.
✓ Call 16 invoked.
✓ Call 19 invoked.
✓ Call 20 invoked.
✓ Call 21 invoked.
✓ Call 22 invoked.
✓ Call 23 invoked.
✗ Call 24 not invoked.
✗ Call 25 not invoked.
✗ Call 26 not invoked.
✗ Call 27 not invoked.
✗ Call 28 not invoked.
|
9 |
geometry["globalX"] = global.x(); |
| 73 |
4/8
✓ Branch 3 taken 9 times.
✗ Branch 4 not taken.
✓ Branch 9 taken 9 times.
✗ Branch 10 not taken.
✓ Branch 13 taken 9 times.
✗ Branch 14 not taken.
✓ Branch 17 taken 9 times.
✗ Branch 18 not taken.
|
|
16/21
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
✓ Call 7 invoked.
✓ Call 8 invoked.
✓ Call 11 invoked.
✓ Call 12 invoked.
✓ Call 15 invoked.
✓ Call 16 invoked.
✓ Call 19 invoked.
✓ Call 20 invoked.
✓ Call 21 invoked.
✓ Call 22 invoked.
✓ Call 23 invoked.
✗ Call 24 not invoked.
✗ Call 25 not invoked.
✗ Call 26 not invoked.
✗ Call 27 not invoked.
✗ Call 28 not invoked.
|
9 |
geometry["globalY"] = global.y(); |
| 74 |
|
|
|
|
|
| 75 |
4/8
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
✓ Branch 8 taken 9 times.
✗ Branch 9 not taken.
✓ Branch 12 taken 9 times.
✗ Branch 13 not taken.
✓ Branch 16 taken 9 times.
✗ Branch 17 not taken.
|
|
15/20
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 4 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
✓ Call 7 invoked.
✓ Call 10 invoked.
✓ Call 11 invoked.
✓ Call 14 invoked.
✓ Call 15 invoked.
✓ Call 18 invoked.
✓ Call 19 invoked.
✓ Call 20 invoked.
✓ Call 21 invoked.
✓ Call 22 invoked.
✗ Call 23 not invoked.
✗ Call 24 not invoked.
✗ Call 25 not invoked.
✗ Call 26 not invoked.
✗ Call 27 not invoked.
|
9 |
objectJson["geometry"] = geometry; |
| 76 |
|
|
|
|
|
| 77 |
|
|
|
|
// ── State ───────────────────────────────────────────────────────────── |
| 78 |
1/2
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
|
|
2/2
✓ Call 0 invoked.
✓ Call 1 invoked.
|
9 |
QJsonObject state; |
| 79 |
5/10
✓ Branch 5 taken 9 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 9 times.
✗ Branch 9 not taken.
✓ Branch 14 taken 9 times.
✗ Branch 15 not taken.
✓ Branch 18 taken 9 times.
✗ Branch 19 not taken.
✓ Branch 22 taken 9 times.
✗ Branch 23 not taken.
|
|
19/24
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 3 invoked.
✓ Call 4 invoked.
✓ Call 7 invoked.
✓ Call 10 invoked.
✓ Call 11 invoked.
✓ Call 12 invoked.
✓ Call 13 invoked.
✓ Call 16 invoked.
✓ Call 17 invoked.
✓ Call 20 invoked.
✓ Call 21 invoked.
✓ Call 24 invoked.
✓ Call 25 invoked.
✓ Call 26 invoked.
✓ Call 27 invoked.
✓ Call 28 invoked.
✗ Call 29 not invoked.
✗ Call 30 not invoked.
✗ Call 31 not invoked.
✗ Call 32 not invoked.
✗ Call 33 not invoked.
|
9 |
state["visible"] = widget->isVisible(); |
| 80 |
5/10
✓ Branch 5 taken 9 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 9 times.
✗ Branch 9 not taken.
✓ Branch 14 taken 9 times.
✗ Branch 15 not taken.
✓ Branch 18 taken 9 times.
✗ Branch 19 not taken.
✓ Branch 22 taken 9 times.
✗ Branch 23 not taken.
|
|
19/24
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 3 invoked.
✓ Call 4 invoked.
✓ Call 7 invoked.
✓ Call 10 invoked.
✓ Call 11 invoked.
✓ Call 12 invoked.
✓ Call 13 invoked.
✓ Call 16 invoked.
✓ Call 17 invoked.
✓ Call 20 invoked.
✓ Call 21 invoked.
✓ Call 24 invoked.
✓ Call 25 invoked.
✓ Call 26 invoked.
✓ Call 27 invoked.
✓ Call 28 invoked.
✗ Call 29 not invoked.
✗ Call 30 not invoked.
✗ Call 31 not invoked.
✗ Call 32 not invoked.
✗ Call 33 not invoked.
|
9 |
state["enabled"] = widget->isEnabled(); |
| 81 |
5/10
✓ Branch 5 taken 9 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 9 times.
✗ Branch 9 not taken.
✓ Branch 14 taken 9 times.
✗ Branch 15 not taken.
✓ Branch 18 taken 9 times.
✗ Branch 19 not taken.
✓ Branch 22 taken 9 times.
✗ Branch 23 not taken.
|
|
19/24
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 3 invoked.
✓ Call 4 invoked.
✓ Call 7 invoked.
✓ Call 10 invoked.
✓ Call 11 invoked.
✓ Call 12 invoked.
✓ Call 13 invoked.
✓ Call 16 invoked.
✓ Call 17 invoked.
✓ Call 20 invoked.
✓ Call 21 invoked.
✓ Call 24 invoked.
✓ Call 25 invoked.
✓ Call 26 invoked.
✓ Call 27 invoked.
✓ Call 28 invoked.
✗ Call 29 not invoked.
✗ Call 30 not invoked.
✗ Call 31 not invoked.
✗ Call 32 not invoked.
✗ Call 33 not invoked.
|
9 |
state["isWindow"] = widget->isWindow(); |
| 82 |
5/10
✓ Branch 5 taken 9 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 9 times.
✗ Branch 9 not taken.
✓ Branch 14 taken 9 times.
✗ Branch 15 not taken.
✓ Branch 18 taken 9 times.
✗ Branch 19 not taken.
✓ Branch 22 taken 9 times.
✗ Branch 23 not taken.
|
|
19/24
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 3 invoked.
✓ Call 4 invoked.
✓ Call 7 invoked.
✓ Call 10 invoked.
✓ Call 11 invoked.
✓ Call 12 invoked.
✓ Call 13 invoked.
✓ Call 16 invoked.
✓ Call 17 invoked.
✓ Call 20 invoked.
✓ Call 21 invoked.
✓ Call 24 invoked.
✓ Call 25 invoked.
✓ Call 26 invoked.
✓ Call 27 invoked.
✓ Call 28 invoked.
✗ Call 29 not invoked.
✗ Call 30 not invoked.
✗ Call 31 not invoked.
✗ Call 32 not invoked.
✗ Call 33 not invoked.
|
9 |
state["isModal"] = widget->isModal(); |
| 83 |
5/10
✓ Branch 3 taken 9 times.
✗ Branch 4 not taken.
✓ Branch 7 taken 9 times.
✗ Branch 8 not taken.
✓ Branch 13 taken 9 times.
✗ Branch 14 not taken.
✓ Branch 17 taken 9 times.
✗ Branch 18 not taken.
✓ Branch 21 taken 9 times.
✗ Branch 22 not taken.
|
|
20/27
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
✓ Call 9 invoked.
✓ Call 10 invoked.
✓ Call 11 invoked.
✓ Call 12 invoked.
✓ Call 15 invoked.
✓ Call 16 invoked.
✓ Call 19 invoked.
✓ Call 20 invoked.
✓ Call 23 invoked.
✓ Call 24 invoked.
✓ Call 25 invoked.
✓ Call 26 invoked.
✓ Call 27 invoked.
✓ Call 28 invoked.
✓ Call 29 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.
|
9 |
state["windowTitle"] = widget->windowTitle(); |
| 84 |
5/10
✓ Branch 3 taken 9 times.
✗ Branch 4 not taken.
✓ Branch 7 taken 9 times.
✗ Branch 8 not taken.
✓ Branch 13 taken 9 times.
✗ Branch 14 not taken.
✓ Branch 17 taken 9 times.
✗ Branch 18 not taken.
✓ Branch 21 taken 9 times.
✗ Branch 22 not taken.
|
|
20/27
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
✓ Call 9 invoked.
✓ Call 10 invoked.
✓ Call 11 invoked.
✓ Call 12 invoked.
✓ Call 15 invoked.
✓ Call 16 invoked.
✓ Call 19 invoked.
✓ Call 20 invoked.
✓ Call 23 invoked.
✓ Call 24 invoked.
✓ Call 25 invoked.
✓ Call 26 invoked.
✓ Call 27 invoked.
✓ Call 28 invoked.
✓ Call 29 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.
|
9 |
state["toolTip"] = widget->toolTip(); |
| 85 |
3/6
✓ Branch 1 taken 9 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 9 times.
✗ Branch 6 not taken.
✓ Branch 9 taken 9 times.
✗ Branch 10 not taken.
|
|
10/15
✓ Call 0 invoked.
✓ Call 3 invoked.
✓ Call 4 invoked.
✓ Call 7 invoked.
✓ Call 8 invoked.
✓ Call 11 invoked.
✓ Call 12 invoked.
✓ Call 13 invoked.
✓ Call 14 invoked.
✓ Call 15 invoked.
✗ Call 16 not invoked.
✗ Call 17 not invoked.
✗ Call 18 not invoked.
✗ Call 19 not invoked.
✗ Call 20 not invoked.
|
36 |
state["sizePolicy"] = QString("%1 / %2") |
| 86 |
2/4
✓ Branch 10 taken 9 times.
✗ Branch 11 not taken.
✓ Branch 15 taken 9 times.
✗ Branch 16 not taken.
|
|
18/23
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 3 invoked.
✓ Call 4 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
✓ Call 7 invoked.
✓ Call 8 invoked.
✓ Call 9 invoked.
✓ Call 12 invoked.
✓ Call 13 invoked.
✓ Call 14 invoked.
✓ Call 17 invoked.
✓ Call 18 invoked.
✓ Call 19 invoked.
✓ Call 20 invoked.
✓ Call 21 invoked.
✗ Call 22 not invoked.
✗ Call 23 not invoked.
✗ Call 24 not invoked.
✗ Call 25 not invoked.
✗ Call 26 not invoked.
|
36 |
.arg(widget->sizePolicy().horizontalPolicy()) |
| 87 |
4/8
✓ Branch 12 taken 9 times.
✗ Branch 13 not taken.
✓ Branch 17 taken 9 times.
✗ Branch 18 not taken.
✓ Branch 21 taken 9 times.
✗ Branch 22 not taken.
✓ Branch 27 taken 9 times.
✗ Branch 28 not taken.
|
|
28/35
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 3 invoked.
✓ Call 4 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
✓ Call 7 invoked.
✓ Call 8 invoked.
✓ Call 9 invoked.
✓ Call 10 invoked.
✓ Call 11 invoked.
✓ Call 14 invoked.
✓ Call 15 invoked.
✓ Call 16 invoked.
✓ Call 19 invoked.
✓ Call 20 invoked.
✓ Call 23 invoked.
✓ Call 24 invoked.
✓ Call 25 invoked.
✓ Call 26 invoked.
✓ Call 29 invoked.
✓ Call 30 invoked.
✓ Call 31 invoked.
✓ Call 32 invoked.
✓ Call 33 invoked.
✓ Call 34 invoked.
✓ Call 35 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.
|
45 |
.arg(widget->sizePolicy().verticalPolicy()); |
| 88 |
7/14
✓ Branch 8 taken 9 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 9 times.
✗ Branch 11 not taken.
✓ Branch 15 taken 9 times.
✗ Branch 16 not taken.
✓ Branch 19 taken 9 times.
✗ Branch 20 not taken.
✓ Branch 25 taken 9 times.
✗ Branch 26 not taken.
✓ Branch 29 taken 9 times.
✗ Branch 30 not taken.
✓ Branch 33 taken 9 times.
✗ Branch 34 not taken.
|
1/2
✓ Decision 'true' taken 9 times.
✗ Decision 'false' not taken.
|
28/35
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 3 invoked.
✓ Call 4 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
✓ Call 7 invoked.
✓ Call 12 invoked.
✓ Call 13 invoked.
✓ Call 14 invoked.
✓ Call 17 invoked.
✓ Call 18 invoked.
✓ Call 21 invoked.
✓ Call 22 invoked.
✓ Call 23 invoked.
✓ Call 24 invoked.
✓ Call 27 invoked.
✓ Call 28 invoked.
✓ Call 31 invoked.
✓ Call 32 invoked.
✓ Call 35 invoked.
✓ Call 36 invoked.
✓ Call 37 invoked.
✓ Call 38 invoked.
✓ Call 39 invoked.
✓ Call 40 invoked.
✓ Call 41 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.
|
9 |
if (!options_->getIgnoreCSS()) state["styleSheet"] = widget->styleSheet(); // direct — not inherited |
| 89 |
|
|
|
|
|
| 90 |
4/8
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
✓ Branch 8 taken 9 times.
✗ Branch 9 not taken.
✓ Branch 12 taken 9 times.
✗ Branch 13 not taken.
✓ Branch 16 taken 9 times.
✗ Branch 17 not taken.
|
|
15/20
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 4 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
✓ Call 7 invoked.
✓ Call 10 invoked.
✓ Call 11 invoked.
✓ Call 14 invoked.
✓ Call 15 invoked.
✓ Call 18 invoked.
✓ Call 19 invoked.
✓ Call 20 invoked.
✓ Call 21 invoked.
✓ Call 22 invoked.
✗ Call 23 not invoked.
✗ Call 24 not invoked.
✗ Call 25 not invoked.
✗ Call 26 not invoked.
✗ Call 27 not invoked.
|
9 |
objectJson["state"] = state; |
| 91 |
|
|
|
|
|
| 92 |
|
|
|
|
// ── Layout ──────────────────────────────────────────────────────────── |
| 93 |
3/4
✓ Branch 4 taken 9 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✓ Branch 7 taken 7 times.
|
2/2
✓ Decision 'true' taken 2 times.
✓ Decision 'false' taken 7 times.
|
4/4
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 3 invoked.
|
9 |
if (const QLayout *layout = widget->layout()) { |
| 94 |
1/2
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
|
|
2/2
✓ Call 0 invoked.
✓ Call 1 invoked.
|
2 |
QJsonObject layoutJson; |
| 95 |
|
|
|
|
|
| 96 |
7/14
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✓ Branch 12 taken 2 times.
✗ Branch 13 not taken.
✓ Branch 15 taken 2 times.
✗ Branch 16 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 20 not taken.
✓ Branch 25 taken 2 times.
✗ Branch 26 not taken.
✓ Branch 29 taken 2 times.
✗ Branch 30 not taken.
✓ Branch 33 taken 2 times.
✗ Branch 34 not taken.
|
|
28/35
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 3 invoked.
✓ Call 4 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
✓ Call 7 invoked.
✓ Call 10 invoked.
✓ Call 11 invoked.
✓ Call 14 invoked.
✓ Call 17 invoked.
✓ Call 18 invoked.
✓ Call 21 invoked.
✓ Call 22 invoked.
✓ Call 23 invoked.
✓ Call 24 invoked.
✓ Call 27 invoked.
✓ Call 28 invoked.
✓ Call 31 invoked.
✓ Call 32 invoked.
✓ Call 35 invoked.
✓ Call 36 invoked.
✓ Call 37 invoked.
✓ Call 38 invoked.
✓ Call 39 invoked.
✓ Call 40 invoked.
✓ Call 41 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.
|
2 |
layoutJson["class"] = QString(layout->metaObject()->className()); |
| 97 |
5/10
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✓ Branch 11 taken 2 times.
✗ Branch 12 not taken.
✓ Branch 17 taken 2 times.
✗ Branch 18 not taken.
✓ Branch 21 taken 2 times.
✗ Branch 22 not taken.
✓ Branch 25 taken 2 times.
✗ Branch 26 not taken.
|
|
22/27
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 3 invoked.
✓ Call 4 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
✓ Call 7 invoked.
✓ Call 10 invoked.
✓ Call 13 invoked.
✓ Call 14 invoked.
✓ Call 15 invoked.
✓ Call 16 invoked.
✓ Call 19 invoked.
✓ Call 20 invoked.
✓ Call 23 invoked.
✓ Call 24 invoked.
✓ Call 27 invoked.
✓ Call 28 invoked.
✓ Call 29 invoked.
✓ Call 30 invoked.
✓ Call 31 invoked.
✗ Call 32 not invoked.
✗ Call 33 not invoked.
✗ Call 34 not invoked.
✗ Call 35 not invoked.
✗ Call 36 not invoked.
|
2 |
layoutJson["itemCount"] = layout->count(); |
| 98 |
5/10
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✓ Branch 14 taken 2 times.
✗ Branch 15 not taken.
✓ Branch 18 taken 2 times.
✗ Branch 19 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 23 not taken.
|
|
19/24
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 3 invoked.
✓ Call 4 invoked.
✓ Call 7 invoked.
✓ Call 10 invoked.
✓ Call 11 invoked.
✓ Call 12 invoked.
✓ Call 13 invoked.
✓ Call 16 invoked.
✓ Call 17 invoked.
✓ Call 20 invoked.
✓ Call 21 invoked.
✓ Call 24 invoked.
✓ Call 25 invoked.
✓ Call 26 invoked.
✓ Call 27 invoked.
✓ Call 28 invoked.
✗ Call 29 not invoked.
✗ Call 30 not invoked.
✗ Call 31 not invoked.
✗ Call 32 not invoked.
✗ Call 33 not invoked.
|
2 |
layoutJson["spacing"] = layout->spacing(); |
| 99 |
|
|
|
|
|
| 100 |
1/2
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
|
|
5/5
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 3 invoked.
✓ Call 4 invoked.
|
2 |
const QMargins m = layout->contentsMargins(); |
| 101 |
1/2
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
|
|
2/2
✓ Call 0 invoked.
✓ Call 1 invoked.
|
2 |
QJsonObject margins; |
| 102 |
4/8
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 17 taken 2 times.
✗ Branch 18 not taken.
|
|
16/21
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
✓ Call 7 invoked.
✓ Call 8 invoked.
✓ Call 11 invoked.
✓ Call 12 invoked.
✓ Call 15 invoked.
✓ Call 16 invoked.
✓ Call 19 invoked.
✓ Call 20 invoked.
✓ Call 21 invoked.
✓ Call 22 invoked.
✓ Call 23 invoked.
✗ Call 24 not invoked.
✗ Call 25 not invoked.
✗ Call 26 not invoked.
✗ Call 27 not invoked.
✗ Call 28 not invoked.
|
2 |
margins["left"] = m.left(); |
| 103 |
4/8
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 17 taken 2 times.
✗ Branch 18 not taken.
|
|
16/21
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
✓ Call 7 invoked.
✓ Call 8 invoked.
✓ Call 11 invoked.
✓ Call 12 invoked.
✓ Call 15 invoked.
✓ Call 16 invoked.
✓ Call 19 invoked.
✓ Call 20 invoked.
✓ Call 21 invoked.
✓ Call 22 invoked.
✓ Call 23 invoked.
✗ Call 24 not invoked.
✗ Call 25 not invoked.
✗ Call 26 not invoked.
✗ Call 27 not invoked.
✗ Call 28 not invoked.
|
2 |
margins["top"] = m.top(); |
| 104 |
4/8
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 17 taken 2 times.
✗ Branch 18 not taken.
|
|
16/21
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
✓ Call 7 invoked.
✓ Call 8 invoked.
✓ Call 11 invoked.
✓ Call 12 invoked.
✓ Call 15 invoked.
✓ Call 16 invoked.
✓ Call 19 invoked.
✓ Call 20 invoked.
✓ Call 21 invoked.
✓ Call 22 invoked.
✓ Call 23 invoked.
✗ Call 24 not invoked.
✗ Call 25 not invoked.
✗ Call 26 not invoked.
✗ Call 27 not invoked.
✗ Call 28 not invoked.
|
2 |
margins["right"] = m.right(); |
| 105 |
4/8
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 17 taken 2 times.
✗ Branch 18 not taken.
|
|
16/21
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
✓ Call 7 invoked.
✓ Call 8 invoked.
✓ Call 11 invoked.
✓ Call 12 invoked.
✓ Call 15 invoked.
✓ Call 16 invoked.
✓ Call 19 invoked.
✓ Call 20 invoked.
✓ Call 21 invoked.
✓ Call 22 invoked.
✓ Call 23 invoked.
✗ Call 24 not invoked.
✗ Call 25 not invoked.
✗ Call 26 not invoked.
✗ Call 27 not invoked.
✗ Call 28 not invoked.
|
2 |
margins["bottom"] = m.bottom(); |
| 106 |
4/8
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✓ Branch 12 taken 2 times.
✗ Branch 13 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 17 not taken.
|
|
15/20
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 4 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
✓ Call 7 invoked.
✓ Call 10 invoked.
✓ Call 11 invoked.
✓ Call 14 invoked.
✓ Call 15 invoked.
✓ Call 18 invoked.
✓ Call 19 invoked.
✓ Call 20 invoked.
✓ Call 21 invoked.
✓ Call 22 invoked.
✗ Call 23 not invoked.
✗ Call 24 not invoked.
✗ Call 25 not invoked.
✗ Call 26 not invoked.
✗ Call 27 not invoked.
|
2 |
layoutJson["margins"] = margins; |
| 107 |
|
|
|
|
|
| 108 |
4/8
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
✓ Branch 12 taken 2 times.
✗ Branch 13 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 17 not taken.
|
|
15/20
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 4 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
✓ Call 7 invoked.
✓ Call 10 invoked.
✓ Call 11 invoked.
✓ Call 14 invoked.
✓ Call 15 invoked.
✓ Call 18 invoked.
✓ Call 19 invoked.
✓ Call 20 invoked.
✓ Call 21 invoked.
✓ Call 22 invoked.
✗ Call 23 not invoked.
✗ Call 24 not invoked.
✗ Call 25 not invoked.
✗ Call 26 not invoked.
✗ Call 27 not invoked.
|
2 |
objectJson["layout"] = layoutJson; |
| 109 |
|
|
2/4
✓ Call 0 invoked.
✓ Call 1 invoked.
✗ Call 2 not invoked.
✗ Call 3 not invoked.
|
2 |
} |
| 110 |
|
|
|
|
|
| 111 |
|
|
|
|
// ── Children ───────────────────────────────────────────────────────── |
| 112 |
|
|
|
|
// QObject::children() includes non-widget children (actions, models…). |
| 113 |
|
|
|
|
// We separate them so the consumer can choose what to inspect. |
| 114 |
1/2
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
|
|
2/2
✓ Call 0 invoked.
✓ Call 1 invoked.
|
9 |
QJsonArray widgets; |
| 115 |
1/2
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
|
|
2/2
✓ Call 0 invoked.
✓ Call 1 invoked.
|
9 |
QJsonArray objects; |
| 116 |
|
|
|
|
|
| 117 |
3/4
✓ Branch 13 taken 10 times.
✗ Branch 14 not taken.
✓ Branch 18 taken 10 times.
✓ Branch 19 taken 9 times.
|
0/1
? Decision couldn't be analyzed.
|
16/16
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 3 invoked.
✓ Call 4 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
✓ Call 7 invoked.
✓ Call 8 invoked.
✓ Call 9 invoked.
✓ Call 10 invoked.
✓ Call 11 invoked.
✓ Call 12 invoked.
✓ Call 15 invoked.
✓ Call 16 invoked.
✓ Call 17 invoked.
|
19 |
for (const auto child: widget->children()) { |
| 118 |
2/2
✓ Branch 1 taken 8 times.
✓ Branch 2 taken 2 times.
|
2/2
✓ Decision 'true' taken 8 times.
✓ Decision 'false' taken 2 times.
|
1/1
|
10 |
if (const auto childWidget = qobject_cast<QWidget*>(child)) { |
| 119 |
2/4
✓ Branch 2 taken 8 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 8 times.
✗ Branch 5 not taken.
|
2/2
✓ Decision 'true' taken 8 times.
✓ Decision 'false' taken 8 times.
|
2/2
✓ Call 0 invoked.
✓ Call 1 invoked.
|
16 |
if (QJsonObject childWidgetJson = getWidgetJson(childWidget); |
| 120 |
1/2
✓ Branch 2 taken 8 times.
✗ Branch 3 not taken.
|
|
6/7
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 4 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
✓ Call 7 invoked.
✗ Call 8 not invoked.
|
8 |
!childWidgetJson.keys().isEmpty()) { |
| 121 |
2/4
✓ Branch 2 taken 8 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 8 times.
✗ Branch 7 not taken.
|
|
6/8
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 4 invoked.
✓ Call 5 invoked.
✓ Call 8 invoked.
✓ Call 9 invoked.
✗ Call 10 not invoked.
✗ Call 11 not invoked.
|
8 |
widgets.append(childWidgetJson); |
| 122 |
|
|
1/2
✓ Call 0 invoked.
✗ Call 1 not invoked.
|
8 |
} |
| 123 |
|
|
|
|
} else { |
| 124 |
3/6
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 11 taken 2 times.
✗ Branch 12 not taken.
|
|
11/15
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
✓ Call 9 invoked.
✓ Call 10 invoked.
✓ Call 13 invoked.
✓ Call 14 invoked.
✓ Call 15 invoked.
✓ Call 16 invoked.
✗ Call 17 not invoked.
✗ Call 18 not invoked.
✗ Call 19 not invoked.
✗ Call 20 not invoked.
|
2 |
objects.append(getObjectJson(child)); |
| 125 |
|
|
|
|
} |
| 126 |
|
|
|
|
} |
| 127 |
|
|
|
|
|
| 128 |
7/12
✓ Branch 1 taken 9 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 7 times.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 17 taken 2 times.
✗ Branch 18 not taken.
✓ Branch 21 taken 2 times.
✗ Branch 22 not taken.
|
1/2
✓ Decision 'true' taken 9 times.
✗ Decision 'false' not taken.
|
16/21
✓ Call 0 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
✓ Call 9 invoked.
✓ Call 10 invoked.
✓ Call 11 invoked.
✓ Call 12 invoked.
✓ Call 15 invoked.
✓ Call 16 invoked.
✓ Call 19 invoked.
✓ Call 20 invoked.
✓ Call 23 invoked.
✓ Call 24 invoked.
✓ Call 25 invoked.
✓ Call 26 invoked.
✓ Call 27 invoked.
✗ Call 28 not invoked.
✗ Call 29 not invoked.
✗ Call 30 not invoked.
✗ Call 31 not invoked.
✗ Call 32 not invoked.
|
9 |
if (!widgets.isEmpty()) objectJson["widgets"] = widgets; |
| 129 |
7/12
✓ Branch 1 taken 9 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 7 times.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 13 taken 2 times.
✗ Branch 14 not taken.
✓ Branch 17 taken 2 times.
✗ Branch 18 not taken.
✓ Branch 21 taken 2 times.
✗ Branch 22 not taken.
|
1/2
✓ Decision 'true' taken 9 times.
✗ Decision 'false' not taken.
|
16/21
✓ Call 0 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
✓ Call 9 invoked.
✓ Call 10 invoked.
✓ Call 11 invoked.
✓ Call 12 invoked.
✓ Call 15 invoked.
✓ Call 16 invoked.
✓ Call 19 invoked.
✓ Call 20 invoked.
✓ Call 23 invoked.
✓ Call 24 invoked.
✓ Call 25 invoked.
✓ Call 26 invoked.
✓ Call 27 invoked.
✗ Call 28 not invoked.
✗ Call 29 not invoked.
✗ Call 30 not invoked.
✗ Call 31 not invoked.
✗ Call 32 not invoked.
|
9 |
if (!objects.isEmpty()) objectJson["objects"] = objects; |
| 130 |
|
|
|
|
|
| 131 |
|
|
1/1
|
9 |
return objectJson; |
| 132 |
|
|
5/10
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 3 invoked.
✓ Call 4 invoked.
✗ Call 5 not invoked.
✗ Call 6 not invoked.
✗ Call 7 not invoked.
✗ Call 8 not invoked.
✗ Call 9 not invoked.
|
9 |
} |
| 133 |
|
|
|
11 |
QJsonObject JsonUIExporter::getObjectJson(const QObject *object) { |
| 134 |
|
|
1/1
|
11 |
const auto address = [](const QObject* widget) { |
| 135 |
2/4
✓ Branch 2 taken 21 times.
✗ Branch 3 not taken.
✓ Branch 14 taken 21 times.
✗ Branch 15 not taken.
|
|
16/20
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 4 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
✓ Call 7 invoked.
✓ Call 8 invoked.
✓ Call 9 invoked.
✓ Call 10 invoked.
✓ Call 11 invoked.
✓ Call 12 invoked.
✓ Call 13 invoked.
✓ Call 16 invoked.
✓ Call 17 invoked.
✓ Call 18 invoked.
✓ Call 19 invoked.
✗ Call 20 not invoked.
✗ Call 21 not invoked.
✗ Call 22 not invoked.
✗ Call 23 not invoked.
|
42 |
return QString("0x%1").arg(reinterpret_cast<quintptr>(widget->parent()), 0, 16); |
| 136 |
|
|
|
|
}; |
| 137 |
|
|
|
|
|
| 138 |
1/2
✓ Branch 1 taken 11 times.
✗ Branch 2 not taken.
|
|
1/1
|
11 |
QJsonObject objectJson; |
| 139 |
|
|
|
|
|
| 140 |
|
|
|
|
// ── Identity ────────────────────────────────────────────────────────── |
| 141 |
7/14
✓ Branch 8 taken 11 times.
✗ Branch 9 not taken.
✓ Branch 12 taken 11 times.
✗ Branch 13 not taken.
✓ Branch 15 taken 11 times.
✗ Branch 16 not taken.
✓ Branch 19 taken 11 times.
✗ Branch 20 not taken.
✓ Branch 25 taken 11 times.
✗ Branch 26 not taken.
✓ Branch 29 taken 11 times.
✗ Branch 30 not taken.
✓ Branch 33 taken 11 times.
✗ Branch 34 not taken.
|
|
28/35
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 3 invoked.
✓ Call 4 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
✓ Call 7 invoked.
✓ Call 10 invoked.
✓ Call 11 invoked.
✓ Call 14 invoked.
✓ Call 17 invoked.
✓ Call 18 invoked.
✓ Call 21 invoked.
✓ Call 22 invoked.
✓ Call 23 invoked.
✓ Call 24 invoked.
✓ Call 27 invoked.
✓ Call 28 invoked.
✓ Call 31 invoked.
✓ Call 32 invoked.
✓ Call 35 invoked.
✓ Call 36 invoked.
✓ Call 37 invoked.
✓ Call 38 invoked.
✓ Call 39 invoked.
✓ Call 40 invoked.
✓ Call 41 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.
|
11 |
objectJson["class"] = QString(object->metaObject()->className()); |
| 142 |
|
|
|
|
|
| 143 |
|
|
2/2
✓ Call 0 invoked.
✓ Call 1 invoked.
|
11 |
QStringList classHierarchy; |
| 144 |
4/6
✓ Branch 6 taken 11 times.
✗ Branch 7 not taken.
✓ Branch 10 taken 43 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 43 times.
✓ Branch 13 taken 11 times.
|
0/1
? Decision couldn't be analyzed.
|
8/8
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 3 invoked.
✓ Call 4 invoked.
✓ Call 5 invoked.
✓ Call 8 invoked.
✓ Call 9 invoked.
|
54 |
for (const QMetaObject* metaData = object->metaObject(); metaData != nullptr; metaData = metaData->superClass()) { |
| 145 |
3/6
✓ Branch 3 taken 43 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 43 times.
✗ Branch 7 not taken.
✓ Branch 10 taken 43 times.
✗ Branch 11 not taken.
|
|
8/10
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 5 invoked.
✓ Call 8 invoked.
✓ Call 9 invoked.
✓ Call 12 invoked.
✓ Call 13 invoked.
✗ Call 14 not invoked.
✗ Call 15 not invoked.
|
43 |
classHierarchy.append(QString(metaData->className())); |
| 146 |
|
|
|
|
} |
| 147 |
|
|
|
|
|
| 148 |
6/12
✓ Branch 4 taken 11 times.
✗ Branch 5 not taken.
✓ Branch 8 taken 11 times.
✗ Branch 9 not taken.
✓ Branch 12 taken 11 times.
✗ Branch 13 not taken.
✓ Branch 18 taken 11 times.
✗ Branch 19 not taken.
✓ Branch 22 taken 11 times.
✗ Branch 23 not taken.
✓ Branch 26 taken 11 times.
✗ Branch 27 not taken.
|
|
25/34
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 3 invoked.
✓ Call 6 invoked.
✓ Call 7 invoked.
✓ Call 10 invoked.
✓ Call 11 invoked.
✓ Call 14 invoked.
✓ Call 15 invoked.
✓ Call 16 invoked.
✓ Call 17 invoked.
✓ Call 20 invoked.
✓ Call 21 invoked.
✓ Call 24 invoked.
✓ Call 25 invoked.
✓ Call 28 invoked.
✓ Call 29 invoked.
✓ Call 30 invoked.
✓ Call 31 invoked.
✓ Call 32 invoked.
✓ Call 33 invoked.
✓ Call 34 invoked.
✓ Call 35 invoked.
✓ Call 36 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.
|
11 |
objectJson["classHierarchy"] = classHierarchy.join(" -> "); |
| 149 |
5/10
✓ Branch 3 taken 11 times.
✗ Branch 4 not taken.
✓ Branch 7 taken 11 times.
✗ Branch 8 not taken.
✓ Branch 13 taken 11 times.
✗ Branch 14 not taken.
✓ Branch 17 taken 11 times.
✗ Branch 18 not taken.
✓ Branch 21 taken 11 times.
✗ Branch 22 not taken.
|
|
20/27
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
✓ Call 9 invoked.
✓ Call 10 invoked.
✓ Call 11 invoked.
✓ Call 12 invoked.
✓ Call 15 invoked.
✓ Call 16 invoked.
✓ Call 19 invoked.
✓ Call 20 invoked.
✓ Call 23 invoked.
✓ Call 24 invoked.
✓ Call 25 invoked.
✓ Call 26 invoked.
✓ Call 27 invoked.
✓ Call 28 invoked.
✓ Call 29 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.
|
11 |
objectJson["objectName"] = object->objectName(); |
| 150 |
5/10
✓ Branch 3 taken 11 times.
✗ Branch 4 not taken.
✓ Branch 7 taken 11 times.
✗ Branch 8 not taken.
✓ Branch 13 taken 11 times.
✗ Branch 14 not taken.
✓ Branch 17 taken 11 times.
✗ Branch 18 not taken.
✓ Branch 21 taken 11 times.
✗ Branch 22 not taken.
|
|
20/27
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
✓ Call 9 invoked.
✓ Call 10 invoked.
✓ Call 11 invoked.
✓ Call 12 invoked.
✓ Call 15 invoked.
✓ Call 16 invoked.
✓ Call 19 invoked.
✓ Call 20 invoked.
✓ Call 23 invoked.
✓ Call 24 invoked.
✓ Call 25 invoked.
✓ Call 26 invoked.
✓ Call 27 invoked.
✓ Call 28 invoked.
✓ Call 29 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.
|
11 |
objectJson["address"] = address(object); |
| 151 |
|
|
|
|
|
| 152 |
2/2
✓ Branch 4 taken 10 times.
✓ Branch 5 taken 1 times.
|
2/2
✓ Decision 'true' taken 10 times.
✓ Decision 'false' taken 1 times.
|
4/4
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 3 invoked.
|
11 |
if (object->parent()) { |
| 153 |
5/10
✓ Branch 7 taken 10 times.
✗ Branch 8 not taken.
✓ Branch 11 taken 10 times.
✗ Branch 12 not taken.
✓ Branch 17 taken 10 times.
✗ Branch 18 not taken.
✓ Branch 21 taken 10 times.
✗ Branch 22 not taken.
✓ Branch 25 taken 10 times.
✗ Branch 26 not taken.
|
|
24/31
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 3 invoked.
✓ Call 4 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
✓ Call 9 invoked.
✓ Call 10 invoked.
✓ Call 13 invoked.
✓ Call 14 invoked.
✓ Call 15 invoked.
✓ Call 16 invoked.
✓ Call 19 invoked.
✓ Call 20 invoked.
✓ Call 23 invoked.
✓ Call 24 invoked.
✓ Call 27 invoked.
✓ Call 28 invoked.
✓ Call 29 invoked.
✓ Call 30 invoked.
✓ Call 31 invoked.
✓ Call 32 invoked.
✓ Call 33 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.
|
10 |
objectJson["parent"] = address(object->parent()); |
| 154 |
|
|
|
|
} |
| 155 |
|
|
|
|
|
| 156 |
|
|
|
|
// ── Q_PROPERTY meta-properties ──────────────────────────────────────── |
| 157 |
|
|
|
|
// Walk the full inheritance chain so properties defined on base classes |
| 158 |
|
|
|
|
// (e.g. QAbstractButton::text) are captured alongside derived ones. |
| 159 |
|
|
|
|
|
| 160 |
1/2
✓ Branch 2 taken 11 times.
✗ Branch 3 not taken.
|
|
2/2
✓ Call 0 invoked.
✓ Call 1 invoked.
|
11 |
QJsonObject properties; |
| 161 |
|
|
|
|
|
| 162 |
1/2
✓ Branch 6 taken 11 times.
✗ Branch 7 not taken.
|
|
6/6
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 3 invoked.
✓ Call 4 invoked.
✓ Call 5 invoked.
|
11 |
const QMetaObject* meta = object->metaObject(); |
| 163 |
3/4
✓ Branch 2 taken 655 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 644 times.
✓ Branch 5 taken 11 times.
|
0/1
? Decision couldn't be analyzed.
|
2/2
✓ Call 0 invoked.
✓ Call 1 invoked.
|
655 |
for (int i = 0; i < meta->propertyCount(); ++i) { |
| 164 |
1/2
✓ Branch 3 taken 644 times.
✗ Branch 4 not taken.
|
|
3/3
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
|
644 |
const QMetaProperty property = meta->property(i); |
| 165 |
1/2
✓ Branch 2 taken 644 times.
✗ Branch 3 not taken.
|
|
2/2
✓ Call 0 invoked.
✓ Call 1 invoked.
|
644 |
const QVariant value = property.read(object); |
| 166 |
|
|
|
|
|
| 167 |
6/8
✓ Branch 1 taken 644 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 644 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 157 times.
✓ Branch 7 taken 487 times.
✓ Branch 8 taken 157 times.
✓ Branch 9 taken 487 times.
|
2/2
✓ Decision 'true' taken 487 times.
✓ Decision 'false' taken 157 times.
|
2/2
✓ Call 0 invoked.
✓ Call 3 invoked.
|
644 |
if (!value.isValid() || value.isNull()) continue; |
| 168 |
|
|
|
|
|
| 169 |
9/13
✓ Branch 1 taken 487 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 177 times.
✓ Branch 4 taken 148 times.
✓ Branch 5 taken 9 times.
✓ Branch 6 taken 16 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 52 times.
✓ Branch 10 taken 30 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 9 times.
✓ Branch 13 taken 46 times.
|
|
1/1
|
487 |
switch (value.type()) { |
| 170 |
|
1/1
✓ Decision 'true' taken 177 times.
|
|
177 |
case QVariant::Bool: { |
| 171 |
6/12
✓ Branch 2 taken 177 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 177 times.
✗ Branch 6 not taken.
✓ Branch 11 taken 177 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 177 times.
✗ Branch 15 not taken.
✓ Branch 18 taken 177 times.
✗ Branch 19 not taken.
✓ Branch 22 taken 177 times.
✗ Branch 23 not taken.
|
|
17/22
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 4 invoked.
✓ Call 7 invoked.
✓ Call 8 invoked.
✓ Call 9 invoked.
✓ Call 10 invoked.
✓ Call 13 invoked.
✓ Call 16 invoked.
✓ Call 17 invoked.
✓ Call 20 invoked.
✓ Call 21 invoked.
✓ Call 24 invoked.
✓ Call 25 invoked.
✓ Call 26 invoked.
✓ Call 27 invoked.
✓ Call 28 invoked.
✗ Call 29 not invoked.
✗ Call 30 not invoked.
✗ Call 31 not invoked.
✗ Call 32 not invoked.
✗ Call 33 not invoked.
|
177 |
properties[property.name()] = value.toBool(); |
| 172 |
|
|
|
177 |
break; |
| 173 |
|
|
|
|
} |
| 174 |
|
1/1
✓ Decision 'true' taken 148 times.
|
|
148 |
case QVariant::Int: |
| 175 |
|
|
|
|
case QVariant::UInt: |
| 176 |
|
|
|
|
case QVariant::LongLong: |
| 177 |
|
|
|
|
case QVariant::ULongLong: { |
| 178 |
6/12
✓ Branch 2 taken 148 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 148 times.
✗ Branch 6 not taken.
✓ Branch 11 taken 148 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 148 times.
✗ Branch 15 not taken.
✓ Branch 18 taken 148 times.
✗ Branch 19 not taken.
✓ Branch 22 taken 148 times.
✗ Branch 23 not taken.
|
1/1
✓ Decision 'true' taken 148 times.
|
17/22
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 4 invoked.
✓ Call 7 invoked.
✓ Call 8 invoked.
✓ Call 9 invoked.
✓ Call 10 invoked.
✓ Call 13 invoked.
✓ Call 16 invoked.
✓ Call 17 invoked.
✓ Call 20 invoked.
✓ Call 21 invoked.
✓ Call 24 invoked.
✓ Call 25 invoked.
✓ Call 26 invoked.
✓ Call 27 invoked.
✓ Call 28 invoked.
✗ Call 29 not invoked.
✗ Call 30 not invoked.
✗ Call 31 not invoked.
✗ Call 32 not invoked.
✗ Call 33 not invoked.
|
148 |
properties[property.name()] = value.toLongLong(); |
| 179 |
|
|
|
148 |
break; |
| 180 |
|
|
|
|
} |
| 181 |
|
1/1
✓ Decision 'true' taken 9 times.
|
|
9 |
case QVariant::Double: { |
| 182 |
6/12
✓ Branch 2 taken 9 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 9 times.
✗ Branch 6 not taken.
✓ Branch 11 taken 9 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 9 times.
✗ Branch 15 not taken.
✓ Branch 18 taken 9 times.
✗ Branch 19 not taken.
✓ Branch 22 taken 9 times.
✗ Branch 23 not taken.
|
|
17/22
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 4 invoked.
✓ Call 7 invoked.
✓ Call 8 invoked.
✓ Call 9 invoked.
✓ Call 10 invoked.
✓ Call 13 invoked.
✓ Call 16 invoked.
✓ Call 17 invoked.
✓ Call 20 invoked.
✓ Call 21 invoked.
✓ Call 24 invoked.
✓ Call 25 invoked.
✓ Call 26 invoked.
✓ Call 27 invoked.
✓ Call 28 invoked.
✗ Call 29 not invoked.
✗ Call 30 not invoked.
✗ Call 31 not invoked.
✗ Call 32 not invoked.
✗ Call 33 not invoked.
|
9 |
properties[property.name()] = value.toDouble(); |
| 183 |
|
|
|
9 |
break; |
| 184 |
|
|
|
|
} |
| 185 |
|
1/1
✓ Decision 'true' taken 16 times.
|
|
16 |
case QVariant::String: { |
| 186 |
6/12
✓ Branch 3 taken 16 times.
✗ Branch 4 not taken.
✓ Branch 7 taken 16 times.
✗ Branch 8 not taken.
✓ Branch 13 taken 16 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 16 times.
✗ Branch 17 not taken.
✓ Branch 20 taken 16 times.
✗ Branch 21 not taken.
✓ Branch 24 taken 16 times.
✗ Branch 25 not taken.
|
|
21/28
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
✓ Call 9 invoked.
✓ Call 10 invoked.
✓ Call 11 invoked.
✓ Call 12 invoked.
✓ Call 15 invoked.
✓ Call 18 invoked.
✓ Call 19 invoked.
✓ Call 22 invoked.
✓ Call 23 invoked.
✓ Call 26 invoked.
✓ Call 27 invoked.
✓ Call 28 invoked.
✓ Call 29 invoked.
✓ Call 30 invoked.
✓ Call 31 invoked.
✓ Call 32 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.
|
16 |
properties[property.name()] = value.toString(); |
| 187 |
|
|
|
16 |
break; |
| 188 |
|
|
|
|
} |
| 189 |
|
0/1
✗ Decision 'true' not taken.
|
|
✗ |
case QVariant::ByteArray: { |
| 190 |
|
|
0/41
✗ Call 0 not invoked.
✗ Call 1 not invoked.
✗ Call 2 not invoked.
✗ Call 3 not invoked.
✗ Call 4 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 24 not invoked.
✗ Call 27 not invoked.
✗ Call 28 not invoked.
✗ Call 31 not invoked.
✗ Call 32 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.
✗ Call 49 not invoked.
✗ Call 50 not invoked.
✗ Call 51 not invoked.
✗ Call 52 not invoked.
✗ Call 53 not invoked.
✗ Call 54 not invoked.
✗ Call 55 not invoked.
✗ Call 56 not invoked.
|
✗ |
properties[property.name()] = QString(value.toByteArray().toHex()); |
| 191 |
|
|
|
✗ |
break; |
| 192 |
|
|
|
|
} |
| 193 |
|
0/1
✗ Decision 'true' not taken.
|
|
✗ |
case QVariant::Point: { |
| 194 |
|
|
0/2
✗ Call 0 not invoked.
✗ Call 1 not invoked.
|
✗ |
const auto point = value.toPoint(); |
| 195 |
|
|
0/58
✗ Call 0 not invoked.
✗ Call 1 not invoked.
✗ Call 2 not invoked.
✗ Call 3 not invoked.
✗ Call 4 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 15 not invoked.
✗ Call 16 not invoked.
✗ Call 17 not invoked.
✗ Call 18 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 36 not invoked.
✗ Call 37 not invoked.
✗ Call 40 not invoked.
✗ Call 41 not invoked.
✗ Call 44 not invoked.
✗ Call 45 not invoked.
✗ Call 46 not invoked.
✗ Call 47 not invoked.
✗ Call 48 not invoked.
✗ Call 49 not invoked.
✗ Call 50 not invoked.
✗ Call 51 not invoked.
✗ Call 52 not invoked.
✗ Call 53 not invoked.
✗ Call 54 not invoked.
✗ Call 55 not invoked.
✗ Call 56 not invoked.
✗ Call 57 not invoked.
✗ Call 58 not invoked.
✗ Call 59 not invoked.
✗ Call 60 not invoked.
✗ Call 61 not invoked.
✗ Call 62 not invoked.
✗ Call 63 not invoked.
✗ Call 64 not invoked.
✗ Call 65 not invoked.
✗ Call 66 not invoked.
✗ Call 67 not invoked.
✗ Call 68 not invoked.
✗ Call 69 not invoked.
✗ Call 70 not invoked.
✗ Call 71 not invoked.
✗ Call 72 not invoked.
✗ Call 73 not invoked.
|
✗ |
properties[property.name()] = QString("(%1, %2)").arg(point.x()).arg(point.y()); |
| 196 |
|
|
|
✗ |
break; |
| 197 |
|
|
|
|
} |
| 198 |
|
1/1
✓ Decision 'true' taken 52 times.
|
|
52 |
case QVariant::Size: { |
| 199 |
1/2
✓ Branch 2 taken 52 times.
✗ Branch 3 not taken.
|
|
2/2
✓ Call 0 invoked.
✓ Call 1 invoked.
|
52 |
const auto size = value.toSize(); |
| 200 |
8/16
✓ Branch 5 taken 52 times.
✗ Branch 6 not taken.
✓ Branch 13 taken 52 times.
✗ Branch 14 not taken.
✓ Branch 21 taken 52 times.
✗ Branch 22 not taken.
✓ Branch 25 taken 52 times.
✗ Branch 26 not taken.
✓ Branch 31 taken 52 times.
✗ Branch 32 not taken.
✓ Branch 34 taken 52 times.
✗ Branch 35 not taken.
✓ Branch 38 taken 52 times.
✗ Branch 39 not taken.
✓ Branch 42 taken 52 times.
✗ Branch 43 not taken.
|
|
43/58
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 3 invoked.
✓ Call 4 invoked.
✓ Call 7 invoked.
✓ Call 8 invoked.
✓ Call 9 invoked.
✓ Call 10 invoked.
✓ Call 11 invoked.
✓ Call 12 invoked.
✓ Call 15 invoked.
✓ Call 16 invoked.
✓ Call 17 invoked.
✓ Call 18 invoked.
✓ Call 19 invoked.
✓ Call 20 invoked.
✓ Call 23 invoked.
✓ Call 24 invoked.
✓ Call 27 invoked.
✓ Call 28 invoked.
✓ Call 29 invoked.
✓ Call 30 invoked.
✓ Call 33 invoked.
✓ Call 36 invoked.
✓ Call 37 invoked.
✓ Call 40 invoked.
✓ Call 41 invoked.
✓ Call 44 invoked.
✓ Call 45 invoked.
✓ Call 46 invoked.
✓ Call 47 invoked.
✓ Call 48 invoked.
✓ Call 49 invoked.
✓ Call 50 invoked.
✓ Call 51 invoked.
✓ Call 52 invoked.
✓ Call 53 invoked.
✓ Call 54 invoked.
✓ Call 55 invoked.
✓ Call 56 invoked.
✓ Call 57 invoked.
✓ Call 58 invoked.
✗ Call 59 not invoked.
✗ Call 60 not invoked.
✗ Call 61 not invoked.
✗ Call 62 not invoked.
✗ Call 63 not invoked.
✗ Call 64 not invoked.
✗ Call 65 not invoked.
✗ Call 66 not invoked.
✗ Call 67 not invoked.
✗ Call 68 not invoked.
✗ Call 69 not invoked.
✗ Call 70 not invoked.
✗ Call 71 not invoked.
✗ Call 72 not invoked.
✗ Call 73 not invoked.
|
52 |
properties[property.name()] = QString("%1 x %2").arg(size.width()).arg(size.height()); |
| 201 |
|
|
|
52 |
break; |
| 202 |
|
|
|
|
} |
| 203 |
|
1/1
✓ Decision 'true' taken 30 times.
|
|
30 |
case QVariant::Rect: { |
| 204 |
1/2
✓ Branch 2 taken 30 times.
✗ Branch 3 not taken.
|
|
2/2
✓ Call 0 invoked.
✓ Call 1 invoked.
|
30 |
const auto rect = value.toRect(); |
| 205 |
4/8
✓ Branch 1 taken 30 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 30 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 30 times.
✗ Branch 9 not taken.
✓ Branch 12 taken 30 times.
✗ Branch 13 not taken.
|
|
11/16
✓ Call 0 invoked.
✓ Call 3 invoked.
✓ Call 4 invoked.
✓ Call 7 invoked.
✓ Call 10 invoked.
✓ Call 11 invoked.
✓ Call 14 invoked.
✓ Call 15 invoked.
✓ Call 16 invoked.
✓ Call 17 invoked.
✓ Call 18 invoked.
✗ Call 19 not invoked.
✗ Call 20 not invoked.
✗ Call 21 not invoked.
✗ Call 22 not invoked.
✗ Call 23 not invoked.
|
120 |
properties[property.name()] = QString("(%1, %2) %3 x %4") |
| 206 |
6/12
✓ Branch 12 taken 30 times.
✗ Branch 13 not taken.
✓ Branch 20 taken 30 times.
✗ Branch 21 not taken.
✓ Branch 28 taken 30 times.
✗ Branch 29 not taken.
✓ Branch 36 taken 30 times.
✗ Branch 37 not taken.
✓ Branch 40 taken 30 times.
✗ Branch 41 not taken.
✓ Branch 46 taken 30 times.
✗ Branch 47 not taken.
|
|
54/72
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 3 invoked.
✓ Call 4 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
✓ Call 7 invoked.
✓ Call 8 invoked.
✓ Call 9 invoked.
✓ Call 10 invoked.
✓ Call 11 invoked.
✓ Call 14 invoked.
✓ Call 15 invoked.
✓ Call 16 invoked.
✓ Call 17 invoked.
✓ Call 18 invoked.
✓ Call 19 invoked.
✓ Call 22 invoked.
✓ Call 23 invoked.
✓ Call 24 invoked.
✓ Call 25 invoked.
✓ Call 26 invoked.
✓ Call 27 invoked.
✓ Call 30 invoked.
✓ Call 31 invoked.
✓ Call 32 invoked.
✓ Call 33 invoked.
✓ Call 34 invoked.
✓ Call 35 invoked.
✓ Call 38 invoked.
✓ Call 39 invoked.
✓ Call 42 invoked.
✓ Call 43 invoked.
✓ Call 44 invoked.
✓ Call 45 invoked.
✓ Call 48 invoked.
✓ Call 49 invoked.
✓ Call 50 invoked.
✓ Call 51 invoked.
✓ Call 52 invoked.
✓ Call 53 invoked.
✓ Call 54 invoked.
✓ Call 55 invoked.
✓ Call 56 invoked.
✓ Call 57 invoked.
✓ Call 58 invoked.
✓ Call 59 invoked.
✓ Call 60 invoked.
✓ Call 61 invoked.
✓ Call 62 invoked.
✓ Call 63 invoked.
✓ Call 64 invoked.
✓ Call 65 invoked.
✗ Call 66 not invoked.
✗ Call 67 not invoked.
✗ Call 68 not invoked.
✗ Call 69 not invoked.
✗ Call 70 not invoked.
✗ Call 71 not invoked.
✗ Call 72 not invoked.
✗ Call 73 not invoked.
✗ Call 74 not invoked.
✗ Call 75 not invoked.
✗ Call 76 not invoked.
✗ Call 77 not invoked.
✗ Call 78 not invoked.
✗ Call 79 not invoked.
✗ Call 80 not invoked.
✗ Call 81 not invoked.
✗ Call 82 not invoked.
✗ Call 83 not invoked.
|
150 |
.arg(rect.x()).arg(rect.y()).arg(rect.width()).arg(rect.height()); |
| 207 |
|
|
|
30 |
break; |
| 208 |
|
|
|
|
} |
| 209 |
|
0/1
✗ Decision 'true' not taken.
|
|
✗ |
case QVariant::Color: { |
| 210 |
|
|
0/32
✗ 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 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 26 not invoked.
✗ Call 27 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.
✗ 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.
|
✗ |
properties[property.name()] = value.value<QColor>().name(QColor::HexArgb); |
| 211 |
|
|
|
✗ |
break; |
| 212 |
|
|
|
|
} |
| 213 |
|
1/1
✓ Decision 'true' taken 9 times.
|
|
9 |
case QVariant::Font: { |
| 214 |
7/14
✓ Branch 4 taken 9 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 9 times.
✗ Branch 8 not taken.
✓ Branch 11 taken 9 times.
✗ Branch 12 not taken.
✓ Branch 17 taken 9 times.
✗ Branch 18 not taken.
✓ Branch 20 taken 9 times.
✗ Branch 21 not taken.
✓ Branch 24 taken 9 times.
✗ Branch 25 not taken.
✓ Branch 28 taken 9 times.
✗ Branch 29 not taken.
|
|
25/34
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 3 invoked.
✓ Call 6 invoked.
✓ Call 9 invoked.
✓ Call 10 invoked.
✓ Call 13 invoked.
✓ Call 14 invoked.
✓ Call 15 invoked.
✓ Call 16 invoked.
✓ Call 19 invoked.
✓ Call 22 invoked.
✓ Call 23 invoked.
✓ Call 26 invoked.
✓ Call 27 invoked.
✓ Call 30 invoked.
✓ Call 31 invoked.
✓ Call 32 invoked.
✓ Call 33 invoked.
✓ Call 34 invoked.
✓ Call 35 invoked.
✓ Call 36 invoked.
✓ Call 37 invoked.
✓ Call 38 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.
|
9 |
properties[property.name()] = value.value<QFont>().toString(); |
| 215 |
|
|
|
9 |
break; |
| 216 |
|
|
|
|
} |
| 217 |
|
1/1
✓ Decision 'true' taken 46 times.
|
|
46 |
default: { |
| 218 |
|
|
|
|
// For everything else, fall back to Qt's own string conversion. |
| 219 |
|
|
|
|
// If that too fails, record the type name so it's not lost. |
| 220 |
1/2
✓ Branch 2 taken 46 times.
✗ Branch 3 not taken.
|
|
2/2
✓ Call 0 invoked.
✓ Call 1 invoked.
|
46 |
const QString str = value.toString(); |
| 221 |
3/6
✓ Branch 3 taken 46 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 46 times.
✗ Branch 7 not taken.
✓ Branch 10 taken 46 times.
✗ Branch 11 not taken.
|
|
9/12
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 5 invoked.
✓ Call 8 invoked.
✓ Call 9 invoked.
✓ Call 12 invoked.
✓ Call 13 invoked.
✓ Call 14 invoked.
✗ Call 15 not invoked.
✗ Call 16 not invoked.
✗ Call 17 not invoked.
|
138 |
properties[property.name()] = str.isEmpty() |
| 222 |
12/38
✓ Branch 1 taken 46 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 46 times.
✗ Branch 7 not taken.
✓ Branch 10 taken 46 times.
✗ Branch 11 not taken.
✓ Branch 14 taken 46 times.
✗ Branch 15 not taken.
✓ Branch 18 taken 46 times.
✗ Branch 19 not taken.
✓ Branch 22 taken 46 times.
✗ Branch 23 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✓ Branch 29 taken 46 times.
✗ Branch 30 not taken.
✓ Branch 32 taken 46 times.
✗ Branch 33 not taken.
✓ Branch 35 taken 46 times.
✗ Branch 36 not taken.
✓ Branch 38 taken 46 times.
✗ Branch 39 not taken.
✓ Branch 41 taken 46 times.
✗ Branch 42 not taken.
✓ Branch 44 taken 46 times.
✗ Branch 45 not taken.
✗ Branch 49 not taken.
✗ Branch 50 not taken.
✗ Branch 52 not taken.
✗ Branch 53 not taken.
✗ Branch 55 not taken.
✗ Branch 56 not taken.
✗ Branch 58 not taken.
✗ Branch 59 not taken.
✗ Branch 61 not taken.
✗ Branch 62 not taken.
✗ Branch 64 not taken.
✗ Branch 65 not taken.
|
|
21/30
✓ Call 0 invoked.
✓ Call 3 invoked.
✓ Call 4 invoked.
✓ Call 5 invoked.
✓ Call 8 invoked.
✓ Call 9 invoked.
✓ Call 12 invoked.
✓ Call 13 invoked.
✓ Call 16 invoked.
✓ Call 17 invoked.
✓ Call 20 invoked.
✓ Call 21 invoked.
✗ Call 24 not invoked.
✓ Call 27 invoked.
✓ Call 28 invoked.
✓ Call 31 invoked.
✓ Call 34 invoked.
✓ Call 37 invoked.
✓ Call 40 invoked.
✓ Call 43 invoked.
✓ Call 46 invoked.
✓ Call 47 invoked.
✗ Call 48 not invoked.
✗ Call 51 not invoked.
✗ Call 54 not invoked.
✗ Call 57 not invoked.
✗ Call 60 not invoked.
✗ Call 63 not invoked.
✗ Call 66 not invoked.
✗ Call 67 not invoked.
|
138 |
? QJsonValue(QString("<") + value.typeName() + ">") |
| 223 |
1/2
✓ Branch 3 taken 46 times.
✗ Branch 4 not taken.
|
|
3/3
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
|
92 |
: QJsonValue(str); |
| 224 |
|
|
1/2
✓ Call 0 invoked.
✗ Call 1 not invoked.
|
46 |
} |
| 225 |
|
|
|
|
} |
| 226 |
2/2
✓ Branch 1 taken 487 times.
✓ Branch 2 taken 157 times.
|
|
1/2
✓ Call 0 invoked.
✗ Call 3 not invoked.
|
644 |
} |
| 227 |
4/8
✓ Branch 2 taken 11 times.
✗ Branch 3 not taken.
✓ Branch 8 taken 11 times.
✗ Branch 9 not taken.
✓ Branch 12 taken 11 times.
✗ Branch 13 not taken.
✓ Branch 16 taken 11 times.
✗ Branch 17 not taken.
|
|
15/20
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 4 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
✓ Call 7 invoked.
✓ Call 10 invoked.
✓ Call 11 invoked.
✓ Call 14 invoked.
✓ Call 15 invoked.
✓ Call 18 invoked.
✓ Call 19 invoked.
✓ Call 20 invoked.
✓ Call 21 invoked.
✓ Call 22 invoked.
✗ Call 23 not invoked.
✗ Call 24 not invoked.
✗ Call 25 not invoked.
✗ Call 26 not invoked.
✗ Call 27 not invoked.
|
11 |
objectJson["properties"] = properties; |
| 228 |
|
|
|
22 |
return objectJson; |
| 229 |
|
|
2/5
✓ Call 0 invoked.
✓ Call 1 invoked.
✗ Call 2 not invoked.
✗ Call 3 not invoked.
✗ Call 4 not invoked.
|
11 |
} |
| 230 |
|
|
|
|
|