mirror of https://github.com/mgba-emu/mgba.git
Qt: Allow overrides to be saved before a game is loaded
This commit is contained in:
parent
380bc189c3
commit
1414955da0
1
CHANGES
1
CHANGES
|
@ -33,6 +33,7 @@ Misc:
|
||||||
- SDL: Fix 2.0.5 build on macOS under some circumstances
|
- SDL: Fix 2.0.5 build on macOS under some circumstances
|
||||||
- GBA: Detect hardware for Pokémon FireRed ROM hacks
|
- GBA: Detect hardware for Pokémon FireRed ROM hacks
|
||||||
- CMake: Fix CPack dependencies for libpng 1.6
|
- 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)
|
0.6.0: (2017-07-16)
|
||||||
Features:
|
Features:
|
||||||
|
|
|
@ -105,7 +105,6 @@ OverrideView::OverrideView(GameController* controller, ConfigController* config,
|
||||||
|
|
||||||
connect(m_ui.buttonBox, &QDialogButtonBox::accepted, this, &OverrideView::saveOverride);
|
connect(m_ui.buttonBox, &QDialogButtonBox::accepted, this, &OverrideView::saveOverride);
|
||||||
connect(m_ui.buttonBox, &QDialogButtonBox::rejected, this, &QWidget::close);
|
connect(m_ui.buttonBox, &QDialogButtonBox::rejected, this, &QWidget::close);
|
||||||
m_ui.buttonBox->button(QDialogButtonBox::Save)->setEnabled(false);
|
|
||||||
|
|
||||||
if (controller->isLoaded()) {
|
if (controller->isLoaded()) {
|
||||||
gameStarted(controller->thread());
|
gameStarted(controller->thread());
|
||||||
|
@ -149,10 +148,15 @@ bool OverrideView::eventFilter(QObject* obj, QEvent* event) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void OverrideView::saveOverride() {
|
void OverrideView::saveOverride() {
|
||||||
if (!m_config) {
|
Override* override = m_controller->override();
|
||||||
|
if (!override) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
m_config->saveOverride(*m_controller->override());
|
if (m_controller->isLoaded()) {
|
||||||
|
m_config->saveOverride(*override);
|
||||||
|
} else {
|
||||||
|
m_savePending = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void OverrideView::updateOverrides() {
|
void OverrideView::updateOverrides() {
|
||||||
|
@ -230,7 +234,6 @@ void OverrideView::gameStarted(mCoreThread* thread) {
|
||||||
}
|
}
|
||||||
|
|
||||||
m_ui.tabWidget->setEnabled(false);
|
m_ui.tabWidget->setEnabled(false);
|
||||||
m_ui.buttonBox->button(QDialogButtonBox::Save)->setEnabled(true);
|
|
||||||
|
|
||||||
switch (thread->core->platform(thread->core)) {
|
switch (thread->core->platform(thread->core)) {
|
||||||
#ifdef M_CORE_GBA
|
#ifdef M_CORE_GBA
|
||||||
|
@ -275,13 +278,17 @@ void OverrideView::gameStarted(mCoreThread* thread) {
|
||||||
case PLATFORM_NONE:
|
case PLATFORM_NONE:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (m_savePending) {
|
||||||
|
m_savePending = false;
|
||||||
|
saveOverride();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void OverrideView::gameStopped() {
|
void OverrideView::gameStopped() {
|
||||||
m_ui.tabWidget->setEnabled(true);
|
m_ui.tabWidget->setEnabled(true);
|
||||||
m_ui.savetype->setCurrentIndex(0);
|
m_ui.savetype->setCurrentIndex(0);
|
||||||
m_ui.idleLoop->clear();
|
m_ui.idleLoop->clear();
|
||||||
m_ui.buttonBox->button(QDialogButtonBox::Save)->setEnabled(false);
|
|
||||||
|
|
||||||
m_ui.mbc->setCurrentIndex(0);
|
m_ui.mbc->setCurrentIndex(0);
|
||||||
m_ui.gbModel->setCurrentIndex(0);
|
m_ui.gbModel->setCurrentIndex(0);
|
||||||
|
|
|
@ -44,6 +44,7 @@ private:
|
||||||
|
|
||||||
GameController* m_controller;
|
GameController* m_controller;
|
||||||
ConfigController* m_config;
|
ConfigController* m_config;
|
||||||
|
bool m_savePending = false;
|
||||||
|
|
||||||
#ifdef M_CORE_GB
|
#ifdef M_CORE_GB
|
||||||
uint32_t m_gbColors[4]{};
|
uint32_t m_gbColors[4]{};
|
||||||
|
|
Loading…
Reference in New Issue