Files
RElicAnalysis/RElicAnalysis/elf/dialogelfsection.cpp
T
2026-05-01 15:19:10 +02:00

86 lines
3.2 KiB
C++

#include "dialogelfsection.h"
DialogElfSection::DialogElfSection() {
setWindowTitle("ELF Section");
setFixedSize(350, 250);
QVBoxLayout *mainLayout = new QVBoxLayout;
QGridLayout *layoutData = new QGridLayout;
QLabel *labelSectionName = new QLabel("Section name: ");
m_labelSectionName = new QLabel;
QLabel *labelType = new QLabel("Type: ");
m_labelType = new QLabel;
QLabel *labelFlags = new QLabel("Flags: ");
m_labelFlags = new QLabel;
QLabel *labelAddress = new QLabel("Address: ");
m_labelAddress = new QLabel;
QLabel *labelOffset = new QLabel("Offset: ");
m_labelOffset = new QLabel;
QLabel *labelSectionSize = new QLabel("Section size: ");
m_labelSectionSize = new QLabel;
QLabel *labelLink = new QLabel("Link: ");
m_labelLink = new QLabel;
QLabel *labelInfo = new QLabel("Info: ");
m_labelInfo = new QLabel;
QLabel *labelAddressAlign = new QLabel("Address Align: ");
m_labelAddressAlign = new QLabel;
QLabel *labelEntrySize = new QLabel("Entry size: ");
m_labelEntrySize = new QLabel;
layoutData->addWidget(labelSectionName, 0, 0);
layoutData->addWidget(m_labelSectionName, 0, 1);
layoutData->addWidget(labelType, 1, 0);
layoutData->addWidget(m_labelType, 1, 1);
layoutData->addWidget(labelFlags, 2, 0);
layoutData->addWidget(m_labelFlags, 2, 1);
layoutData->addWidget(labelAddress, 3, 0);
layoutData->addWidget(m_labelAddress, 3, 1);
layoutData->addWidget(labelOffset, 4, 0);
layoutData->addWidget(m_labelOffset, 4, 1);
layoutData->addWidget(labelSectionSize, 5, 0);
layoutData->addWidget(m_labelSectionSize, 5, 1);
layoutData->addWidget(labelLink, 6, 0);
layoutData->addWidget(m_labelLink, 6, 1);
layoutData->addWidget(labelInfo, 7, 0);
layoutData->addWidget(m_labelInfo, 7, 1);
layoutData->addWidget(labelAddressAlign, 8, 0);
layoutData->addWidget(m_labelAddressAlign, 8, 1);
QHBoxLayout *layoutButton = new QHBoxLayout;
layoutButton->setAlignment(Qt::AlignRight);
QPushButton *buttonClose = new QPushButton("Close");
connect(buttonClose, SIGNAL(clicked()), this, SLOT(close()));
layoutButton->addWidget(buttonClose);
mainLayout->addLayout(layoutData);
mainLayout->addLayout(layoutButton);
setLayout(mainLayout);
}
void DialogElfSection::setData(struct elfSection *sElfS){
m_labelSectionName->setText(sElfS->sh_name);
m_labelType->setText(printHex(sElfS->sh_type.toHex()));
m_labelFlags->setText(sElfS->sh_flags.toHex());
m_labelAddress->setText(printHex(sElfS->sh_addr.toHex()));
m_labelOffset->setText(printHex(sElfS->sh_offset.toHex()));
m_labelSectionSize->setText(printHex(sElfS->sh_size.toHex()));
m_labelLink->setText(printHex(sElfS->sh_link.toHex()));
m_labelInfo->setText(printHex(sElfS->sh_info.toHex()));
m_labelAddressAlign->setText(printHex(sElfS->sh_addralign.toHex()));
m_labelEntrySize->setText(printHex(sElfS->sh_entsize.toHex()));
}
DialogElfSection::~DialogElfSection() {
delete m_labelSectionName;
delete m_labelType;
delete m_labelFlags;
delete m_labelAddress;
delete m_labelOffset;
delete m_labelSectionSize;
delete m_labelLink;
delete m_labelInfo;
delete m_labelAddressAlign;
delete m_labelEntrySize;
}