| 3 | |
| 4 | |
| 5 | LibrariesWidget::LibrariesWidget(QWidget* parent, BinaryViewRef bv) |
| 6 | { |
| 7 | auto layout = new QVBoxLayout(); |
| 8 | layout->setContentsMargins(0, 0, 0, 0); |
| 9 | |
| 10 | auto libMetadata = bv->QueryMetadata("Libraries"); |
| 11 | auto libFoundMetadata = bv->QueryMetadata("LibraryFound"); |
| 12 | if (libMetadata && libFoundMetadata && libMetadata->IsStringList() && libFoundMetadata->IsStringList() && libMetadata->Size() == libFoundMetadata->Size()) |
| 13 | { |
| 14 | const auto libNames = libMetadata->GetStringList(); |
| 15 | const auto typeLibPaths = libFoundMetadata->GetStringList(); |
| 16 | for (size_t i = 0; i < libNames.size(); ++i) |
| 17 | { |
| 18 | auto lib = libNames[i]; |
| 19 | auto typeLib = typeLibPaths[i]; |
| 20 | auto libWidget = new QLabel(QString::fromStdString(" " + lib)); |
| 21 | QString toolTip; |
| 22 | auto style = QPalette(palette()); |
| 23 | if (typeLib.empty()) |
| 24 | { |
| 25 | toolTip = "Type library: not found"; |
| 26 | style.setColor(QPalette::WindowText, getThemeColor(NotPresentColor)); |
| 27 | } |
| 28 | else |
| 29 | { |
| 30 | toolTip = QString::fromStdString("Type library: " + typeLib); |
| 31 | } |
| 32 | libWidget->setToolTip(toolTip); |
| 33 | libWidget->setPalette(style); |
| 34 | layout->addWidget(libWidget); |
| 35 | } |
| 36 | } |
| 37 | else if (libMetadata && libMetadata->IsStringList()) |
| 38 | { |
| 39 | for (const auto& lib : libMetadata->GetStringList()) |
| 40 | layout->addWidget(new QLabel(QString::fromStdString(lib))); |
| 41 | } |
| 42 | else |
| 43 | { |
| 44 | auto style = QPalette(palette()); |
| 45 | style.setColor(QPalette::WindowText, getThemeColor(NotPresentColor)); |
| 46 | auto noLibWidget = new QLabel("No libraries found"); |
| 47 | noLibWidget->setPalette(style); |
| 48 | layout->addWidget(noLibWidget); |
| 49 | } |
| 50 | setLayout(layout); |
| 51 | } |
nothing calls this directly
no test coverage detected