From c8947eee6a1b2c7001ec9c65a0051395f9d34efc Mon Sep 17 00:00:00 2001 From: Eladash Date: Thu, 17 Dec 2020 19:11:51 +0200 Subject: [PATCH] GUI: Make memory viewer address edit accept 0x/0X prefixes Max length is 10, added regexp validator accordinally. --- rpcs3/rpcs3qt/memory_viewer_panel.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/rpcs3/rpcs3qt/memory_viewer_panel.cpp b/rpcs3/rpcs3qt/memory_viewer_panel.cpp index 5f0a2c92b4..0b574b5cb6 100644 --- a/rpcs3/rpcs3qt/memory_viewer_panel.cpp +++ b/rpcs3/rpcs3qt/memory_viewer_panel.cpp @@ -52,9 +52,10 @@ memory_viewer_panel::memory_viewer_panel(QWidget* parent, u32 addr) m_addr_line->setPlaceholderText("00000000"); m_addr_line->setText(qstr(fmt::format("%08x", m_addr))); m_addr_line->setFont(mono); - m_addr_line->setMaxLength(8); + m_addr_line->setMaxLength(10); m_addr_line->setFixedWidth(75); m_addr_line->setFocus(); + m_addr_line->setValidator(new QRegExpValidator(QRegExp("^([0][xX])?[a-fA-F0-9]{0,8}$"))); hbox_tools_mem_addr->addWidget(m_addr_line); tools_mem_addr->setLayout(hbox_tools_mem_addr); @@ -207,7 +208,8 @@ memory_viewer_panel::memory_viewer_panel(QWidget* parent, u32 addr) connect(m_addr_line, &QLineEdit::returnPressed, [this]() { bool ok; - m_addr = m_addr_line->text().toULong(&ok, 16); + const QString text = m_addr_line->text(); + m_addr = (text.startsWith("0x", Qt::CaseInsensitive) ? text.right(text.size() - 2) : text).toULong(&ok, 16); m_addr -= m_addr % (m_colcount * 4); // Align by amount of bytes in a row m_addr_line->setText(QString("%1").arg(m_addr, 8, 16, QChar('0'))); // get 8 digits in input line ShowMemory();