Replaced MemoryRegionAddressInputType enum with generaic AddressType enum

This commit is contained in:
Nav
2022-09-11 01:30:03 +01:00
parent a0e833b801
commit dc45301ff8
7 changed files with 33 additions and 19 deletions

View File

@@ -0,0 +1,12 @@
#pragma once
#include <cstdint>
namespace Bloom
{
enum class AddressType: std::uint8_t
{
ABSOLUTE,
RELATIVE,
};
}

View File

@@ -7,6 +7,7 @@
#include "src/Targets/TargetMemory.hpp"
#include "src/Helpers/DateTime.hpp"
#include "AddressType.hpp"
namespace Bloom
{
@@ -40,7 +41,7 @@ namespace Bloom
* See RegionItem::convertRelativeToAbsoluteAddressRange()
* See RegionItem::convertAbsoluteToRelativeAddressRange()
*/
MemoryRegionAddressInputType addressRangeInputType = MemoryRegionAddressInputType::ABSOLUTE;
AddressType addressRangeInputType = AddressType::ABSOLUTE;
/**
* This address range will always be in absolute form. Regardless of the value of this->addressRangeType.

View File

@@ -43,7 +43,7 @@ namespace Bloom::Widgets
);
this->memoryRegion.addressRangeInputType = this->getSelectedAddressInputType();
this->memoryRegion.addressRange =
this->memoryRegion.addressRangeInputType == MemoryRegionAddressInputType::RELATIVE ?
this->memoryRegion.addressRangeInputType == AddressType::RELATIVE ?
this->convertRelativeToAbsoluteAddressRange(inputAddressRange) : inputAddressRange;
}
}

View File

@@ -43,7 +43,7 @@ namespace Bloom::Widgets
);
this->memoryRegion.addressRangeInputType = this->getSelectedAddressInputType();
this->memoryRegion.addressRange =
this->memoryRegion.addressRangeInputType == MemoryRegionAddressInputType::RELATIVE ?
this->memoryRegion.addressRangeInputType == AddressType::RELATIVE ?
this->convertRelativeToAbsoluteAddressRange(inputAddressRange) : inputAddressRange;
auto selectedDataTypeOptionName = this->dataTypeInput->currentData().toString();

View File

@@ -106,10 +106,9 @@ namespace Bloom::Widgets
+ "0x" + QString::number(memoryAddressRange.endAddress, 16).toUpper()
);
const auto absoluteAddressRange = addressType == MemoryRegionAddressInputType::RELATIVE ?
this->convertRelativeToAbsoluteAddressRange(
TargetMemoryAddressRange(startAddress, endAddress)
) : TargetMemoryAddressRange(startAddress, endAddress);
const auto absoluteAddressRange = addressType == AddressType::RELATIVE
? this->convertRelativeToAbsoluteAddressRange(TargetMemoryAddressRange(startAddress, endAddress))
: TargetMemoryAddressRange(startAddress, endAddress);
if (absoluteAddressRange.startAddress < memoryAddressRange.startAddress
|| absoluteAddressRange.startAddress > memoryAddressRange.endAddress
@@ -148,7 +147,7 @@ namespace Bloom::Widgets
this->addressTypeInput->addItem(option.text, optionName);
}
if (region.addressRangeInputType == MemoryRegionAddressInputType::RELATIVE) {
if (region.addressRangeInputType == AddressType::RELATIVE) {
auto relativeAddressRange = this->convertAbsoluteToRelativeAddressRange(region.addressRange);
this->addressTypeInput->setCurrentText(RegionItem::addressRangeTypeOptionsByName.at("relative").text);
@@ -176,13 +175,13 @@ namespace Bloom::Widgets
QObject::connect(this->nameInput, &QLineEdit::textEdited, this, &RegionItem::onNameInputChange);
}
MemoryRegionAddressInputType RegionItem::getSelectedAddressInputType() const {
AddressType RegionItem::getSelectedAddressInputType() const {
auto selectedAddressTypeOptionName = this->addressTypeInput->currentData().toString();
if (RegionItem::addressRangeTypeOptionsByName.contains(selectedAddressTypeOptionName)) {
return RegionItem::addressRangeTypeOptionsByName.at(selectedAddressTypeOptionName).addressType;
}
return MemoryRegionAddressInputType::ABSOLUTE;
return AddressType::ABSOLUTE;
}
TargetMemoryAddressRange RegionItem::convertAbsoluteToRelativeAddressRange(

View File

@@ -19,10 +19,12 @@ namespace Bloom::Widgets
struct AddressRangeTypeOption
{
QString text;
MemoryRegionAddressInputType addressType;
AddressType addressType;
AddressRangeTypeOption(const QString& text, MemoryRegionAddressInputType addressType)
: text(text), addressType(addressType) {};
AddressRangeTypeOption(const QString& text, AddressType addressType)
: text(text)
, addressType(addressType)
{};
};
class RegionItem: public ClickableWidget
@@ -64,7 +66,7 @@ namespace Bloom::Widgets
TextInput* sizeInput = nullptr;
virtual void initFormInputs();
[[nodiscard]] MemoryRegionAddressInputType getSelectedAddressInputType() const;
[[nodiscard]] AddressType getSelectedAddressInputType() const;
Targets::TargetMemoryAddressRange convertAbsoluteToRelativeAddressRange(
const Targets::TargetMemoryAddressRange& absoluteAddressRange
@@ -84,8 +86,8 @@ namespace Bloom::Widgets
static inline const std::map<QString, AddressRangeTypeOption> addressRangeTypeOptionsByName = std::map<
QString, AddressRangeTypeOption
>({
{"absolute", AddressRangeTypeOption("Absolute", MemoryRegionAddressInputType::ABSOLUTE)},
{"relative", AddressRangeTypeOption("Relative", MemoryRegionAddressInputType::RELATIVE)},
{"absolute", AddressRangeTypeOption("Absolute", AddressType::ABSOLUTE)},
{"relative", AddressRangeTypeOption("Relative", AddressType::RELATIVE)},
});
void onAddressRangeInputChange();

View File

@@ -54,9 +54,9 @@ namespace Bloom
{Targets::TargetMemoryEndianness::BIG, "big"},
};
static const inline BiMap<MemoryRegionAddressInputType, QString> addressRangeInputTypesByName = {
{MemoryRegionAddressInputType::ABSOLUTE, "absolute"},
{MemoryRegionAddressInputType::RELATIVE, "relative"},
static const inline BiMap<AddressType, QString> addressRangeInputTypesByName = {
{AddressType::ABSOLUTE, "absolute"},
{AddressType::RELATIVE, "relative"},
};
[[nodiscard]] Widgets::TargetMemoryInspectionPaneSettings memoryInspectionPaneSettingsFromJson(