mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-22 22:00:39 -06:00
FifoPlayer: Store early memory updates option in the config
Now, early memory updates is persisted across runs, and can be toggled before starting a fifolog.
This commit is contained in:
@ -24,6 +24,7 @@
|
||||
#include "Core/FifoPlayer/FifoPlayer.h"
|
||||
#include "Core/FifoPlayer/FifoRecorder.h"
|
||||
|
||||
#include "DolphinQt/Config/ToolTipControls/ToolTipCheckBox.h"
|
||||
#include "DolphinQt/FIFO/FIFOAnalyzer.h"
|
||||
#include "DolphinQt/QtUtils/DolphinFileDialog.h"
|
||||
#include "DolphinQt/QtUtils/ModalMessageBox.h"
|
||||
@ -38,6 +39,7 @@ FIFOPlayerWindow::FIFOPlayerWindow(QWidget* parent) : QWidget(parent)
|
||||
|
||||
CreateWidgets();
|
||||
ConnectWidgets();
|
||||
AddDescriptions();
|
||||
|
||||
UpdateInfo();
|
||||
|
||||
@ -116,7 +118,7 @@ void FIFOPlayerWindow::CreateWidgets()
|
||||
// Playback Options
|
||||
auto* playback_group = new QGroupBox(tr("Playback Options"));
|
||||
auto* playback_layout = new QGridLayout;
|
||||
m_early_memory_updates = new QCheckBox(tr("Early Memory Updates"));
|
||||
m_early_memory_updates = new ToolTipCheckBox(tr("Early Memory Updates"));
|
||||
|
||||
playback_layout->addWidget(object_range_group, 0, 0);
|
||||
playback_layout->addWidget(frame_range_group, 0, 1);
|
||||
@ -166,6 +168,11 @@ void FIFOPlayerWindow::CreateWidgets()
|
||||
setLayout(tab_layout);
|
||||
}
|
||||
|
||||
void FIFOPlayerWindow::LoadSettings()
|
||||
{
|
||||
m_early_memory_updates->setChecked(Config::Get(Config::MAIN_FIFOPLAYER_EARLY_MEMORY_UPDATES));
|
||||
}
|
||||
|
||||
void FIFOPlayerWindow::ConnectWidgets()
|
||||
{
|
||||
connect(m_load, &QPushButton::clicked, this, &FIFOPlayerWindow::LoadRecording);
|
||||
@ -173,8 +180,8 @@ void FIFOPlayerWindow::ConnectWidgets()
|
||||
connect(m_record, &QPushButton::clicked, this, &FIFOPlayerWindow::StartRecording);
|
||||
connect(m_stop, &QPushButton::clicked, this, &FIFOPlayerWindow::StopRecording);
|
||||
connect(m_button_box, &QDialogButtonBox::rejected, this, &FIFOPlayerWindow::hide);
|
||||
connect(m_early_memory_updates, &QCheckBox::toggled, this,
|
||||
&FIFOPlayerWindow::OnEarlyMemoryUpdatesChanged);
|
||||
connect(m_early_memory_updates, &QCheckBox::toggled, this, &FIFOPlayerWindow::OnConfigChanged);
|
||||
|
||||
connect(m_frame_range_from, qOverload<int>(&QSpinBox::valueChanged), this,
|
||||
&FIFOPlayerWindow::OnLimitsChanged);
|
||||
connect(m_frame_range_to, qOverload<int>(&QSpinBox::valueChanged), this,
|
||||
@ -186,6 +193,16 @@ void FIFOPlayerWindow::ConnectWidgets()
|
||||
&FIFOPlayerWindow::OnLimitsChanged);
|
||||
}
|
||||
|
||||
void FIFOPlayerWindow::AddDescriptions()
|
||||
{
|
||||
static const char TR_MEMORY_UPDATES_DESCRIPTION[] = QT_TR_NOOP(
|
||||
"If enabled, then all memory updates happen at once before the first frame.<br><br>"
|
||||
"Causes issues with many fifologs, but can be useful for testing.<br><br>"
|
||||
"<dolphin_emphasis>If unsure, leave this unchecked.</dolphin_emphasis>");
|
||||
|
||||
m_early_memory_updates->SetDescription(tr(TR_MEMORY_UPDATES_DESCRIPTION));
|
||||
}
|
||||
|
||||
void FIFOPlayerWindow::LoadRecording()
|
||||
{
|
||||
QString path = DolphinFileDialog::getOpenFileName(this, tr("Open FIFO log"), QString(),
|
||||
@ -324,9 +341,10 @@ void FIFOPlayerWindow::OnFIFOLoaded()
|
||||
m_analyzer->Update();
|
||||
}
|
||||
|
||||
void FIFOPlayerWindow::OnEarlyMemoryUpdatesChanged(bool enabled)
|
||||
void FIFOPlayerWindow::OnConfigChanged()
|
||||
{
|
||||
FifoPlayer::GetInstance().SetEarlyMemoryUpdates(enabled);
|
||||
Config::SetBase(Config::MAIN_FIFOPLAYER_EARLY_MEMORY_UPDATES,
|
||||
m_early_memory_updates->isChecked());
|
||||
}
|
||||
|
||||
void FIFOPlayerWindow::OnLimitsChanged()
|
||||
@ -363,8 +381,6 @@ void FIFOPlayerWindow::UpdateControls()
|
||||
m_object_range_to->setEnabled(is_playing);
|
||||
m_object_range_to_label->setEnabled(is_playing);
|
||||
|
||||
m_early_memory_updates->setEnabled(is_playing);
|
||||
|
||||
bool enable_frame_record_count = !is_playing && !is_recording;
|
||||
|
||||
m_frame_record_count_label->setEnabled(enable_frame_record_count);
|
||||
|
Reference in New Issue
Block a user