summaryrefslogtreecommitdiff
path: root/Source/Core/DolphinQt/Debugger/MemoryWidget.cpp
diff options
context:
space:
mode:
authorTryTwo <taolas@gmail.com>2024-06-24 14:18:41 -0700
committerTryTwo <taolas@gmail.com>2025-01-19 23:18:38 -0700
commit32e135e6a94de9aba7e08ef0b32fac35f4647ab3 (patch)
tree31124b80643cb9d91d2eead5f4c5aad8865a0312 /Source/Core/DolphinQt/Debugger/MemoryWidget.cpp
parent3edb5acccab983b08a181356c75177a635ad3c0b (diff)
MemoryViewWidget: Add OnFrameEnd callback to auto-update memory while a game is running.
Diffstat (limited to 'Source/Core/DolphinQt/Debugger/MemoryWidget.cpp')
-rw-r--r--Source/Core/DolphinQt/Debugger/MemoryWidget.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/Source/Core/DolphinQt/Debugger/MemoryWidget.cpp b/Source/Core/DolphinQt/Debugger/MemoryWidget.cpp
index 200219e0b6..d15a99d6ba 100644
--- a/Source/Core/DolphinQt/Debugger/MemoryWidget.cpp
+++ b/Source/Core/DolphinQt/Debugger/MemoryWidget.cpp
@@ -340,13 +340,38 @@ void MemoryWidget::ConnectWidgets()
void MemoryWidget::closeEvent(QCloseEvent*)
{
Settings::Instance().SetMemoryVisible(false);
+ RemoveAfterFrameEventCallback();
}
void MemoryWidget::showEvent(QShowEvent* event)
{
+ RegisterAfterFrameEventCallback();
Update();
}
+void MemoryWidget::hideEvent(QHideEvent* event)
+{
+ RemoveAfterFrameEventCallback();
+}
+
+void MemoryWidget::RegisterAfterFrameEventCallback()
+{
+ m_vi_end_field_event = VIEndFieldEvent::Register([this] { AutoUpdateTable(); }, "MemoryWidget");
+}
+
+void MemoryWidget::RemoveAfterFrameEventCallback()
+{
+ m_vi_end_field_event.reset();
+}
+
+void MemoryWidget::AutoUpdateTable()
+{
+ if (!isVisible())
+ return;
+
+ m_memory_view->UpdateOnFrameEnd();
+}
+
void MemoryWidget::Update()
{
if (!isVisible())