diff options
| author | Peter LaFosse <peter@vector35.com> | 2022-09-29 10:25:59 -0400 |
|---|---|---|
| committer | Peter LaFosse <peter@vector35.com> | 2022-09-29 10:26:05 -0400 |
| commit | ed33aad526b820e1024536b2609006f44e341251 (patch) | |
| tree | ae475b4f7a7bdf996050caa8eb51ba26ffd84553 /examples/triage/librariesinfo.cpp | |
| parent | b70ca06fe5fd450c8db240f2edbfd784ae3859e6 (diff) | |
Add 'Libraries' group to Triage summary
Diffstat (limited to 'examples/triage/librariesinfo.cpp')
| -rw-r--r-- | examples/triage/librariesinfo.cpp | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/examples/triage/librariesinfo.cpp b/examples/triage/librariesinfo.cpp new file mode 100644 index 00000000..03764e99 --- /dev/null +++ b/examples/triage/librariesinfo.cpp @@ -0,0 +1,52 @@ +#include "librariesinfo.h" +#include "theme.h" + + +LibrariesWidget::LibrariesWidget(QWidget* parent, BinaryViewRef bv) +{ + auto layout = new QVBoxLayout(); + layout->setContentsMargins(0, 0, 0, 0); + + auto libMetadata = bv->QueryMetadata("Libraries"); + auto libFoundMetadata = bv->QueryMetadata("LibraryFound"); + if (libMetadata && libFoundMetadata && libMetadata->IsStringList() && libFoundMetadata->IsStringList() && libMetadata->Size() == libFoundMetadata->Size()) + { + const auto libNames = libMetadata->GetStringList(); + const auto typeLibPaths = libFoundMetadata->GetStringList(); + for (size_t i = 0; i < libNames.size(); ++i) + { + auto lib = libNames[i]; + auto typeLib = typeLibPaths[i]; + auto libWidget = new QLabel(QString::fromStdString(" " + lib)); + QColor textColor; + QString toolTip; + auto style = QPalette(palette()); + if (typeLib.empty()) + { + toolTip = "Type library: not found"; + style.setColor(QPalette::WindowText, getThemeColor(NotPresentColor)); + } + else + { + toolTip = QString::fromStdString("Type library: " + typeLib); + } + libWidget->setToolTip(toolTip); + libWidget->setPalette(style); + layout->addWidget(libWidget); + } + } + else if (libMetadata && libMetadata->IsStringList()) + { + for (const auto& lib : libMetadata->GetStringList()) + layout->addWidget(new QLabel(QString::fromStdString(lib))); + } + else + { + auto style = QPalette(palette()); + style.setColor(QPalette::WindowText, getThemeColor(NotPresentColor)); + auto noLibWidget = new QLabel("No libraries found"); + noLibWidget->setPalette(style); + layout->addWidget(noLibWidget); + } + setLayout(layout); +} |
