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/Targets/TargetMemory.hpp"
#include "src/Helpers/DateTime.hpp" #include "src/Helpers/DateTime.hpp"
#include "AddressType.hpp"
namespace Bloom namespace Bloom
{ {
@@ -40,7 +41,7 @@ namespace Bloom
* See RegionItem::convertRelativeToAbsoluteAddressRange() * See RegionItem::convertRelativeToAbsoluteAddressRange()
* See RegionItem::convertAbsoluteToRelativeAddressRange() * 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. * 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.addressRangeInputType = this->getSelectedAddressInputType();
this->memoryRegion.addressRange = this->memoryRegion.addressRange =
this->memoryRegion.addressRangeInputType == MemoryRegionAddressInputType::RELATIVE ? this->memoryRegion.addressRangeInputType == AddressType::RELATIVE ?
this->convertRelativeToAbsoluteAddressRange(inputAddressRange) : inputAddressRange; this->convertRelativeToAbsoluteAddressRange(inputAddressRange) : inputAddressRange;
} }
} }

View File

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

View File

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

View File

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

View File

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