Added byte widget address label to hex viewer widget
This commit is contained in:
@@ -349,6 +349,18 @@ QScrollBar::sub-line:vertical {
|
||||
#hex-viewer-container #tool-bar,
|
||||
#hex-viewer-container #search-bar {
|
||||
border-bottom: 1px solid #2F2F2D;
|
||||
|
||||
#hex-viewer-container #bottom-bar {
|
||||
border-top: 1px solid #41423f;
|
||||
}
|
||||
|
||||
#hex-viewer-container #bottom-bar QLabel {
|
||||
font-size: 13px;
|
||||
color: rgba(175, 177, 179, 0.72);
|
||||
}
|
||||
|
||||
#hex-viewer-container #bottom-bar QLabel:disabled {
|
||||
color: rgba(175, 177, 179, 0.3);
|
||||
}
|
||||
|
||||
#hex-viewer-container #tool-bar QToolButton {
|
||||
|
||||
@@ -14,8 +14,13 @@ using Bloom::Targets::TargetMemoryDescriptor;
|
||||
ByteWidgetContainer::ByteWidgetContainer(
|
||||
const TargetMemoryDescriptor& targetMemoryDescriptor,
|
||||
InsightWorker& insightWorker,
|
||||
QLabel* hoveredAddressLabel,
|
||||
QWidget* parent
|
||||
): QWidget(parent), targetMemoryDescriptor(targetMemoryDescriptor), insightWorker(insightWorker), parent(parent) {
|
||||
): QWidget(parent),
|
||||
targetMemoryDescriptor(targetMemoryDescriptor),
|
||||
insightWorker(insightWorker),
|
||||
hoveredAddressLabel(hoveredAddressLabel),
|
||||
parent(parent) {
|
||||
this->setObjectName("byte-widget-container");
|
||||
this->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Ignored);
|
||||
|
||||
@@ -126,6 +131,10 @@ void ByteWidgetContainer::onTargetStateChanged(Targets::TargetState newState) {
|
||||
void ByteWidgetContainer::onByteWidgetEnter(ByteWidget* widget) {
|
||||
this->hoveredByteWidget = widget;
|
||||
|
||||
this->hoveredAddressLabel->setText(
|
||||
"Relative Address (Absolute Address): " + widget->relativeAddressHex + " (" + widget->addressHex + ")"
|
||||
);
|
||||
|
||||
if (!this->byteWidgetsByRowIndex.empty()) {
|
||||
for (auto& byteWidget : this->byteWidgetsByColumnIndex.at(widget->currentColumnIndex)) {
|
||||
byteWidget->update();
|
||||
@@ -140,6 +149,8 @@ void ByteWidgetContainer::onByteWidgetEnter(ByteWidget* widget) {
|
||||
void ByteWidgetContainer::onByteWidgetLeave(ByteWidget* widget) {
|
||||
this->hoveredByteWidget = std::nullopt;
|
||||
|
||||
this->hoveredAddressLabel->setText("Relative Address (Absolute Address):");
|
||||
|
||||
if (!this->byteWidgetsByRowIndex.empty()) {
|
||||
for (auto& byteWidget : this->byteWidgetsByColumnIndex.at(widget->currentColumnIndex)) {
|
||||
byteWidget->update();
|
||||
|
||||
@@ -34,6 +34,7 @@ namespace Bloom::Widgets
|
||||
ByteWidgetContainer(
|
||||
const Targets::TargetMemoryDescriptor& targetMemoryDescriptor,
|
||||
InsightWorker& insightWorker,
|
||||
QLabel* hoveredAddressLabel,
|
||||
QWidget* parent
|
||||
);
|
||||
|
||||
@@ -47,11 +48,11 @@ namespace Bloom::Widgets
|
||||
|
||||
private:
|
||||
const Targets::TargetMemoryDescriptor& targetMemoryDescriptor;
|
||||
Targets::TargetState targetState = Targets::TargetState::UNKNOWN;
|
||||
InsightWorker& insightWorker;
|
||||
|
||||
QWidget* parent = nullptr;
|
||||
|
||||
Targets::TargetState targetState = Targets::TargetState::UNKNOWN;
|
||||
QLabel* hoveredAddressLabel = nullptr;
|
||||
|
||||
void adjustByteWidgets();
|
||||
|
||||
|
||||
@@ -42,11 +42,17 @@ HexViewerWidget::HexViewerWidget(
|
||||
this->container->setContentsMargins(0, 0, 0, 0);
|
||||
|
||||
this->toolBar = this->container->findChild<QWidget*>("tool-bar");
|
||||
this->bottomBar = this->container->findChild<QWidget*>("bottom-bar");
|
||||
this->refreshButton = this->container->findChild<QToolButton*>("refresh-memory-btn");
|
||||
|
||||
this->toolBar->setContentsMargins(0, 0, 0, 0);
|
||||
this->toolBar->layout()->setContentsMargins(5, 0, 5, 0);
|
||||
|
||||
this->bottomBar->setContentsMargins(0, 0, 0, 0);
|
||||
this->bottomBar->layout()->setContentsMargins(5, 0, 5, 0);
|
||||
|
||||
this->hoveredAddressLabel = this->bottomBar->findChild<QLabel*>("byte-address-label");
|
||||
|
||||
this->byteWidgetScrollArea = this->container->findChild<QScrollArea*>("byte-widget-scroll-area");
|
||||
auto byteWidgetScrollAreaWidgetContainer = this->byteWidgetScrollArea->findChild<QWidget*>(
|
||||
"byte-widget-scroll-area-container"
|
||||
@@ -58,6 +64,7 @@ HexViewerWidget::HexViewerWidget(
|
||||
this->byteWidgetContainer = new ByteWidgetContainer(
|
||||
targetMemoryDescriptor,
|
||||
insightWorker,
|
||||
this->hoveredAddressLabel,
|
||||
byteWidgetScrollAreaHorizontalLayout->parentWidget()
|
||||
);
|
||||
|
||||
|
||||
@@ -44,11 +44,13 @@ namespace Bloom::Widgets
|
||||
|
||||
QWidget* container = nullptr;
|
||||
QWidget* toolBar = nullptr;
|
||||
QWidget* bottomBar = nullptr;
|
||||
|
||||
ByteWidgetContainer* byteWidgetContainer = nullptr;
|
||||
QWidget* byteWidgetScrollArea = nullptr;
|
||||
QWidget* byteWidgetAddressContainer = nullptr;
|
||||
QVBoxLayout* byteWidgetAddressLayout = nullptr;
|
||||
QLabel* hoveredAddressLabel = nullptr;
|
||||
|
||||
Targets::TargetState targetState = Targets::TargetState::UNKNOWN;
|
||||
|
||||
|
||||
@@ -113,7 +113,42 @@
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
<!-- <item>-->
|
||||
<item>
|
||||
<widget class="QWidget" name="bottom-bar">
|
||||
<property name="minimumHeight">
|
||||
<number>27</number>
|
||||
</property>
|
||||
<property name="maximumHeight">
|
||||
<number>27</number>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed"/>
|
||||
</property>
|
||||
<layout class="QHBoxLayout">
|
||||
<property name="spacing">
|
||||
<number>3</number>
|
||||
</property>
|
||||
<property name="margin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QLabel" name="byte-address-label">
|
||||
<property name="text">
|
||||
<string>Relative Address (Absolute Address):</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item alignment="Qt::AlignTop">
|
||||
<spacer name="horizontal-spacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<!-- <item>-->
|
||||
<!-- <spacer name="vertical-spacer">-->
|
||||
<!-- <property name="orientation">-->
|
||||
<!-- <enum>Qt::Vertical</enum>-->
|
||||
|
||||
Reference in New Issue
Block a user