Qt: Allow overrides to be saved before a game is loaded
Vicki Pfau vi@endrift.com
Wed, 20 Sep 2017 22:39:45 -0700
3 files changed,
14 insertions(+),
5 deletions(-)
M
CHANGES
→
CHANGES
@@ -33,6 +33,7 @@ - Qt: Don't rebuild library view if style hasn't changed
- SDL: Fix 2.0.5 build on macOS under some circumstances - GBA: Detect hardware for Pokémon FireRed ROM hacks - CMake: Fix CPack dependencies for libpng 1.6 + - Qt: Allow overrides to be saved before a game is loaded 0.6.0: (2017-07-16) Features:
M
src/platform/qt/OverrideView.cpp
→
src/platform/qt/OverrideView.cpp
@@ -105,7 +105,6 @@ #endif
connect(m_ui.buttonBox, &QDialogButtonBox::accepted, this, &OverrideView::saveOverride); connect(m_ui.buttonBox, &QDialogButtonBox::rejected, this, &QWidget::close); - m_ui.buttonBox->button(QDialogButtonBox::Save)->setEnabled(false); if (controller->isLoaded()) { gameStarted(controller->thread());@@ -149,10 +148,15 @@ #endif
} void OverrideView::saveOverride() { - if (!m_config) { + Override* override = m_controller->override(); + if (!override) { return; } - m_config->saveOverride(*m_controller->override()); + if (m_controller->isLoaded()) { + m_config->saveOverride(*override); + } else { + m_savePending = true; + } } void OverrideView::updateOverrides() {@@ -230,7 +234,6 @@ return;
} m_ui.tabWidget->setEnabled(false); - m_ui.buttonBox->button(QDialogButtonBox::Save)->setEnabled(true); switch (thread->core->platform(thread->core)) { #ifdef M_CORE_GBA@@ -275,13 +278,17 @@ #endif
case PLATFORM_NONE: break; } + + if (m_savePending) { + m_savePending = false; + saveOverride(); + } } void OverrideView::gameStopped() { m_ui.tabWidget->setEnabled(true); m_ui.savetype->setCurrentIndex(0); m_ui.idleLoop->clear(); - m_ui.buttonBox->button(QDialogButtonBox::Save)->setEnabled(false); m_ui.mbc->setCurrentIndex(0); m_ui.gbModel->setCurrentIndex(0);
M
src/platform/qt/OverrideView.h
→
src/platform/qt/OverrideView.h
@@ -44,6 +44,7 @@ Ui::OverrideView m_ui;
GameController* m_controller; ConfigController* m_config; + bool m_savePending = false; #ifdef M_CORE_GB uint32_t m_gbColors[4]{};