MCPcopy Create free account
hub / github.com/Vector35/binaryninja-api / LibrariesWidget

Method LibrariesWidget

examples/triage/librariesinfo.cpp:5–51  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3
4
5LibrariesWidget::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}

Callers

nothing calls this directly

Calls 6

IsStringListMethod · 0.80
GetStringListMethod · 0.80
QueryMetadataMethod · 0.45
SizeMethod · 0.45
sizeMethod · 0.45
emptyMethod · 0.45

Tested by

no test coverage detected