diff options
| author | Jordan Wiens <github@psifertex.com> | 2025-12-19 11:34:20 -0500 |
|---|---|---|
| committer | Jordan Wiens <github@psifertex.com> | 2025-12-19 11:34:20 -0500 |
| commit | 1cabd2def9da8ee106be26308b96a2a91cd92a2f (patch) | |
| tree | edede8a013f0dca94d566aec11b2b0d60539226a /examples | |
| parent | 0facabad207dba55ff77f8af6de9e82a95f62080 (diff) | |
make remaining triage header items use copylabel
Diffstat (limited to 'examples')
| -rw-r--r-- | examples/triage/headers.cpp | 25 | ||||
| -rw-r--r-- | examples/triage/headers.h | 1 |
2 files changed, 21 insertions, 5 deletions
diff --git a/examples/triage/headers.cpp b/examples/triage/headers.cpp index 4191cf16..8e0d4df3 100644 --- a/examples/triage/headers.cpp +++ b/examples/triage/headers.cpp @@ -14,6 +14,7 @@ NavigationLabel::NavigationLabel(const QString& text, QColor color, const std::f style.setColor(QPalette::WindowText, color); setPalette(style); setFont(getMonospaceFont(this)); + setCursor(Qt::PointingHandCursor); } @@ -97,7 +98,7 @@ GenericHeaders::GenericHeaders(BinaryViewRef data) AddField("Platform", QString::fromStdString(data->GetDefaultPlatform()->GetName())); auto entryFunctions = data->GetAllEntryFunctions(); if (!entryFunctions.empty() && data->GetEntryPoint() != 0) - AddField("Entry Point", QString("0x") + QString::number(data->GetEntryPoint(), 16), CodeHeaderField); + AddField("Entry Point", QString("0x") + QString::number(data->GetEntryPoint(), 16), AddressHeaderField); else AddField("Entry Point", "None"); if (data->IsValidOffset(data->GetStart())) @@ -133,7 +134,7 @@ PEHeaders::PEHeaders(BinaryViewRef data) AddField("Platform", QString::fromStdString(data->GetDefaultPlatform()->GetName())); auto entryFunctions = data->GetAllEntryFunctions(); if (!entryFunctions.empty() && data->GetEntryPoint() != 0) - AddField("Entry Point", QString("0x") + QString::number(data->GetEntryPoint(), 16), CodeHeaderField); + AddField("Entry Point", QString("0x") + QString::number(data->GetEntryPoint(), 16), AddressHeaderField); else AddField("Entry Point", "None"); return; @@ -167,7 +168,7 @@ PEHeaders::PEHeaders(BinaryViewRef data) uint64_t entryPoint = currentBase + GetValueOfStructMember(data, optHeaderName, optHeaderStart, "addressOfEntryPoint"); auto entryFunctions = data->GetAllEntryFunctions(); if (!entryFunctions.empty() && entryPoint != 0) - AddField("Entry Point", QString("0x") + QString::number(entryPoint, 16), CodeHeaderField); + AddField("Entry Point", QString("0x") + QString::number(entryPoint, 16), AddressHeaderField); else AddField("Entry Point", "None"); @@ -370,6 +371,16 @@ HeaderWidget::HeaderWidget(QWidget* parent, const Headers& header) : QWidget(par for (auto& field : header.GetFields()) { layout->addWidget(new QLabel(field.title + ": "), row, col * 3); + + // For text fields with multiple values, join them with newlines for copying + QString copyText; + if (field.type == TextHeaderField && field.values.size() > 1) + { + copyText = field.values[0]; + for (size_t i = 1; i < field.values.size(); i++) + copyText += "\n" + field.values[i]; + } + for (auto& value : field.values) { QWidget* label; @@ -383,8 +394,12 @@ HeaderWidget::HeaderWidget(QWidget* parent, const Headers& header) : QWidget(par } else { - label = new QLabel(value); - label->setFont(getMonospaceFont(this)); + // Use CopyableLabel for text fields with AlphanumericHighlightColor + auto copyLabel = new CopyableLabel(value, getThemeColor(AlphanumericHighlightColor)); + copyLabel->setFont(getMonospaceFont(this)); + if (field.values.size() > 1) + copyLabel->setCopyText(copyText); + label = copyLabel; } layout->addWidget(label, row, col * 3 + 1); row++; diff --git a/examples/triage/headers.h b/examples/triage/headers.h index e96dead5..de14165a 100644 --- a/examples/triage/headers.h +++ b/examples/triage/headers.h @@ -4,6 +4,7 @@ #include <QtWidgets/QWidget> #include <functional> #include "uitypes.h" +#include "copyablelabel.h" class NavigationLabel : public QLabel |
