Fix entry of address for Memory and Array visualizers.

This commit is contained in:
Ernie Pasveer
2022-07-24 12:14:28 -05:00
parent d76d4dcee9
commit 021bcbe3b4
2 changed files with 76 additions and 43 deletions
+28 -19
View File
@@ -91,30 +91,39 @@ QString SeerMemoryVisualizerWidget::variableName () const {
void SeerMemoryVisualizerWidget::setVariableAddress (const QString& address) {
unsigned long offset = 0;
bool refresh = false;
unsigned long offset = 0;
bool ok = false;
bool refresh = false;
if (address.startsWith("0x")) {
if (address == "") {
bool ok = false;
offset = address.toULong(&ok, 16);
if (ok == true) {
variableAddressLineEdit->setText(address);
refresh = true;
}else{
variableAddressLineEdit->setText("not an address");
offset = 0;
}
}else if (address != "") {
variableAddressLineEdit->setText("not an address");
variableAddressLineEdit->setText("");
offset = 0;
}else{
variableAddressLineEdit->setText("");
offset = 0;
// Test for base10
if (ok == false) {
offset = address.toULong(&ok, 10);
if (ok) {
variableAddressLineEdit->setText(QString("0x%1").arg(offset, 0, 16, QLatin1Char( '0' )));
refresh = true;
}
}
// Test for base16
if (ok == false) {
offset = address.toULong(&ok, 16);
if (ok) {
variableAddressLineEdit->setText(QString("0x%1").arg(offset, 0, 16, QLatin1Char( '0' )));
refresh = true;
}
}
if (ok == false) {
variableAddressLineEdit->setText("not an address");
offset = 0;
}
}
memoryHexEditor->setAddressOffset(offset);