| Line |
Branch |
Decision |
Call |
Exec |
Source |
| 1 |
|
|
|
|
#include "XmlUIExporter.h" |
| 2 |
|
|
|
|
|
| 3 |
|
|
|
|
#include <memory> |
| 4 |
|
|
|
|
#include <forward_list> |
| 5 |
|
|
|
|
|
| 6 |
|
|
|
|
#include <QSet> |
| 7 |
|
|
|
|
#include <QBuffer> |
| 8 |
|
|
|
|
#include <QTextStream> |
| 9 |
|
|
|
|
#include <QToolButton> |
| 10 |
|
|
|
|
#include <QFormBuilder> |
| 11 |
|
|
|
|
#include <QDomDocument> |
| 12 |
|
|
|
|
#include <QApplication> |
| 13 |
|
|
|
|
#include <QRegularExpression> |
| 14 |
|
|
|
|
#include <QCryptographicHash> |
| 15 |
|
|
|
|
|
| 16 |
|
|
|
|
#include "ExtensionsManager.h" |
| 17 |
|
|
|
|
|
| 18 |
|
|
|
|
#include "Logging.h" |
| 19 |
|
|
|
|
#include "Task.h" |
| 20 |
|
|
|
|
#include "TaskGroup.h" |
| 21 |
|
|
|
|
#define LOGGER_NAME "XML UI Exporter" |
| 22 |
|
|
|
|
|
| 23 |
|
|
|
|
using namespace CLO3D; |
| 24 |
|
|
|
|
|
| 25 |
|
|
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 |
XmlUIExporter::XmlUIExporter(std::unique_ptr<XmlUIExporterOptions> options): options_(std::move(options)) { |
| 26 |
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."); |
| 27 |
|
|
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 |
} |
| 28 |
|
|
|
|
|
| 29 |
|
|
|
✗ |
XmlUIExporter* XmlUIExporter::create() { |
| 30 |
|
|
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 XmlUIExporter(std::make_unique<XmlUIExporterOptions>()); |
| 31 |
|
|
|
|
} |
| 32 |
|
|
|
|
|
| 33 |
|
|
|
1 |
void XmlUIExporter::exportUI(std::forward_list<QWidget*>&& widgets) { |
| 34 |
|
|
2/2
✓ Call 0 invoked.
✓ Call 1 invoked.
|
1 |
QHash<QString, const QMetaObject*> classLookup; |
| 35 |
6/10
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 18 times.
✗ Branch 14 not taken.
✓ Branch 18 taken 18 times.
✓ Branch 19 taken 1 times.
|
0/1
? Decision couldn't be analyzed.
|
10/10
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 4 invoked.
✓ Call 5 invoked.
✓ Call 8 invoked.
✓ Call 9 invoked.
✓ Call 12 invoked.
✓ Call 15 invoked.
✓ Call 16 invoked.
✓ Call 17 invoked.
|
19 |
for (const auto w: QApplication::allWidgets()) { |
| 36 |
5/10
✓ Branch 7 taken 18 times.
✗ Branch 8 not taken.
✓ Branch 17 taken 18 times.
✗ Branch 18 not taken.
✓ Branch 21 taken 18 times.
✗ Branch 22 not taken.
✓ Branch 24 taken 18 times.
✗ Branch 25 not taken.
✓ Branch 28 taken 18 times.
✗ Branch 29 not taken.
|
|
23/26
✓ 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 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 not invoked.
✗ Call 34 not invoked.
✗ Call 35 not invoked.
|
18 |
classLookup.insert(w->metaObject()->className(), w->metaObject()); |
| 37 |
|
|
1/2
✓ Call 0 invoked.
✗ Call 1 not invoked.
|
1 |
} |
| 38 |
|
|
|
1 |
int id = 0; |
| 39 |
1/2
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
|
2/2
✓ Call 0 invoked.
✓ Call 1 invoked.
|
1 |
auto group = std::make_unique<TaskGroup>(EXPORT_TASK_NAME); |
| 40 |
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) { |
| 41 |
|
|
2/2
✓ Call 0 invoked.
✓ Call 1 invoked.
|
1 |
QByteArray buffer; |
| 42 |
|
|
|
|
{ |
| 43 |
1/2
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
|
2/2
✓ Call 0 invoked.
✓ Call 1 invoked.
|
1 |
QFormBuilder builder; |
| 44 |
1/2
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
|
2/2
✓ Call 0 invoked.
✓ Call 1 invoked.
|
1 |
QBuffer device(&buffer); |
| 45 |
1/2
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
|
|
5/6
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 3 invoked.
✓ Call 6 invoked.
✗ Call 7 not invoked.
|
1 |
device.open(QIODevice::WriteOnly); |
| 46 |
1/2
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
|
2/2
✓ Call 0 invoked.
✓ Call 1 invoked.
|
1 |
builder.save(&device, widget); |
| 47 |
1/2
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
|
2/2
✓ Call 0 invoked.
✓ Call 1 invoked.
|
1 |
device.close(); |
| 48 |
|
|
4/8
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 3 invoked.
✗ Call 4 not invoked.
✗ Call 5 not invoked.
✗ Call 6 not invoked.
✗ Call 7 not invoked.
|
1 |
} |
| 49 |
|
|
|
1 |
++id; |
| 50 |
7/18
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 20 taken 1 times.
✗ Branch 21 not taken.
✓ Branch 28 taken 1 times.
✗ Branch 29 not taken.
✓ Branch 32 taken 1 times.
✗ Branch 33 not taken.
✓ Branch 36 taken 1 times.
✗ Branch 37 not taken.
✓ Branch 41 taken 1 times.
✗ Branch 42 not taken.
✗ Branch 68 not taken.
✗ Branch 69 not taken.
✗ Branch 71 not taken.
✗ Branch 72 not taken.
|
|
43/59
✓ 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 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 34 invoked.
✓ Call 35 invoked.
✓ Call 38 invoked.
✓ Call 39 invoked.
✓ Call 40 invoked.
✓ Call 43 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 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 70 not invoked.
✗ Call 73 not invoked.
✗ Call 74 not invoked.
✗ Call 75 not invoked.
✗ Call 76 not invoked.
|
1 |
group->addTask(std::make_unique<Task>(QString("Export widget #%1").arg(QString::number(id)), [this, id = QString::number(id), widget, buffer = std::move(buffer), classLookup] -> void { |
| 51 |
9/18
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 35 taken 1 times.
✗ Branch 36 not taken.
✓ Branch 39 taken 1 times.
✗ Branch 40 not taken.
✓ Branch 42 taken 1 times.
✗ Branch 43 not taken.
✓ Branch 46 taken 1 times.
✗ Branch 47 not taken.
✓ Branch 57 taken 1 times.
✗ Branch 58 not taken.
✓ Branch 61 taken 1 times.
✗ Branch 62 not taken.
✓ Branch 65 taken 1 times.
✗ Branch 66 not taken.
|
|
67/85
✓ 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 13 invoked.
✓ Call 16 invoked.
✓ Call 17 invoked.
✓ Call 18 invoked.
✓ Call 19 invoked.
✓ Call 20 invoked.
✓ Call 21 invoked.
✓ Call 22 invoked.
✓ Call 23 invoked.
✓ Call 24 invoked.
✓ Call 25 invoked.
✓ Call 26 invoked.
✓ Call 27 invoked.
✓ Call 28 invoked.
✓ Call 29 invoked.
✓ Call 30 invoked.
✓ Call 31 invoked.
✓ Call 32 invoked.
✓ Call 33 invoked.
✓ Call 34 invoked.
✓ Call 37 invoked.
✓ Call 38 invoked.
✓ Call 41 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 59 invoked.
✓ Call 60 invoked.
✓ Call 63 invoked.
✓ Call 64 invoked.
✓ Call 67 invoked.
✓ Call 68 invoked.
✓ Call 69 invoked.
✓ Call 70 invoked.
✓ Call 71 invoked.
✓ Call 72 invoked.
✓ Call 73 invoked.
✓ Call 74 invoked.
✓ Call 75 invoked.
✓ Call 76 invoked.
✓ Call 77 invoked.
✓ Call 78 invoked.
✓ Call 79 invoked.
✓ Call 80 invoked.
✓ Call 81 invoked.
✓ Call 82 invoked.
✓ Call 83 invoked.
✓ Call 84 invoked.
✗ Call 85 not invoked.
✗ Call 86 not invoked.
✗ Call 87 not invoked.
✗ Call 88 not invoked.
✗ Call 89 not invoked.
✗ Call 90 not invoked.
✗ Call 91 not invoked.
✗ Call 92 not invoked.
✗ Call 93 not invoked.
✗ Call 94 not invoked.
✗ Call 95 not invoked.
✗ Call 96 not invoked.
✗ Call 97 not invoked.
✗ Call 98 not invoked.
✗ Call 99 not invoked.
✗ Call 100 not invoked.
✗ Call 101 not invoked.
✗ Call 102 not invoked.
|
1 |
LOG_UI_MESSAGE(QString("#%1: Post processing XML of the widget with class name \"%2\" and object name \"%3\" " |
| 52 |
|
|
|
|
"in the background.") |
| 53 |
|
|
|
|
.arg(id) |
| 54 |
|
|
|
|
.arg(widget->metaObject()->className()) |
| 55 |
|
|
|
|
.arg(widget->objectName())); |
| 56 |
|
|
|
|
|
| 57 |
1/2
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
|
2/2
✓ Call 0 invoked.
✓ Call 1 invoked.
|
1 |
QString extension = "xml"; |
| 58 |
1/2
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
|
2/2
✓ Call 0 invoked.
✓ Call 1 invoked.
|
1 |
QDomDocument doc; |
| 59 |
1/2
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
|
|
3/3
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
|
1 |
doc.setContent(buffer); |
| 60 |
2/4
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 times.
|
1/2
✗ Decision 'true' not taken.
✓ Decision 'false' taken 1 times.
|
9/9
✓ 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.
|
1 |
if (options_->getUICompatible()) { |
| 61 |
|
|
0/1
✗ Call 0 not invoked.
|
✗ |
extension = "ui"; |
| 62 |
|
|
0/1
✗ Call 0 not invoked.
|
✗ |
const auto isCustomClass = [](const QString& className) -> bool { |
| 63 |
|
|
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.
|
✗ |
return !className.startsWith("Q"); |
| 64 |
|
|
|
|
}; |
| 65 |
|
|
|
|
|
| 66 |
|
|
0/2
✗ Call 0 not invoked.
✗ Call 1 not invoked.
|
✗ |
const auto xml = doc.documentElement(); |
| 67 |
|
|
0/22
✗ Call 0 not invoked.
✗ Call 1 not invoked.
✗ Call 2 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.
✗ Call 28 not invoked.
✗ Call 29 not invoked.
|
✗ |
const auto customWidgets = xml.toElement().appendChild(doc.createElement("customwidgets")); |
| 68 |
|
|
|
|
|
| 69 |
|
|
0/2
✗ Call 0 not invoked.
✗ Call 1 not invoked.
|
✗ |
QStringList discoveredCustomWidgets; |
| 70 |
|
|
|
|
|
| 71 |
|
|
0/1
✗ Call 0 not invoked.
|
✗ |
static constexpr auto LOG_POST_PROCESSING = FMT_STRING("#{}: Post-processing {}."); |
| 72 |
|
|
|
|
static constexpr auto LOG_POST_PROCESSING_PROGRESS = "#%1: Post-processing %2 %3 / %4."; |
| 73 |
|
|
|
|
|
| 74 |
|
|
0/16
✗ 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 11 not invoked.
✗ Call 12 not invoked.
✗ Call 13 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.
|
✗ |
LOG_INFO(LOG_POST_PROCESSING, id.toStdString(), "XML widgets"); |
| 75 |
|
|
|
|
|
| 76 |
|
|
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.
|
✗ |
const auto widgetsXML = doc.elementsByTagName("widget"); |
| 77 |
|
0/1
? Decision couldn't be analyzed.
|
0/1
✗ Call 0 not invoked.
|
✗ |
for (int i = widgetsXML.count() - 1; i >= 0; i--) { |
| 78 |
|
|
0/89
✗ 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 17 not invoked.
✗ Call 18 not invoked.
✗ Call 19 not invoked.
✗ Call 20 not invoked.
✗ Call 21 not invoked.
✗ Call 22 not invoked.
✗ Call 25 not invoked.
✗ Call 26 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 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 52 not invoked.
✗ Call 55 not invoked.
✗ Call 56 not invoked.
✗ Call 59 not invoked.
✗ Call 60 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.
✗ 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.
✗ Call 84 not invoked.
✗ Call 85 not invoked.
✗ Call 86 not invoked.
✗ Call 87 not invoked.
✗ Call 88 not invoked.
✗ Call 89 not invoked.
✗ Call 90 not invoked.
✗ Call 91 not invoked.
✗ Call 92 not invoked.
✗ Call 93 not invoked.
✗ Call 94 not invoked.
✗ Call 95 not invoked.
✗ Call 96 not invoked.
✗ Call 97 not invoked.
✗ Call 98 not invoked.
✗ Call 99 not invoked.
✗ Call 100 not invoked.
✗ Call 101 not invoked.
✗ Call 102 not invoked.
✗ Call 103 not invoked.
✗ Call 104 not invoked.
✗ Call 105 not invoked.
✗ Call 106 not invoked.
✗ Call 107 not invoked.
✗ Call 108 not invoked.
✗ Call 109 not invoked.
✗ Call 110 not invoked.
|
✗ |
UI_MESSAGE(QString(LOG_POST_PROCESSING_PROGRESS) |
| 79 |
|
|
|
|
.arg(id) |
| 80 |
|
|
|
|
.arg("XML widgets") |
| 81 |
|
|
|
|
.arg(QString::number(widgetsXML.count() - i)) |
| 82 |
|
|
|
|
.arg(QString::number(widgetsXML.count()))); |
| 83 |
|
|
|
|
|
| 84 |
|
|
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 10 not invoked.
✗ Call 11 not invoked.
|
✗ |
const auto widgetElement = widgetsXML.at(i).toElement(); |
| 85 |
|
|
0/16
✗ 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 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.
|
✗ |
const auto className = widgetElement.attribute("class"); |
| 86 |
|
|
|
|
|
| 87 |
|
|
|
|
// Delete internal Qt classes |
| 88 |
|
|
|
|
static const QStringList CLASSES_TO_DELETE = { |
| 89 |
|
|
0/15
✗ Call 2 not invoked.
✗ Call 5 not invoked.
✗ Call 6 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 18 not invoked.
✗ Call 19 not invoked.
✗ Call 20 not invoked.
✗ Call 21 not invoked.
✗ Call 24 not invoked.
|
✗ |
"QHeaderView", "QTableCornerButton", "QComboBoxPrivateContainer"}; |
| 90 |
|
0/2
✗ Decision 'true' not taken.
✗ Decision 'false' not taken.
|
0/1
✗ Call 0 not invoked.
|
✗ |
if (CLASSES_TO_DELETE.contains(className)) { |
| 91 |
|
|
0/11
✗ 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 10 not invoked.
✗ Call 11 not invoked.
✗ Call 12 not invoked.
✗ Call 13 not invoked.
✗ Call 14 not invoked.
|
✗ |
widgetElement.parentNode().removeChild(widgetElement); |
| 92 |
|
|
|
✗ |
continue; |
| 93 |
|
|
|
|
} |
| 94 |
|
|
|
|
|
| 95 |
|
|
|
|
// Register custom widgets |
| 96 |
|
0/2
✗ Decision 'true' not taken.
✗ Decision 'false' not taken.
|
0/2
✗ Call 0 not invoked.
✗ Call 5 not invoked.
|
✗ |
if (isCustomClass(className) && !discoveredCustomWidgets.contains(className)) { |
| 97 |
|
|
|
|
// Looking for widget of custom CLO class |
| 98 |
|
|
0/3
✗ Call 0 not invoked.
✗ Call 1 not invoked.
✗ Call 2 not invoked.
|
✗ |
const QMetaObject* currentClass = classLookup[className]; |
| 99 |
|
|
|
|
do { |
| 100 |
|
|
0/38
✗ 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 15 not invoked.
✗ Call 16 not invoked.
✗ Call 17 not invoked.
✗ Call 18 not invoked.
✗ Call 19 not invoked.
✗ Call 22 not invoked.
✗ Call 23 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.
✗ 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.
|
✗ |
LOG_UI_MESSAGE(QString("#%1: Register custom widget of class \"%2\".").arg(id).arg(className)); |
| 101 |
|
|
|
|
|
| 102 |
|
|
0/1
✗ Call 0 not invoked.
|
✗ |
discoveredCustomWidgets.append(className); |
| 103 |
|
|
|
|
|
| 104 |
|
|
0/21
✗ 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.
✗ Call 16 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.
✗ Call 28 not invoked.
|
✗ |
QStringList classNameList = QString(currentClass->className()).split("::"); |
| 105 |
|
|
0/2
✗ Call 0 not invoked.
✗ Call 1 not invoked.
|
✗ |
QStringList locations; |
| 106 |
|
0/2
✗ Decision 'true' not taken.
✗ Decision 'false' not taken.
|
0/1
✗ Call 0 not invoked.
|
✗ |
for (int j = 0; j < classNameList.count() - 1; j++) { |
| 107 |
|
|
0/2
✗ Call 0 not invoked.
✗ Call 1 not invoked.
|
✗ |
QString location; |
| 108 |
|
0/1
? Decision couldn't be analyzed.
|
0/3
✗ Call 0 not invoked.
✗ Call 3 not invoked.
✗ Call 4 not invoked.
|
✗ |
for (int k = 0; k < classNameList[j].length(); k++) { |
| 109 |
|
0/2
✗ Decision 'true' not taken.
✗ Decision 'false' not taken.
|
0/8
✗ 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 18 not invoked.
✗ Call 23 not invoked.
|
✗ |
if (k > 0 && classNameList[j][k].isUpper() && |
| 110 |
|
|
0/11
✗ 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 14 not invoked.
✗ Call 17 not invoked.
✗ Call 18 not invoked.
✗ Call 23 not invoked.
✗ Call 26 not invoked.
|
✗ |
(classNameList[j][k - 1].isLower() || k == classNameList[j].length() - 1 || |
| 111 |
|
|
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 16 not invoked.
✗ Call 19 not invoked.
|
✗ |
classNameList[j][k + 1].isLower())) { |
| 112 |
|
|
0/11
✗ Call 0 not invoked.
✗ Call 3 not invoked.
✗ Call 4 not invoked.
✗ Call 5 not invoked.
✗ Call 8 not invoked.
✗ Call 9 not invoked.
✗ Call 12 not invoked.
✗ Call 13 not invoked.
✗ Call 16 not invoked.
✗ Call 19 not invoked.
✗ Call 20 not invoked.
|
✗ |
location.append("-").append(classNameList[j][k].toLower()); |
| 113 |
|
|
|
|
} |
| 114 |
|
|
0/9
✗ 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 12 not invoked.
✗ Call 15 not invoked.
✗ Call 16 not invoked.
|
✗ |
else location.append(classNameList[j][k].toLower()); |
| 115 |
|
|
|
|
} |
| 116 |
|
|
0/1
✗ Call 0 not invoked.
|
✗ |
locations.append(location); |
| 117 |
|
|
0/2
✗ Call 0 not invoked.
✗ Call 1 not invoked.
|
✗ |
} |
| 118 |
|
|
0/3
✗ Call 0 not invoked.
✗ Call 3 not invoked.
✗ Call 4 not invoked.
|
✗ |
locations.append(classNameList.last()); |
| 119 |
|
|
|
|
|
| 120 |
|
|
0/1
✗ Call 0 not invoked.
|
✗ |
auto customWidget = |
| 121 |
|
|
0/27
✗ Call 0 not invoked.
✗ Call 1 not invoked.
✗ Call 2 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 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.
✗ Call 33 not invoked.
✗ Call 34 not invoked.
✗ Call 35 not invoked.
✗ Call 36 not invoked.
|
✗ |
customWidgets.toElement().appendChild(doc.createElement("customwidget")).toElement(); |
| 122 |
|
|
|
|
|
| 123 |
|
|
0/19
✗ 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.
✗ Call 21 not invoked.
✗ Call 22 not invoked.
✗ Call 23 not invoked.
✗ Call 24 not invoked.
|
✗ |
customWidget.appendChild(doc.createElement("class")) |
| 124 |
|
|
0/6
✗ Call 0 not invoked.
✗ Call 1 not invoked.
✗ Call 4 not invoked.
✗ Call 5 not invoked.
✗ Call 6 not invoked.
✗ Call 7 not invoked.
|
✗ |
.toElement() |
| 125 |
|
|
0/22
✗ 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 11 not invoked.
✗ Call 12 not invoked.
✗ Call 15 not invoked.
✗ Call 16 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.
✗ Call 28 not invoked.
✗ Call 29 not invoked.
|
✗ |
.appendChild(doc.createTextNode(currentClass->className())); |
| 126 |
|
|
|
|
|
| 127 |
|
|
0/19
✗ 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.
✗ Call 21 not invoked.
✗ Call 22 not invoked.
✗ Call 23 not invoked.
✗ Call 24 not invoked.
|
✗ |
customWidget.appendChild(doc.createElement("extends")) |
| 128 |
|
|
0/6
✗ Call 0 not invoked.
✗ Call 1 not invoked.
✗ Call 4 not invoked.
✗ Call 5 not invoked.
✗ Call 6 not invoked.
✗ Call 7 not invoked.
|
✗ |
.toElement() |
| 129 |
|
|
0/24
✗ 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 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.
|
✗ |
.appendChild(doc.createTextNode(currentClass->superClass()->className())); |
| 130 |
|
|
|
|
|
| 131 |
|
|
0/19
✗ 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.
✗ Call 21 not invoked.
✗ Call 22 not invoked.
✗ Call 23 not invoked.
✗ Call 24 not invoked.
|
✗ |
customWidget.appendChild(doc.createElement("header")) |
| 132 |
|
|
0/6
✗ Call 0 not invoked.
✗ Call 1 not invoked.
✗ Call 4 not invoked.
✗ Call 5 not invoked.
✗ Call 6 not invoked.
✗ Call 7 not invoked.
|
✗ |
.toElement() |
| 133 |
|
|
0/29
✗ 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 12 not invoked.
✗ Call 13 not invoked.
✗ Call 16 not invoked.
✗ Call 17 not invoked.
✗ Call 20 not invoked.
✗ Call 21 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.
✗ Call 37 not invoked.
✗ Call 38 not invoked.
|
✗ |
.appendChild(doc.createTextNode(locations.join("/").append(".h"))); |
| 134 |
|
|
|
|
|
| 135 |
|
|
0/2
✗ Call 0 not invoked.
✗ Call 1 not invoked.
|
✗ |
currentClass = currentClass->superClass(); |
| 136 |
|
|
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.
|
✗ |
} |
| 137 |
|
0/1
? Decision couldn't be analyzed.
|
0/10
✗ 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.
✗ Call 16 not invoked.
✗ Call 17 not invoked.
|
✗ |
while (isCustomClass(currentClass->className())); |
| 138 |
|
|
|
|
} |
| 139 |
|
|
0/4
✗ Call 0 not invoked.
✗ Call 3 not invoked.
✗ Call 6 not invoked.
✗ Call 7 not invoked.
|
✗ |
} |
| 140 |
|
|
|
|
|
| 141 |
|
|
0/16
✗ 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 11 not invoked.
✗ Call 12 not invoked.
✗ Call 13 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.
|
✗ |
LOG_INFO(LOG_POST_PROCESSING, id.toStdString(), "layouts"); |
| 142 |
|
|
|
|
|
| 143 |
|
|
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.
|
✗ |
const auto layouts = doc.elementsByTagName("layout"); |
| 144 |
|
0/1
? Decision couldn't be analyzed.
|
0/1
✗ Call 0 not invoked.
|
✗ |
for (int i = layouts.count() - 1; i >= 0; i--) { |
| 145 |
|
|
0/89
✗ 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 17 not invoked.
✗ Call 18 not invoked.
✗ Call 19 not invoked.
✗ Call 20 not invoked.
✗ Call 21 not invoked.
✗ Call 22 not invoked.
✗ Call 25 not invoked.
✗ Call 26 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 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 52 not invoked.
✗ Call 55 not invoked.
✗ Call 56 not invoked.
✗ Call 59 not invoked.
✗ Call 60 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.
✗ 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.
✗ Call 84 not invoked.
✗ Call 85 not invoked.
✗ Call 86 not invoked.
✗ Call 87 not invoked.
✗ Call 88 not invoked.
✗ Call 89 not invoked.
✗ Call 90 not invoked.
✗ Call 91 not invoked.
✗ Call 92 not invoked.
✗ Call 93 not invoked.
✗ Call 94 not invoked.
✗ Call 95 not invoked.
✗ Call 96 not invoked.
✗ Call 97 not invoked.
✗ Call 98 not invoked.
✗ Call 99 not invoked.
✗ Call 100 not invoked.
✗ Call 101 not invoked.
✗ Call 102 not invoked.
✗ Call 103 not invoked.
✗ Call 104 not invoked.
✗ Call 105 not invoked.
✗ Call 106 not invoked.
✗ Call 107 not invoked.
✗ Call 108 not invoked.
✗ Call 109 not invoked.
✗ Call 110 not invoked.
|
✗ |
UI_MESSAGE(QString(LOG_POST_PROCESSING_PROGRESS) |
| 146 |
|
|
|
|
.arg(id) |
| 147 |
|
|
|
|
.arg("layouts") |
| 148 |
|
|
|
|
.arg(QString::number(layouts.count() - i)) |
| 149 |
|
|
|
|
.arg(QString::number(layouts.count()))); |
| 150 |
|
|
|
|
|
| 151 |
|
|
0/15
✗ Call 2 not invoked.
✗ Call 5 not invoked.
✗ Call 6 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 18 not invoked.
✗ Call 19 not invoked.
✗ Call 20 not invoked.
✗ Call 21 not invoked.
✗ Call 24 not invoked.
|
✗ |
static const QStringList LAYOUTS_TO_TRANSFORM = {"QDockWidgetLayout", "QStackedLayout"}; |
| 152 |
|
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 (const auto layoutElement = layouts.at(i).toElement(); |
| 153 |
|
|
0/22
✗ 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 12 not invoked.
✗ Call 13 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.
✗ Call 25 not invoked.
✗ Call 26 not invoked.
✗ Call 27 not invoked.
|
✗ |
LAYOUTS_TO_TRANSFORM.contains(layoutElement.attribute("class"))) { |
| 154 |
|
|
|
|
// Transform Qt internal layouts |
| 155 |
|
|
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.
|
✗ |
const auto items = layoutElement.elementsByTagName("item"); |
| 156 |
|
0/1
? Decision couldn't be analyzed.
|
0/1
✗ Call 0 not invoked.
|
✗ |
while (!items.isEmpty()) { |
| 157 |
|
|
|
|
// Move widgets from private QStackedLayout into QStackedWidget |
| 158 |
|
|
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 10 not invoked.
✗ Call 11 not invoked.
|
✗ |
const auto item = items.at(0).toElement(); |
| 159 |
|
|
0/31
✗ 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 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.
✗ 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.
|
✗ |
item.parentNode().parentNode().appendChild(item.firstChildElement()); |
| 160 |
|
|
0/11
✗ 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 10 not invoked.
✗ Call 11 not invoked.
✗ Call 12 not invoked.
✗ Call 13 not invoked.
✗ Call 14 not invoked.
|
✗ |
item.parentNode().removeChild(item); |
| 161 |
|
|
0/2
✗ Call 0 not invoked.
✗ Call 1 not invoked.
|
✗ |
} |
| 162 |
|
|
|
|
// Delete internal layout |
| 163 |
|
|
0/11
✗ 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 10 not invoked.
✗ Call 11 not invoked.
✗ Call 12 not invoked.
✗ Call 13 not invoked.
✗ Call 14 not invoked.
|
✗ |
layoutElement.parentNode().removeChild(layoutElement); |
| 164 |
|
|
0/4
✗ Call 0 not invoked.
✗ Call 1 not invoked.
✗ Call 2 not invoked.
✗ Call 3 not invoked.
|
✗ |
} |
| 165 |
|
|
|
|
} |
| 166 |
|
|
|
|
|
| 167 |
|
|
0/16
✗ 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 11 not invoked.
✗ Call 12 not invoked.
✗ Call 13 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.
|
✗ |
LOG_INFO(LOG_POST_PROCESSING, id.toStdString(), "properties"); |
| 168 |
|
|
|
|
|
| 169 |
|
|
0/2
✗ Call 0 not invoked.
✗ Call 1 not invoked.
|
✗ |
QSet<QString> resources; |
| 170 |
|
|
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.
|
✗ |
const auto properties = doc.elementsByTagName("property"); |
| 171 |
|
0/1
? Decision couldn't be analyzed.
|
0/1
✗ Call 0 not invoked.
|
✗ |
for (int i = properties.count() - 1; i >= 0; i--) { |
| 172 |
|
|
0/89
✗ 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 17 not invoked.
✗ Call 18 not invoked.
✗ Call 19 not invoked.
✗ Call 20 not invoked.
✗ Call 21 not invoked.
✗ Call 22 not invoked.
✗ Call 25 not invoked.
✗ Call 26 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 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 52 not invoked.
✗ Call 55 not invoked.
✗ Call 56 not invoked.
✗ Call 59 not invoked.
✗ Call 60 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.
✗ 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.
✗ Call 84 not invoked.
✗ Call 85 not invoked.
✗ Call 86 not invoked.
✗ Call 87 not invoked.
✗ Call 88 not invoked.
✗ Call 89 not invoked.
✗ Call 90 not invoked.
✗ Call 91 not invoked.
✗ Call 92 not invoked.
✗ Call 93 not invoked.
✗ Call 94 not invoked.
✗ Call 95 not invoked.
✗ Call 96 not invoked.
✗ Call 97 not invoked.
✗ Call 98 not invoked.
✗ Call 99 not invoked.
✗ Call 100 not invoked.
✗ Call 101 not invoked.
✗ Call 102 not invoked.
✗ Call 103 not invoked.
✗ Call 104 not invoked.
✗ Call 105 not invoked.
✗ Call 106 not invoked.
✗ Call 107 not invoked.
✗ Call 108 not invoked.
✗ Call 109 not invoked.
✗ Call 110 not invoked.
|
✗ |
UI_MESSAGE(QString(LOG_POST_PROCESSING_PROGRESS) |
| 173 |
|
|
|
|
.arg(id) |
| 174 |
|
|
|
|
.arg("properties") |
| 175 |
|
|
|
|
.arg(QString::number(properties.count() - i)) |
| 176 |
|
|
|
|
.arg(QString::number(properties.count()))); |
| 177 |
|
|
|
|
|
| 178 |
|
|
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 10 not invoked.
✗ Call 11 not invoked.
|
✗ |
const auto property = properties.at(i).toElement(); |
| 179 |
|
|
|
|
|
| 180 |
|
|
|
|
// Find resources |
| 181 |
|
0/2
✗ Decision 'true' not taken.
✗ Decision 'false' not taken.
|
0/9
✗ 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.
|
✗ |
if (options_->getExportIcons() && |
| 182 |
|
|
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 11 not invoked.
✗ Call 12 not invoked.
✗ Call 15 not invoked.
✗ Call 16 not invoked.
✗ Call 23 not invoked.
✗ Call 26 not invoked.
✗ Call 29 not invoked.
✗ Call 32 not invoked.
✗ Call 35 not invoked.
✗ Call 38 not invoked.
✗ Call 41 not invoked.
✗ Call 44 not invoked.
✗ Call 47 not invoked.
✗ Call 50 not invoked.
✗ Call 51 not invoked.
✗ Call 52 not invoked.
✗ Call 55 not invoked.
✗ Call 58 not invoked.
✗ Call 61 not invoked.
✗ Call 64 not invoked.
✗ Call 67 not invoked.
✗ Call 70 not invoked.
✗ Call 73 not invoked.
✗ Call 76 not invoked.
✗ Call 79 not invoked.
✗ Call 82 not invoked.
✗ Call 85 not invoked.
✗ Call 86 not invoked.
✗ Call 87 not invoked.
✗ Call 90 not invoked.
|
✗ |
QStringList({"styleSheet", "text"}).contains(property.attribute("name"))) { |
| 183 |
|
|
0/30
✗ 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 12 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.
✗ Call 34 not invoked.
✗ Call 35 not invoked.
✗ Call 36 not invoked.
✗ Call 37 not invoked.
|
✗ |
auto it = QRegularExpression(R"((:/[^"')<>]+\.svg))").globalMatch(property.text()); |
| 184 |
|
0/1
? Decision couldn't be analyzed.
|
0/1
✗ Call 0 not invoked.
|
✗ |
while (it.hasNext()) { |
| 185 |
|
|
0/14
✗ 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.
✗ Call 14 not invoked.
✗ Call 15 not invoked.
✗ Call 16 not invoked.
✗ Call 17 not invoked.
✗ Call 18 not invoked.
✗ Call 19 not invoked.
|
✗ |
resources << it.next().captured(1); |
| 186 |
|
|
|
|
} |
| 187 |
|
|
0/2
✗ Call 0 not invoked.
✗ Call 1 not invoked.
|
✗ |
} |
| 188 |
|
|
|
|
|
| 189 |
|
0/2
✗ Decision 'true' not taken.
✗ Decision 'false' not taken.
|
0/22
✗ 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 12 not invoked.
✗ Call 13 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 24 not invoked.
✗ Call 25 not invoked.
✗ Call 26 not invoked.
✗ Call 27 not invoked.
✗ Call 28 not invoked.
✗ Call 29 not invoked.
|
✗ |
if (property.attribute("name") == "objectName") { |
| 190 |
|
|
0/15
✗ 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 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.
|
✗ |
const auto value = property.firstChildElement().text(); |
| 191 |
|
|
|
|
|
| 192 |
|
|
|
|
static const QStringList OBJECTS_TO_DELETE = { |
| 193 |
|
|
0/15
✗ Call 2 not invoked.
✗ Call 5 not invoked.
✗ Call 6 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 18 not invoked.
✗ Call 19 not invoked.
✗ Call 20 not invoked.
✗ Call 21 not invoked.
✗ Call 24 not invoked.
|
✗ |
"qt_scrollarea_vcontainer", "qt_scrollarea_hcontainer"}; |
| 194 |
|
0/2
✗ Decision 'true' not taken.
✗ Decision 'false' not taken.
|
0/1
✗ Call 0 not invoked.
|
✗ |
if (OBJECTS_TO_DELETE.contains(value)) { |
| 195 |
|
|
|
|
// Delete internal Qt widgets by object name |
| 196 |
|
|
0/24
✗ 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 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.
✗ 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.
|
✗ |
property.parentNode().parentNode().removeChild(property.parentNode()); |
| 197 |
|
|
|
✗ |
continue; |
| 198 |
|
|
|
|
} |
| 199 |
|
|
|
|
|
| 200 |
|
0/2
✗ Decision 'true' not taken.
✗ Decision 'false' not taken.
|
0/1
✗ Call 0 not invoked.
|
✗ |
if (value == "qt_scrollarea_viewport") { |
| 201 |
|
|
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 10 not invoked.
✗ Call 11 not invoked.
|
✗ |
const auto childNodes = property.parentNode().childNodes(); |
| 202 |
|
0/1
? Decision couldn't be analyzed.
|
0/1
✗ Call 0 not invoked.
|
✗ |
for (int j = 0; j < childNodes.count(); j++) { |
| 203 |
|
0/2
✗ Decision 'true' not taken.
✗ Decision 'false' not taken.
|
0/37
✗ 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 9 not invoked.
✗ Call 12 not invoked.
✗ Call 15 not invoked.
✗ Call 16 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 29 not invoked.
✗ Call 30 not invoked.
✗ Call 31 not invoked.
✗ Call 32 not invoked.
✗ Call 33 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 46 not invoked.
✗ Call 47 not invoked.
✗ Call 48 not invoked.
✗ Call 49 not invoked.
✗ Call 50 not invoked.
|
✗ |
if (QStringList({"widget", "layout"}).contains(childNodes.at(j).toElement().tagName())) { |
| 204 |
|
|
0/24
✗ 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 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.
✗ 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.
|
✗ |
property.parentNode().parentNode().appendChild(childNodes.at(j)); |
| 205 |
|
|
|
|
} |
| 206 |
|
|
|
|
} |
| 207 |
|
|
0/24
✗ 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 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.
✗ 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.
|
✗ |
property.parentNode().parentNode().removeChild(property.parentNode()); |
| 208 |
|
|
0/2
✗ Call 0 not invoked.
✗ Call 1 not invoked.
|
✗ |
} |
| 209 |
|
|
0/2
✗ Call 0 not invoked.
✗ Call 3 not invoked.
|
✗ |
} |
| 210 |
|
|
|
|
|
| 211 |
|
|
|
|
// Delete empty properties |
| 212 |
|
0/2
✗ Decision 'true' not taken.
✗ Decision 'false' not taken.
|
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 12 not invoked.
✗ Call 13 not invoked.
|
✗ |
if (property.childNodes().length() != 1) continue; |
| 213 |
|
|
|
|
|
| 214 |
|
0/2
✗ Decision 'true' not taken.
✗ Decision 'false' not taken.
|
0/20
✗ 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 16 not invoked.
✗ Call 19 not invoked.
✗ Call 22 not invoked.
✗ Call 25 not invoked.
✗ Call 28 not invoked.
✗ Call 31 not invoked.
✗ Call 36 not invoked.
✗ Call 39 not invoked.
✗ Call 42 not invoked.
✗ Call 45 not invoked.
✗ Call 48 not invoked.
✗ Call 51 not invoked.
|
✗ |
if ((property.firstChildElement().attributes().isEmpty() || |
| 215 |
|
|
0/21
✗ 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 11 not invoked.
✗ Call 12 not invoked.
✗ Call 19 not invoked.
✗ Call 22 not invoked.
✗ Call 25 not invoked.
✗ Call 28 not invoked.
✗ Call 31 not invoked.
✗ Call 34 not invoked.
✗ Call 37 not invoked.
✗ Call 40 not invoked.
✗ Call 43 not invoked.
✗ Call 46 not invoked.
✗ Call 49 not invoked.
✗ Call 52 not invoked.
|
✗ |
property.firstChildElement().attributes().length() == 1 && |
| 216 |
|
|
0/23
✗ Call 0 not invoked.
✗ Call 3 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 12 not invoked.
✗ Call 15 not invoked.
✗ Call 16 not invoked.
✗ Call 23 not invoked.
✗ Call 26 not invoked.
✗ Call 29 not invoked.
✗ Call 32 not invoked.
✗ Call 35 not invoked.
✗ Call 38 not invoked.
✗ Call 41 not invoked.
✗ Call 44 not invoked.
✗ Call 47 not invoked.
✗ Call 50 not invoked.
✗ Call 53 not invoked.
✗ Call 56 not invoked.
|
✗ |
property.firstChildElement().hasAttribute("notr")) && |
| 217 |
|
|
0/21
✗ 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 11 not invoked.
✗ Call 12 not invoked.
✗ Call 19 not invoked.
✗ Call 22 not invoked.
✗ Call 25 not invoked.
✗ Call 28 not invoked.
✗ Call 31 not invoked.
✗ Call 34 not invoked.
✗ Call 37 not invoked.
✗ Call 40 not invoked.
✗ Call 43 not invoked.
✗ Call 46 not invoked.
✗ Call 49 not invoked.
✗ Call 52 not invoked.
|
✗ |
property.firstChildElement().childNodes().isEmpty()) { |
| 218 |
|
|
0/11
✗ 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 10 not invoked.
✗ Call 11 not invoked.
✗ Call 12 not invoked.
✗ Call 13 not invoked.
✗ Call 14 not invoked.
|
✗ |
property.parentNode().removeChild(property); |
| 219 |
|
|
|
|
} |
| 220 |
|
|
0/2
✗ Call 0 not invoked.
✗ Call 3 not invoked.
|
✗ |
} |
| 221 |
|
|
|
|
|
| 222 |
|
0/2
✗ Decision 'true' not taken.
✗ Decision 'false' not taken.
|
0/9
✗ 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.
|
✗ |
if (options_->getExportIcons()) { |
| 223 |
|
|
|
|
|
| 224 |
|
|
0/1
✗ Call 0 not invoked.
|
✗ |
static constexpr auto LOG_EXPORTING_RESOURCES = FMT_STRING("#{}: Exporting resources."); |
| 225 |
|
|
|
|
static constexpr auto LOG_EXPORTING_RESOURCES_PROGRESS = "#%1: Exporting resources %2 / %3."; |
| 226 |
|
|
|
|
|
| 227 |
|
|
0/16
✗ 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 11 not invoked.
✗ Call 12 not invoked.
✗ Call 13 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.
|
✗ |
LOG_INFO(LOG_EXPORTING_RESOURCES, id.toStdString()); |
| 228 |
|
|
|
|
|
| 229 |
|
|
0/5
✗ Call 2 not invoked.
✗ Call 5 not invoked.
✗ Call 8 not invoked.
✗ Call 9 not invoked.
✗ Call 12 not invoked.
|
✗ |
static const QString RESOURCES_FOLDER_NAME = "resources"; |
| 230 |
|
|
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.
|
✗ |
auto resourcesDirectory = options_->getRootFolder(); |
| 231 |
|
|
|
|
|
| 232 |
|
0/2
✗ Decision 'true' not taken.
✗ Decision 'false' not taken.
|
0/1
✗ Call 0 not invoked.
|
✗ |
if (resourcesDirectory.mkdir(RESOURCES_FOLDER_NAME)) { |
| 233 |
|
|
0/27
✗ 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 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.
|
✗ |
LOG_INFO(Logging::Message::LOG_FOLDER_WAS_CREATED_IN_DIRECTORY, |
| 234 |
|
|
|
|
RESOURCES_FOLDER_NAME.toStdString(), |
| 235 |
|
|
|
|
resourcesDirectory.path().toStdString()); |
| 236 |
|
|
|
|
} |
| 237 |
|
|
0/1
✗ Call 0 not invoked.
|
✗ |
resourcesDirectory.cd(RESOURCES_FOLDER_NAME); |
| 238 |
|
|
|
|
|
| 239 |
|
|
|
✗ |
int i = 1; |
| 240 |
|
0/1
? Decision couldn't be analyzed.
|
0/9
✗ 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 12 not invoked.
✗ Call 13 not invoked.
✗ Call 16 not invoked.
|
✗ |
for (auto resource: resources) { |
| 241 |
|
|
0/67
✗ 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 13 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 24 not invoked.
✗ Call 25 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 36 not invoked.
✗ Call 39 not invoked.
✗ Call 40 not invoked.
✗ Call 43 not invoked.
✗ Call 44 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.
✗ 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.
|
✗ |
UI_MESSAGE(QString(LOG_EXPORTING_RESOURCES_PROGRESS) |
| 242 |
|
|
|
|
.arg(id) |
| 243 |
|
|
|
|
.arg(QString::number(i)) |
| 244 |
|
|
|
|
.arg(QString::number(resources.count()))); |
| 245 |
|
|
|
|
|
| 246 |
|
0/2
✗ Decision 'true' not taken.
✗ Decision 'false' not taken.
|
0/8
✗ 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.
|
✗ |
if (QFile in(resource); in.open(QIODevice::ReadOnly)) { |
| 247 |
|
|
0/1
✗ Call 0 not invoked.
|
✗ |
QString fullPath = |
| 248 |
|
|
0/17
✗ 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 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.
|
✗ |
resourcesDirectory.filePath(resourcesDirectory.filePath(resource.remove(":/"))); |
| 249 |
|
0/2
✗ Decision 'true' not taken.
✗ Decision 'false' not taken.
|
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 8 not invoked.
✗ Call 11 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 28 not invoked.
✗ Call 29 not invoked.
✗ Call 30 not invoked.
✗ Call 31 not invoked.
✗ Call 32 not invoked.
✗ Call 33 not invoked.
|
✗ |
if (QFileInfo info(fullPath); !QDir().mkpath(info.path())) { |
| 250 |
|
|
0/14
✗ Call 0 not invoked.
✗ Call 1 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 14 not invoked.
✗ Call 15 not invoked.
✗ Call 16 not invoked.
✗ Call 17 not invoked.
✗ Call 18 not invoked.
✗ Call 19 not invoked.
|
✗ |
LOG_ERROR(Logging::Message::LOG_FAILED_TO_CREATE_PATH, fullPath.toStdString()); |
| 251 |
|
|
|
✗ |
continue; |
| 252 |
|
|
0/2
✗ Call 0 not invoked.
✗ Call 3 not invoked.
|
✗ |
} |
| 253 |
|
0/2
✗ Decision 'true' not taken.
✗ Decision 'false' not taken.
|
0/8
✗ 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.
|
✗ |
if (QFile out(fullPath); out.open(QIODevice::WriteOnly)) { |
| 254 |
|
|
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.
|
✗ |
out.write(in.readAll()); |
| 255 |
|
|
|
|
} |
| 256 |
|
|
|
|
else { |
| 257 |
|
|
0/14
✗ Call 0 not invoked.
✗ Call 1 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 14 not invoked.
✗ Call 15 not invoked.
✗ Call 16 not invoked.
✗ Call 17 not invoked.
✗ Call 18 not invoked.
✗ Call 19 not invoked.
|
✗ |
LOG_ERROR(Logging::Message::LOG_FAILED_TO_OPEN_FILE, fullPath.toStdString()); |
| 258 |
|
|
|
✗ |
continue; |
| 259 |
|
|
0/4
✗ Call 0 not invoked.
✗ Call 1 not invoked.
✗ Call 4 not invoked.
✗ Call 5 not invoked.
|
✗ |
} |
| 260 |
|
|
0/2
✗ Call 0 not invoked.
✗ Call 3 not invoked.
|
✗ |
} |
| 261 |
|
|
|
|
else { |
| 262 |
|
|
0/14
✗ Call 0 not invoked.
✗ Call 1 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 14 not invoked.
✗ Call 15 not invoked.
✗ Call 16 not invoked.
✗ Call 17 not invoked.
✗ Call 18 not invoked.
✗ Call 19 not invoked.
|
✗ |
LOG_ERROR(Logging::Message::LOG_FAILED_TO_OPEN_FILE, resource.toStdString()); |
| 263 |
|
|
|
✗ |
continue; |
| 264 |
|
|
0/4
✗ Call 0 not invoked.
✗ Call 1 not invoked.
✗ Call 4 not invoked.
✗ Call 5 not invoked.
|
✗ |
} |
| 265 |
|
|
|
✗ |
i++; |
| 266 |
|
|
0/2
✗ Call 0 not invoked.
✗ Call 3 not invoked.
|
✗ |
} |
| 267 |
|
|
0/2
✗ Call 0 not invoked.
✗ Call 1 not invoked.
|
✗ |
} |
| 268 |
|
|
0/14
✗ 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 12 not invoked.
✗ Call 13 not invoked.
|
✗ |
} |
| 269 |
|
|
|
|
|
| 270 |
2/4
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 times.
|
1/2
✗ Decision 'true' not taken.
✓ Decision 'false' taken 1 times.
|
9/9
✓ 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.
|
1 |
if (options_->getExportIcons()) { |
| 271 |
|
|
0/13
✗ 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 11 not invoked.
✗ Call 12 not invoked.
✗ Call 15 not invoked.
✗ Call 16 not invoked.
✗ Call 17 not invoked.
✗ Call 18 not invoked.
|
✗ |
LOG_INFO("#{}: Exporting tool buttons.", id.toStdString()); |
| 272 |
|
|
|
|
|
| 273 |
|
|
0/16
✗ 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 15 not invoked.
✗ Call 16 not invoked.
✗ Call 17 not invoked.
|
✗ |
QList<QToolButton*> buttons = widget->findChildren<QToolButton*>(); |
| 274 |
|
|
|
|
|
| 275 |
|
|
0/5
✗ Call 2 not invoked.
✗ Call 5 not invoked.
✗ Call 8 not invoked.
✗ Call 9 not invoked.
✗ Call 12 not invoked.
|
✗ |
static QString ICONS_FOLDER_NAME = "icons"; |
| 276 |
|
|
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.
|
✗ |
QDir iconsDirectory = options_->getRootFolder(); |
| 277 |
|
0/2
✗ Decision 'true' not taken.
✗ Decision 'false' not taken.
|
0/1
✗ Call 0 not invoked.
|
✗ |
if (iconsDirectory.mkdir(ICONS_FOLDER_NAME)) { |
| 278 |
|
|
0/39
✗ 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 11 not invoked.
✗ Call 12 not invoked.
✗ Call 13 not invoked.
✗ Call 14 not invoked.
✗ Call 17 not invoked.
✗ Call 20 not invoked.
✗ Call 23 not invoked.
✗ Call 24 not invoked.
✗ Call 25 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.
✗ Call 49 not invoked.
✗ Call 50 not invoked.
|
✗ |
LOG_INFO(Logging::Message::LOG_FOLDER_WAS_CREATED_IN_DIRECTORY, |
| 279 |
|
|
|
|
ICONS_FOLDER_NAME.toStdString(), |
| 280 |
|
|
|
|
options_->getRootFolder().path().toStdString()); |
| 281 |
|
|
|
|
} |
| 282 |
|
|
0/1
✗ Call 0 not invoked.
|
✗ |
iconsDirectory.cd(ICONS_FOLDER_NAME); |
| 283 |
|
|
|
|
|
| 284 |
|
|
|
✗ |
int counter = 0; |
| 285 |
|
|
0/2
✗ Call 0 not invoked.
✗ Call 1 not invoked.
|
✗ |
QSet<QByteArray> seenHashes; |
| 286 |
|
0/1
? Decision couldn't be analyzed.
|
0/8
✗ Call 0 not invoked.
✗ Call 1 not invoked.
✗ Call 4 not invoked.
✗ Call 5 not invoked.
✗ Call 8 not invoked.
✗ Call 11 not invoked.
✗ Call 12 not invoked.
✗ Call 13 not invoked.
|
✗ |
for (QToolButton* btn: buttons) { |
| 287 |
|
|
0/3
✗ Call 0 not invoked.
✗ Call 1 not invoked.
✗ Call 2 not invoked.
|
✗ |
QIcon icon = btn->icon(); |
| 288 |
|
|
|
|
|
| 289 |
|
|
|
|
static constexpr auto LOG_NO_IMAGE_FOR_ICON = "#%1: There is no image for icon. Skipping %2 / %3."; |
| 290 |
|
|
|
|
static constexpr auto LOG_DUPLICATED_ICON = "#%1: Duplicate detected for icon. Skipping %2 / %3."; |
| 291 |
|
|
|
|
static constexpr auto LOG_ICON_PROGRESS = "#%1: Exporting icon %2 / %3."; |
| 292 |
|
|
|
|
|
| 293 |
|
0/2
✗ Decision 'true' not taken.
✗ Decision 'false' not taken.
|
0/1
✗ Call 0 not invoked.
|
✗ |
if (icon.isNull()) { |
| 294 |
|
|
0/67
✗ 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 13 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 24 not invoked.
✗ Call 25 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 37 not invoked.
✗ Call 38 not invoked.
✗ Call 41 not invoked.
✗ Call 42 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.
✗ 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.
|
✗ |
UI_MESSAGE(QString(LOG_NO_IMAGE_FOR_ICON) |
| 295 |
|
|
|
|
.arg(id) |
| 296 |
|
|
|
|
.arg(QString::number(counter)) |
| 297 |
|
|
|
|
.arg(QString::number(buttons.count()))); |
| 298 |
|
|
|
✗ |
continue; |
| 299 |
|
|
|
|
} |
| 300 |
|
|
|
|
|
| 301 |
|
|
0/17
✗ 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 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 20 not invoked.
✗ Call 21 not invoked.
✗ Call 22 not invoked.
|
✗ |
QSize size = btn->iconSize().isValid() ? btn->iconSize() : QSize(32, 32); |
| 302 |
|
|
0/2
✗ Call 0 not invoked.
✗ Call 1 not invoked.
|
✗ |
QPixmap pixmap = icon.pixmap(size); |
| 303 |
|
0/2
✗ Decision 'true' not taken.
✗ Decision 'false' not taken.
|
0/2
✗ Call 0 not invoked.
✗ Call 1 not invoked.
|
✗ |
if (pixmap.isNull()) { |
| 304 |
|
|
0/67
✗ 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 13 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 24 not invoked.
✗ Call 25 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 37 not invoked.
✗ Call 38 not invoked.
✗ Call 41 not invoked.
✗ Call 42 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.
✗ 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.
|
✗ |
UI_MESSAGE(QString(LOG_NO_IMAGE_FOR_ICON) |
| 305 |
|
|
|
|
.arg(id) |
| 306 |
|
|
|
|
.arg(QString::number(counter)) |
| 307 |
|
|
|
|
.arg(QString::number(buttons.count()))); |
| 308 |
|
|
|
✗ |
continue; |
| 309 |
|
|
|
|
} |
| 310 |
|
|
|
|
|
| 311 |
|
|
0/2
✗ Call 0 not invoked.
✗ Call 1 not invoked.
|
✗ |
QImage image = pixmap.toImage(); |
| 312 |
|
|
|
|
|
| 313 |
|
|
0/1
✗ Call 0 not invoked.
|
✗ |
QByteArray bytes( |
| 314 |
|
|
0/5
✗ Call 0 not invoked.
✗ Call 1 not invoked.
✗ Call 4 not invoked.
✗ Call 5 not invoked.
✗ Call 8 not invoked.
|
✗ |
reinterpret_cast<const char*>(image.constBits()), static_cast<int>(image.sizeInBytes())); |
| 315 |
|
|
0/2
✗ Call 0 not invoked.
✗ Call 1 not invoked.
|
✗ |
QByteArray hash = QCryptographicHash::hash(bytes, QCryptographicHash::Md5); |
| 316 |
|
|
|
|
|
| 317 |
|
|
|
|
// Skip duplicates |
| 318 |
|
0/2
✗ Decision 'true' not taken.
✗ Decision 'false' not taken.
|
0/1
✗ Call 0 not invoked.
|
✗ |
if (seenHashes.contains(hash)) { |
| 319 |
|
|
0/67
✗ 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 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 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 33 not invoked.
✗ Call 34 not invoked.
✗ Call 37 not invoked.
✗ Call 38 not invoked.
✗ Call 41 not invoked.
✗ Call 42 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.
✗ 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.
|
✗ |
UI_MESSAGE(QString(LOG_DUPLICATED_ICON) |
| 320 |
|
|
|
|
.arg(id) |
| 321 |
|
|
|
|
.arg(QString::number(counter).arg(QString::number(buttons.count())))); |
| 322 |
|
|
|
✗ |
continue; |
| 323 |
|
|
|
|
} |
| 324 |
|
|
|
|
|
| 325 |
|
|
0/67
✗ 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 13 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 24 not invoked.
✗ Call 25 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 37 not invoked.
✗ Call 38 not invoked.
✗ Call 41 not invoked.
✗ Call 42 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.
✗ 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.
|
✗ |
UI_MESSAGE(QString(LOG_ICON_PROGRESS) |
| 326 |
|
|
|
|
.arg(id) |
| 327 |
|
|
|
|
.arg(QString::number(counter)) |
| 328 |
|
|
|
|
.arg(QString::number(buttons.count()))); |
| 329 |
|
|
|
|
|
| 330 |
|
|
0/4
✗ Call 0 not invoked.
✗ Call 1 not invoked.
✗ Call 4 not invoked.
✗ Call 5 not invoked.
|
✗ |
seenHashes.insert(hash); |
| 331 |
|
|
|
|
|
| 332 |
|
|
0/1
✗ Call 0 not invoked.
|
✗ |
if (const auto iconPath = |
| 333 |
|
|
0/49
✗ 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 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 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.
✗ 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.
|
✗ |
iconsDirectory.filePath(QString("%1-%2").arg(id).arg(QString::number(counter++))) |
| 334 |
|
|
0/5
✗ Call 0 not invoked.
✗ Call 1 not invoked.
✗ Call 2 not invoked.
✗ Call 5 not invoked.
✗ Call 6 not invoked.
|
✗ |
.append(".png"); |
| 335 |
|
|
0/2
✗ Call 0 not invoked.
✗ Call 1 not invoked.
|
✗ |
!pixmap.save(iconPath)) { |
| 336 |
|
|
0/14
✗ Call 0 not invoked.
✗ Call 1 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 14 not invoked.
✗ Call 15 not invoked.
✗ Call 16 not invoked.
✗ Call 17 not invoked.
✗ Call 18 not invoked.
✗ Call 19 not invoked.
|
✗ |
LOG_ERROR(Logging::Message::LOG_FAILED_TO_SAVE_FILE, iconPath.toStdString()); |
| 337 |
|
|
0/2
✗ Call 0 not invoked.
✗ Call 1 not invoked.
|
✗ |
} |
| 338 |
|
|
0/14
✗ Call 0 not invoked.
✗ Call 3 not invoked.
✗ Call 6 not invoked.
✗ Call 7 not invoked.
✗ Call 10 not invoked.
✗ Call 11 not invoked.
✗ Call 14 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.
|
✗ |
} |
| 339 |
|
|
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.
|
✗ |
} |
| 340 |
|
|
|
|
|
| 341 |
3/6
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 13 not taken.
✓ Branch 16 taken 1 times.
✗ Branch 17 not taken.
|
|
18/24
✓ 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 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 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.
|
1 |
LOG_UI_MESSAGE(QString("#%1: Saving XML file.").arg(id)); |
| 342 |
1/2
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
|
|
10/12
✓ 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 not invoked.
✗ Call 13 not invoked.
|
3 |
const QString filePath = options_->getRootFolder().filePath( |
| 343 |
6/12
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
✓ Branch 23 taken 1 times.
✗ Branch 24 not taken.
✓ Branch 27 taken 1 times.
✗ Branch 28 not taken.
✓ Branch 31 taken 1 times.
✗ Branch 32 not taken.
|
|
23/25
✓ 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 11 invoked.
✓ Call 12 invoked.
✓ Call 15 invoked.
✓ Call 16 invoked.
✓ Call 17 invoked.
✓ Call 18 invoked.
✓ Call 21 invoked.
✓ Call 22 invoked.
✓ Call 25 invoked.
✓ Call 26 invoked.
✓ Call 29 invoked.
✓ Call 30 invoked.
✓ Call 33 invoked.
✓ Call 34 invoked.
✗ Call 35 not invoked.
✗ Call 36 not invoked.
|
2 |
options_->getFileName().append("-").append(id).append(".").append(extension)); |
| 344 |
3/6
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
|
1/2
✓ Decision 'true' taken 1 times.
✗ Decision 'false' not taken.
|
7/8
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 4 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
✓ Call 7 invoked.
✓ Call 10 invoked.
✗ Call 13 not invoked.
|
1 |
if (QFile file(filePath); file.open(QIODevice::WriteOnly)) { |
| 345 |
1/2
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
|
2/2
✓ Call 0 invoked.
✓ Call 1 invoked.
|
1 |
QTextStream stream(&file); |
| 346 |
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
|
|
1/1
|
1 |
doc.save(stream, 4); |
| 347 |
1/2
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
|
|
2/2
✓ Call 0 invoked.
✓ Call 1 invoked.
|
1 |
file.close(); |
| 348 |
|
|
2/4
✓ Call 0 invoked.
✓ Call 1 invoked.
✗ Call 2 not invoked.
✗ Call 3 not invoked.
|
1 |
} |
| 349 |
|
|
|
|
else { |
| 350 |
|
|
0/14
✗ Call 0 not invoked.
✗ Call 1 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 14 not invoked.
✗ Call 15 not invoked.
✗ Call 16 not invoked.
✗ Call 17 not invoked.
✗ Call 18 not invoked.
✗ Call 19 not invoked.
|
✗ |
LOG_ERROR(Logging::Message::LOG_FAILED_TO_OPEN_FILE, filePath.toStdString()); |
| 351 |
|
|
2/4
✓ Call 0 invoked.
✓ Call 1 invoked.
✗ Call 2 not invoked.
✗ Call 3 not invoked.
|
1 |
} |
| 352 |
0/54
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
✗ Branch 33 not taken.
✗ Branch 34 not taken.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✗ Branch 41 not taken.
✗ Branch 42 not taken.
✗ Branch 45 not taken.
✗ Branch 46 not taken.
✗ Branch 50 not taken.
✗ Branch 51 not taken.
✗ Branch 53 not taken.
✗ Branch 54 not taken.
✗ Branch 57 not taken.
✗ Branch 58 not taken.
✗ Branch 62 not taken.
✗ Branch 63 not taken.
✗ Branch 67 not taken.
✗ Branch 68 not taken.
✗ Branch 70 not taken.
✗ Branch 71 not taken.
✗ Branch 75 not taken.
✗ Branch 76 not taken.
✗ Branch 78 not taken.
✗ Branch 79 not taken.
✗ Branch 83 not taken.
✗ Branch 84 not taken.
✗ Branch 85 not taken.
✗ Branch 86 not taken.
✗ Branch 88 not taken.
✗ Branch 89 not taken.
✗ Branch 93 not taken.
✗ Branch 94 not taken.
✗ Branch 96 not taken.
✗ Branch 97 not taken.
✗ Branch 101 not taken.
✗ Branch 102 not taken.
✗ Branch 104 not taken.
✗ Branch 105 not taken.
|
|
3/58
✗ 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 16 not invoked.
✗ Call 19 not invoked.
✗ Call 20 not invoked.
✗ Call 23 not invoked.
✗ Call 24 not invoked.
✗ Call 25 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 40 not invoked.
✗ Call 43 not invoked.
✗ Call 44 not invoked.
✗ Call 47 not invoked.
✗ Call 48 not invoked.
✗ Call 49 not invoked.
✗ Call 52 not invoked.
✗ Call 55 not invoked.
✗ Call 56 not invoked.
✗ Call 59 not invoked.
✗ Call 60 not invoked.
✗ Call 61 not invoked.
✓ Call 64 invoked.
✓ Call 65 invoked.
✓ Call 66 invoked.
✗ Call 69 not invoked.
✗ Call 72 not invoked.
✗ Call 73 not invoked.
✗ Call 74 not invoked.
✗ Call 77 not invoked.
✗ Call 80 not invoked.
✗ Call 81 not invoked.
✗ Call 82 not invoked.
✗ Call 87 not invoked.
✗ Call 90 not invoked.
✗ Call 91 not invoked.
✗ Call 92 not invoked.
✗ Call 95 not invoked.
✗ Call 98 not invoked.
✗ Call 99 not invoked.
✗ Call 100 not invoked.
✗ Call 103 not invoked.
✗ Call 106 not invoked.
✗ Call 107 not invoked.
✗ Call 108 not invoked.
✗ Call 109 not invoked.
✗ Call 110 not invoked.
✗ Call 111 not invoked.
|
2 |
})); |
| 353 |
|
|
1/2
✓ Call 0 invoked.
✗ Call 1 not invoked.
|
1 |
} |
| 354 |
1/2
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
|
|
22/30
✓ 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 13 invoked.
✓ Call 16 invoked.
✓ Call 17 invoked.
✓ Call 18 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.
✗ Call 29 not invoked.
✗ Call 30 not invoked.
✗ Call 31 not invoked.
|
1 |
ExtensionsManager::executor_->submit(std::move(group), [] -> void { |
| 355 |
|
|
1/1
|
1 |
ExtensionsManager::clearMessage(); |
| 356 |
|
|
|
1 |
}); |
| 357 |
|
|
2/4
✓ Call 0 invoked.
✓ Call 1 invoked.
✗ Call 2 not invoked.
✗ Call 3 not invoked.
|
2 |
} |
| 358 |
|
|
|
|
|
| 359 |
|
|
|
✗ |
BaseUIExporterOptions* XmlUIExporter::getOptions() { |
| 360 |
|
|
0/4
✗ Call 0 not invoked.
✗ Call 1 not invoked.
✗ Call 2 not invoked.
✗ Call 3 not invoked.
|
✗ |
return options_.get(); |
| 361 |
|
|
|
|
} |
| 362 |
|
|
|
|
|