mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-03-10 11:37:43 +01:00
MemoryViewWidget: Add auto update toggle.
This commit is contained in:
parent
7b19192134
commit
0b8301ff97
@ -66,6 +66,13 @@ MemoryWidget::MemoryWidget(Core::System& system, QWidget* parent)
|
|||||||
connect(&Settings::Instance(), &Settings::DebugModeToggled, this,
|
connect(&Settings::Instance(), &Settings::DebugModeToggled, this,
|
||||||
[this](bool enabled) { setHidden(!enabled || !Settings::Instance().IsMemoryVisible()); });
|
[this](bool enabled) { setHidden(!enabled || !Settings::Instance().IsMemoryVisible()); });
|
||||||
|
|
||||||
|
connect(this, &QDockWidget::visibilityChanged, this, [this](bool visible) {
|
||||||
|
// Stop auto-update if MemoryView is tabbed out.
|
||||||
|
if (visible && m_auto_update_enabled)
|
||||||
|
RegisterAfterFrameEventCallback();
|
||||||
|
else
|
||||||
|
RemoveAfterFrameEventCallback();
|
||||||
|
});
|
||||||
LoadSettings();
|
LoadSettings();
|
||||||
|
|
||||||
ConnectWidgets();
|
ConnectWidgets();
|
||||||
@ -247,12 +254,34 @@ void MemoryWidget::CreateWidgets()
|
|||||||
// Sidebar top menu
|
// Sidebar top menu
|
||||||
QMenuBar* menubar = new QMenuBar(sidebar);
|
QMenuBar* menubar = new QMenuBar(sidebar);
|
||||||
menubar->setNativeMenuBar(false);
|
menubar->setNativeMenuBar(false);
|
||||||
|
QMenu* menu_views = new QMenu(tr("&View"), menubar);
|
||||||
|
menubar->addMenu(menu_views);
|
||||||
|
|
||||||
QMenu* menu_import = new QMenu(tr("&Import"), menubar);
|
QMenu* menu_import = new QMenu(tr("&Import"), menubar);
|
||||||
menu_import->addAction(tr("&Load file to current address"), this,
|
menu_import->addAction(tr("&Load file to current address"), this,
|
||||||
&MemoryWidget::OnSetValueFromFile);
|
&MemoryWidget::OnSetValueFromFile);
|
||||||
menubar->addMenu(menu_import);
|
menubar->addMenu(menu_import);
|
||||||
|
|
||||||
|
auto* auto_update_action =
|
||||||
|
menu_views->addAction(tr("Auto update memory values"), this, [this](bool checked) {
|
||||||
|
m_auto_update_enabled = checked;
|
||||||
|
if (checked)
|
||||||
|
RegisterAfterFrameEventCallback();
|
||||||
|
else
|
||||||
|
RemoveAfterFrameEventCallback();
|
||||||
|
});
|
||||||
|
auto_update_action->setCheckable(true);
|
||||||
|
auto_update_action->setChecked(true);
|
||||||
|
|
||||||
|
auto* highlight_update_action =
|
||||||
|
menu_views->addAction(tr("Highlight recently changed values"), this,
|
||||||
|
[this](bool checked) { m_memory_view->ToggleHighlights(checked); });
|
||||||
|
highlight_update_action->setCheckable(true);
|
||||||
|
highlight_update_action->setChecked(true);
|
||||||
|
|
||||||
|
menu_views->addAction(tr("Highlight color"), this,
|
||||||
|
[this] { m_memory_view->SetHighlightColor(); });
|
||||||
|
|
||||||
QMenu* menu_export = new QMenu(tr("&Export"), menubar);
|
QMenu* menu_export = new QMenu(tr("&Export"), menubar);
|
||||||
menu_export->addAction(tr("Dump &MRAM"), this, &MemoryWidget::OnDumpMRAM);
|
menu_export->addAction(tr("Dump &MRAM"), this, &MemoryWidget::OnDumpMRAM);
|
||||||
menu_export->addAction(tr("Dump &ExRAM"), this, &MemoryWidget::OnDumpExRAM);
|
menu_export->addAction(tr("Dump &ExRAM"), this, &MemoryWidget::OnDumpExRAM);
|
||||||
@ -342,7 +371,9 @@ void MemoryWidget::closeEvent(QCloseEvent*)
|
|||||||
|
|
||||||
void MemoryWidget::showEvent(QShowEvent* event)
|
void MemoryWidget::showEvent(QShowEvent* event)
|
||||||
{
|
{
|
||||||
RegisterAfterFrameEventCallback();
|
if (m_auto_update_enabled)
|
||||||
|
RegisterAfterFrameEventCallback();
|
||||||
|
|
||||||
Update();
|
Update();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -363,9 +394,6 @@ void MemoryWidget::RemoveAfterFrameEventCallback()
|
|||||||
|
|
||||||
void MemoryWidget::AutoUpdateTable()
|
void MemoryWidget::AutoUpdateTable()
|
||||||
{
|
{
|
||||||
if (!isVisible())
|
|
||||||
return;
|
|
||||||
|
|
||||||
m_memory_view->UpdateOnFrameEnd();
|
m_memory_view->UpdateOnFrameEnd();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -115,4 +115,6 @@ private:
|
|||||||
QRadioButton* m_bp_write_only;
|
QRadioButton* m_bp_write_only;
|
||||||
QCheckBox* m_bp_log_check;
|
QCheckBox* m_bp_log_check;
|
||||||
Common::EventHook m_vi_end_field_event;
|
Common::EventHook m_vi_end_field_event;
|
||||||
|
|
||||||
|
bool m_auto_update_enabled = true;
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user