Merge pull request #13785 from Dentomologist/memorywidget_fix_hex_input_validation_errors

MemoryWidget: Fix hex input validation errors
This commit is contained in:
Admiral H. Curtiss
2025-07-01 22:54:37 +02:00
committed by GitHub

View File

@ -618,12 +618,26 @@ void MemoryWidget::ValidateAndPreviewInputValue()
if (input_type != Type::ASCII) if (input_type != Type::ASCII)
input_text.remove(QLatin1Char(' ')); input_text.remove(QLatin1Char(' '));
if (m_base_check->isChecked()) if (input_type == Type::HexString)
{ {
// Hex strings are parsed using QByteArray::fromHex which doesn't expect a 0x prefix. If the
// user has inserted one, remove it.
if (input_text.startsWith(QStringLiteral("0x"), Qt::CaseInsensitive))
input_text.remove(0, 2);
}
else if (m_base_check->isChecked())
{
// Add 0x to the front of the input (after the '-', if present), but only if the user didn't
// already do so.
if (input_text.startsWith(QLatin1Char('-'))) if (input_text.startsWith(QLatin1Char('-')))
input_text.insert(1, QStringLiteral("0x")); {
else if (!input_text.startsWith(QStringLiteral("-0x"), Qt::CaseInsensitive))
input_text.insert(1, QStringLiteral("0x"));
}
else if (!input_text.startsWith(QStringLiteral("0x"), Qt::CaseInsensitive))
{
input_text.prepend(QStringLiteral("0x")); input_text.prepend(QStringLiteral("0x"));
}
} }
QFont font; QFont font;