Replaced MemoryRegionAddressInputType enum with generaic AddressType enum
This commit is contained in:
@@ -0,0 +1,12 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <cstdint>
|
||||||
|
|
||||||
|
namespace Bloom
|
||||||
|
{
|
||||||
|
enum class AddressType: std::uint8_t
|
||||||
|
{
|
||||||
|
ABSOLUTE,
|
||||||
|
RELATIVE,
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -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.
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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(
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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(
|
||||||
|
|||||||
Reference in New Issue
Block a user