Partially revert "Revert "Audit uses of IsRunning and GetState""
This reverts the revert commitbc67fc97c3, except for the changes in BaseConfigLoader.cpp, which caused the bug that made us revert72cf2bdb87. PR 12917 contains an improved change to BaseConfigLoader.cpp, which can be merged (or rejected) independently. A few changes have also been made based on review comments.
This commit is contained in:
@@ -177,6 +177,8 @@ void AchievementSettingsWidget::OnControllerInterfaceConfigure()
|
||||
|
||||
void AchievementSettingsWidget::LoadSettings()
|
||||
{
|
||||
Core::System& system = Core::System::GetInstance();
|
||||
|
||||
bool enabled = Config::Get(Config::RA_ENABLED);
|
||||
bool hardcore_enabled = Config::Get(Config::RA_HARDCORE_ENABLED);
|
||||
bool logged_out = Config::Get(Config::RA_API_TOKEN).empty();
|
||||
@@ -192,27 +194,20 @@ void AchievementSettingsWidget::LoadSettings()
|
||||
SignalBlocking(m_common_password_input)->setVisible(logged_out);
|
||||
SignalBlocking(m_common_password_input)->setEnabled(enabled);
|
||||
SignalBlocking(m_common_login_button)->setVisible(logged_out);
|
||||
SignalBlocking(m_common_login_button)
|
||||
->setEnabled(enabled && !Core::IsRunning(Core::System::GetInstance()));
|
||||
if (enabled && Core::IsRunning(Core::System::GetInstance()))
|
||||
{
|
||||
SignalBlocking(m_common_login_button)->setText(tr("To log in, stop the current emulation."));
|
||||
}
|
||||
else
|
||||
{
|
||||
SignalBlocking(m_common_login_button)->setEnabled(enabled && Core::IsUninitialized(system));
|
||||
if (!enabled || Core::IsUninitialized(system))
|
||||
SignalBlocking(m_common_login_button)->setText(tr("Log In"));
|
||||
}
|
||||
else
|
||||
SignalBlocking(m_common_login_button)->setText(tr("To log in, stop the current emulation."));
|
||||
|
||||
SignalBlocking(m_common_logout_button)->setVisible(!logged_out);
|
||||
SignalBlocking(m_common_logout_button)->setEnabled(enabled);
|
||||
|
||||
SignalBlocking(m_common_hardcore_enabled_input)
|
||||
->setChecked(Config::Get(Config::RA_HARDCORE_ENABLED));
|
||||
auto& system = Core::System::GetInstance();
|
||||
SignalBlocking(m_common_hardcore_enabled_input)
|
||||
->setEnabled(enabled &&
|
||||
(hardcore_enabled || (Core::GetState(system) == Core::State::Uninitialized &&
|
||||
!system.GetMovie().IsPlayingInput())));
|
||||
->setEnabled(enabled && (hardcore_enabled || (Core::IsUninitialized(system) &&
|
||||
!system.GetMovie().IsPlayingInput())));
|
||||
|
||||
SignalBlocking(m_common_unofficial_enabled_input)
|
||||
->setChecked(Config::Get(Config::RA_UNOFFICIAL_ENABLED));
|
||||
|
||||
@@ -159,8 +159,7 @@ void CheatSearchFactoryWidget::OnNewSearchClicked()
|
||||
if (m_standard_address_space->isChecked())
|
||||
{
|
||||
auto& system = Core::System::GetInstance();
|
||||
const Core::State core_state = Core::GetState(system);
|
||||
if (core_state != Core::State::Running && core_state != Core::State::Paused)
|
||||
if (!Core::IsRunning(system))
|
||||
{
|
||||
ModalMessageBox::warning(
|
||||
this, tr("No game running."),
|
||||
|
||||
@@ -102,8 +102,9 @@ void CheatsManager::RefreshCodeTabs(Core::State state)
|
||||
if (state == Core::State::Starting || state == Core::State::Stopping)
|
||||
return;
|
||||
|
||||
const auto& game_id =
|
||||
state != Core::State::Uninitialized ? SConfig::GetInstance().GetGameID() : std::string();
|
||||
const auto& game_id = state == Core::State::Running || state == Core::State::Paused ?
|
||||
SConfig::GetInstance().GetGameID() :
|
||||
std::string();
|
||||
const auto& game_tdb_id = SConfig::GetInstance().GetGameTDBID();
|
||||
const u16 revision = SConfig::GetInstance().GetRevision();
|
||||
|
||||
|
||||
@@ -24,8 +24,9 @@ CheatWarningWidget::CheatWarningWidget(const std::string& game_id, bool restart_
|
||||
|
||||
connect(&Settings::Instance(), &Settings::EnableCheatsChanged, this,
|
||||
[this] { Update(Core::IsRunning(Core::System::GetInstance())); });
|
||||
connect(&Settings::Instance(), &Settings::EmulationStateChanged, this,
|
||||
[this](Core::State state) { Update(state == Core::State::Running); });
|
||||
connect(&Settings::Instance(), &Settings::EmulationStateChanged, this, [this](Core::State state) {
|
||||
Update(state == Core::State::Running || state == Core::State::Paused);
|
||||
});
|
||||
|
||||
Update(Core::IsRunning(Core::System::GetInstance()));
|
||||
}
|
||||
|
||||
@@ -43,8 +43,7 @@ AdvancedWidget::AdvancedWidget(GraphicsWindow* parent)
|
||||
});
|
||||
|
||||
OnBackendChanged();
|
||||
OnEmulationStateChanged(Core::GetState(Core::System::GetInstance()) !=
|
||||
Core::State::Uninitialized);
|
||||
OnEmulationStateChanged(!Core::IsUninitialized(Core::System::GetInstance()));
|
||||
}
|
||||
|
||||
void AdvancedWidget::CreateWidgets()
|
||||
|
||||
@@ -44,8 +44,7 @@ GeneralWidget::GeneralWidget(GraphicsWindow* parent)
|
||||
connect(&Settings::Instance(), &Settings::EmulationStateChanged, this, [this](Core::State state) {
|
||||
OnEmulationStateChanged(state != Core::State::Uninitialized);
|
||||
});
|
||||
OnEmulationStateChanged(Core::GetState(Core::System::GetInstance()) !=
|
||||
Core::State::Uninitialized);
|
||||
OnEmulationStateChanged(!Core::IsUninitialized(Core::System::GetInstance()));
|
||||
}
|
||||
|
||||
void GeneralWidget::CreateWidgets()
|
||||
@@ -361,7 +360,8 @@ void GeneralWidget::OnBackendChanged(const QString& backend_name)
|
||||
const bool supports_adapters = !adapters.empty();
|
||||
|
||||
m_adapter_combo->setCurrentIndex(g_Config.iAdapter);
|
||||
m_adapter_combo->setEnabled(supports_adapters && !Core::IsRunning(Core::System::GetInstance()));
|
||||
m_adapter_combo->setEnabled(supports_adapters &&
|
||||
Core::IsUninitialized(Core::System::GetInstance()));
|
||||
|
||||
static constexpr char TR_ADAPTER_AVAILABLE_DESCRIPTION[] =
|
||||
QT_TR_NOOP("Selects a hardware adapter to use.<br><br>"
|
||||
|
||||
@@ -791,7 +791,7 @@ bool AssemblerWidget::SaveEditor(AsmEditor* editor)
|
||||
|
||||
void AssemblerWidget::OnEmulationStateChanged(Core::State state)
|
||||
{
|
||||
m_inject->setEnabled(state != Core::State::Uninitialized);
|
||||
m_inject->setEnabled(state == Core::State::Running || state == Core::State::Paused);
|
||||
}
|
||||
|
||||
void AssemblerWidget::OnTabClose(int index)
|
||||
|
||||
@@ -257,9 +257,9 @@ void BreakpointWidget::UpdateButtonsEnabled()
|
||||
if (!isVisible())
|
||||
return;
|
||||
|
||||
const bool is_initialised = Core::GetState(m_system) != Core::State::Uninitialized;
|
||||
m_load->setEnabled(is_initialised);
|
||||
m_save->setEnabled(is_initialised);
|
||||
const bool is_running = Core::IsRunning(m_system);
|
||||
m_load->setEnabled(is_running);
|
||||
m_save->setEnabled(is_running);
|
||||
}
|
||||
|
||||
void BreakpointWidget::Update()
|
||||
|
||||
@@ -565,7 +565,7 @@ void CodeViewWidget::OnContextMenu()
|
||||
QMenu* menu = new QMenu(this);
|
||||
menu->setAttribute(Qt::WA_DeleteOnClose, true);
|
||||
|
||||
const bool running = Core::GetState(m_system) != Core::State::Uninitialized;
|
||||
const bool running = Core::IsRunning(m_system);
|
||||
const bool paused = Core::GetState(m_system) == Core::State::Paused;
|
||||
|
||||
const u32 addr = GetContextAddress();
|
||||
|
||||
@@ -258,7 +258,7 @@ void ThreadWidget::Update()
|
||||
|
||||
auto& system = Core::System::GetInstance();
|
||||
const auto emu_state = Core::GetState(system);
|
||||
if (emu_state == Core::State::Stopping)
|
||||
if (emu_state == Core::State::Stopping || emu_state == Core::State::Uninitialized)
|
||||
{
|
||||
m_thread_table->setRowCount(0);
|
||||
UpdateThreadContext({});
|
||||
|
||||
@@ -195,10 +195,11 @@ void WatchWidget::Update()
|
||||
|
||||
QBrush brush = QPalette().brush(QPalette::Text);
|
||||
|
||||
if (!Core::IsRunning(m_system) || !PowerPC::MMU::HostIsRAMAddress(guard, entry.address))
|
||||
const bool core_is_running = Core::IsRunning(m_system);
|
||||
if (!core_is_running || !PowerPC::MMU::HostIsRAMAddress(guard, entry.address))
|
||||
brush.setColor(Qt::red);
|
||||
|
||||
if (Core::IsRunning(m_system))
|
||||
if (core_is_running)
|
||||
{
|
||||
if (PowerPC::MMU::HostIsRAMAddress(guard, entry.address))
|
||||
{
|
||||
|
||||
@@ -59,10 +59,14 @@ FIFOPlayerWindow::FIFOPlayerWindow(FifoPlayer& fifo_player, FifoRecorder& fifo_r
|
||||
});
|
||||
|
||||
connect(&Settings::Instance(), &Settings::EmulationStateChanged, this, [this](Core::State state) {
|
||||
if (state == m_emu_state)
|
||||
return;
|
||||
|
||||
if (state == Core::State::Running && m_emu_state != Core::State::Paused)
|
||||
OnEmulationStarted();
|
||||
else if (state == Core::State::Uninitialized)
|
||||
OnEmulationStopped();
|
||||
|
||||
m_emu_state = state;
|
||||
});
|
||||
|
||||
@@ -376,9 +380,11 @@ void FIFOPlayerWindow::UpdateLimits()
|
||||
|
||||
void FIFOPlayerWindow::UpdateControls()
|
||||
{
|
||||
bool running = Core::IsRunning(Core::System::GetInstance());
|
||||
bool is_recording = m_fifo_recorder.IsRecording();
|
||||
bool is_playing = m_fifo_player.IsPlaying();
|
||||
Core::System& system = Core::System::GetInstance();
|
||||
const bool core_is_uninitialized = Core::IsUninitialized(system);
|
||||
const bool core_is_running = Core::IsRunning(system);
|
||||
const bool is_recording = m_fifo_recorder.IsRecording();
|
||||
const bool is_playing = m_fifo_player.IsPlaying();
|
||||
|
||||
m_frame_range_from->setEnabled(is_playing);
|
||||
m_frame_range_from_label->setEnabled(is_playing);
|
||||
@@ -394,10 +400,10 @@ void FIFOPlayerWindow::UpdateControls()
|
||||
m_frame_record_count_label->setEnabled(enable_frame_record_count);
|
||||
m_frame_record_count->setEnabled(enable_frame_record_count);
|
||||
|
||||
m_load->setEnabled(!running);
|
||||
m_record->setEnabled(running && !is_playing);
|
||||
m_load->setEnabled(core_is_uninitialized);
|
||||
m_record->setEnabled(core_is_running && !is_playing);
|
||||
|
||||
m_stop->setVisible(running && is_recording);
|
||||
m_stop->setVisible(core_is_running && is_recording);
|
||||
m_record->setVisible(!m_stop->isVisible());
|
||||
|
||||
m_save->setEnabled(m_fifo_recorder.IsRecordingDone());
|
||||
|
||||
@@ -436,7 +436,7 @@ void GameList::ShowContextMenu(const QPoint&)
|
||||
// system menu, trigger a refresh.
|
||||
Settings::Instance().NANDRefresh();
|
||||
});
|
||||
perform_disc_update->setEnabled(!Core::IsRunning(system) || !system.IsWii());
|
||||
perform_disc_update->setEnabled(Core::IsUninitialized(system) || !system.IsWii());
|
||||
}
|
||||
|
||||
if (!is_mod_descriptor && platform == DiscIO::Platform::WiiWAD)
|
||||
@@ -449,10 +449,10 @@ void GameList::ShowContextMenu(const QPoint&)
|
||||
|
||||
for (QAction* a : {wad_install_action, wad_uninstall_action})
|
||||
{
|
||||
a->setEnabled(!Core::IsRunning(system));
|
||||
a->setEnabled(Core::IsUninitialized(system));
|
||||
menu->addAction(a);
|
||||
}
|
||||
if (!Core::IsRunning(system))
|
||||
if (Core::IsUninitialized(system))
|
||||
wad_uninstall_action->setEnabled(WiiUtils::IsTitleInstalled(game->GetTitleID()));
|
||||
|
||||
connect(&Settings::Instance(), &Settings::EmulationStateChanged, menu,
|
||||
@@ -473,8 +473,8 @@ void GameList::ShowContextMenu(const QPoint&)
|
||||
QAction* export_wii_save =
|
||||
menu->addAction(tr("Export Wii Save"), this, &GameList::ExportWiiSave);
|
||||
|
||||
open_wii_save_folder->setEnabled(!Core::IsRunning(system));
|
||||
export_wii_save->setEnabled(!Core::IsRunning(system));
|
||||
open_wii_save_folder->setEnabled(Core::IsUninitialized(system));
|
||||
export_wii_save->setEnabled(Core::IsUninitialized(system));
|
||||
|
||||
menu->addSeparator();
|
||||
}
|
||||
@@ -531,7 +531,7 @@ void GameList::ShowContextMenu(const QPoint&)
|
||||
connect(&Settings::Instance(), &Settings::EmulationStateChanged, menu, [=](Core::State state) {
|
||||
netplay_host->setEnabled(state == Core::State::Uninitialized);
|
||||
});
|
||||
netplay_host->setEnabled(!Core::IsRunning(system));
|
||||
netplay_host->setEnabled(Core::IsUninitialized(system));
|
||||
|
||||
menu->addAction(netplay_host);
|
||||
}
|
||||
|
||||
@@ -197,7 +197,7 @@ void HotkeyScheduler::Run()
|
||||
emit OpenAchievements();
|
||||
#endif // USE_RETRO_ACHIEVEMENTS
|
||||
|
||||
if (!Core::IsRunning(system))
|
||||
if (Core::IsUninitialized(system))
|
||||
{
|
||||
// Only check for Play Recording hotkey when no game is running
|
||||
if (IsHotkey(HK_PLAY_RECORDING))
|
||||
|
||||
@@ -910,7 +910,7 @@ void MainWindow::OnStopComplete()
|
||||
|
||||
bool MainWindow::RequestStop()
|
||||
{
|
||||
if (!Core::IsRunning(Core::System::GetInstance()))
|
||||
if (Core::IsUninitialized(Core::System::GetInstance()))
|
||||
{
|
||||
Core::QueueHostJob([this](Core::System&) { OnStopComplete(); }, true);
|
||||
return true;
|
||||
@@ -1118,7 +1118,7 @@ void MainWindow::StartGame(std::unique_ptr<BootParameters>&& parameters)
|
||||
}
|
||||
|
||||
// If we're running, only start a new game once we've stopped the last.
|
||||
if (Core::GetState(Core::System::GetInstance()) != Core::State::Uninitialized)
|
||||
if (!Core::IsUninitialized(Core::System::GetInstance()))
|
||||
{
|
||||
if (!RequestStop())
|
||||
return;
|
||||
@@ -1542,7 +1542,7 @@ void MainWindow::NetPlayInit()
|
||||
|
||||
bool MainWindow::NetPlayJoin()
|
||||
{
|
||||
if (Core::IsRunning(Core::System::GetInstance()))
|
||||
if (!Core::IsUninitialized(Core::System::GetInstance()))
|
||||
{
|
||||
ModalMessageBox::critical(nullptr, tr("Error"),
|
||||
tr("Can't start a NetPlay Session while a game is still running!"));
|
||||
@@ -1609,7 +1609,7 @@ bool MainWindow::NetPlayJoin()
|
||||
|
||||
bool MainWindow::NetPlayHost(const UICommon::GameFile& game)
|
||||
{
|
||||
if (Core::IsRunning(Core::System::GetInstance()))
|
||||
if (!Core::IsUninitialized(Core::System::GetInstance()))
|
||||
{
|
||||
ModalMessageBox::critical(nullptr, tr("Error"),
|
||||
tr("Can't start a NetPlay Session while a game is still running!"));
|
||||
@@ -1856,7 +1856,7 @@ void MainWindow::OnImportNANDBackup()
|
||||
|
||||
result.wait();
|
||||
|
||||
m_menu_bar->UpdateToolsMenu(Core::IsRunning(Core::System::GetInstance()));
|
||||
m_menu_bar->UpdateToolsMenu(Core::State::Uninitialized);
|
||||
}
|
||||
|
||||
void MainWindow::OnPlayRecording()
|
||||
@@ -1888,7 +1888,8 @@ void MainWindow::OnStartRecording()
|
||||
{
|
||||
auto& system = Core::System::GetInstance();
|
||||
auto& movie = system.GetMovie();
|
||||
if (Core::GetState(system) == Core::State::Starting || movie.IsRecordingInput() ||
|
||||
if (Core::GetState(system) == Core::State::Starting ||
|
||||
Core::GetState(system) == Core::State::Stopping || movie.IsRecordingInput() ||
|
||||
movie.IsPlayingInput())
|
||||
{
|
||||
return;
|
||||
@@ -1920,7 +1921,7 @@ void MainWindow::OnStartRecording()
|
||||
{
|
||||
emit RecordingStatusChanged(true);
|
||||
|
||||
if (!Core::IsRunning(system))
|
||||
if (Core::IsUninitialized(system))
|
||||
Play();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -138,9 +138,11 @@ void MenuBar::OnEmulationStateChanged(Core::State state)
|
||||
m_recording_stop->setEnabled(false);
|
||||
m_recording_export->setEnabled(false);
|
||||
}
|
||||
m_recording_play->setEnabled(m_game_selected && !running);
|
||||
m_recording_play->setEnabled(m_game_selected && !running && !hardcore);
|
||||
m_recording_start->setEnabled((m_game_selected || running) &&
|
||||
const bool can_start_from_boot = m_game_selected && state == Core::State::Uninitialized;
|
||||
const bool can_start_from_savestate =
|
||||
state == Core::State::Running || state == Core::State::Paused;
|
||||
m_recording_play->setEnabled(can_start_from_boot && !hardcore);
|
||||
m_recording_start->setEnabled((can_start_from_boot || can_start_from_savestate) &&
|
||||
!Core::System::GetInstance().GetMovie().IsPlayingInput());
|
||||
|
||||
// JIT
|
||||
@@ -159,7 +161,7 @@ void MenuBar::OnEmulationStateChanged(Core::State state)
|
||||
m_symbols->setEnabled(running);
|
||||
|
||||
UpdateStateSlotMenu();
|
||||
UpdateToolsMenu(running);
|
||||
UpdateToolsMenu(state);
|
||||
|
||||
OnDebugModeToggled(Settings::Instance().IsDebugModeEnabled());
|
||||
}
|
||||
@@ -297,7 +299,8 @@ void MenuBar::AddToolsMenu()
|
||||
|
||||
m_boot_sysmenu->setEnabled(false);
|
||||
|
||||
connect(&Settings::Instance(), &Settings::NANDRefresh, this, [this] { UpdateToolsMenu(false); });
|
||||
connect(&Settings::Instance(), &Settings::NANDRefresh, this,
|
||||
[this] { UpdateToolsMenu(Core::State::Uninitialized); });
|
||||
|
||||
m_perform_online_update_menu = tools_menu->addMenu(tr("Perform Online System Update"));
|
||||
m_perform_online_update_for_current_region = m_perform_online_update_menu->addAction(
|
||||
@@ -1051,20 +1054,23 @@ void MenuBar::AddSymbolsMenu()
|
||||
m_symbols->addAction(tr("&Patch HLE Functions"), this, &MenuBar::PatchHLEFunctions);
|
||||
}
|
||||
|
||||
void MenuBar::UpdateToolsMenu(bool emulation_started)
|
||||
void MenuBar::UpdateToolsMenu(const Core::State state)
|
||||
{
|
||||
m_boot_sysmenu->setEnabled(!emulation_started);
|
||||
m_perform_online_update_menu->setEnabled(!emulation_started);
|
||||
m_ntscj_ipl->setEnabled(!emulation_started && File::Exists(Config::GetBootROMPath(JAP_DIR)));
|
||||
m_ntscu_ipl->setEnabled(!emulation_started && File::Exists(Config::GetBootROMPath(USA_DIR)));
|
||||
m_pal_ipl->setEnabled(!emulation_started && File::Exists(Config::GetBootROMPath(EUR_DIR)));
|
||||
m_wad_install_action->setEnabled(!emulation_started);
|
||||
m_import_backup->setEnabled(!emulation_started);
|
||||
m_check_nand->setEnabled(!emulation_started);
|
||||
m_import_wii_save->setEnabled(!emulation_started);
|
||||
m_export_wii_saves->setEnabled(!emulation_started);
|
||||
const bool is_uninitialized = state == Core::State::Uninitialized;
|
||||
const bool is_running = state == Core::State::Running || state == Core::State::Paused;
|
||||
|
||||
if (!emulation_started)
|
||||
m_boot_sysmenu->setEnabled(is_uninitialized);
|
||||
m_perform_online_update_menu->setEnabled(is_uninitialized);
|
||||
m_ntscj_ipl->setEnabled(is_uninitialized && File::Exists(Config::GetBootROMPath(JAP_DIR)));
|
||||
m_ntscu_ipl->setEnabled(is_uninitialized && File::Exists(Config::GetBootROMPath(USA_DIR)));
|
||||
m_pal_ipl->setEnabled(is_uninitialized && File::Exists(Config::GetBootROMPath(EUR_DIR)));
|
||||
m_wad_install_action->setEnabled(is_uninitialized);
|
||||
m_import_backup->setEnabled(is_uninitialized);
|
||||
m_check_nand->setEnabled(is_uninitialized);
|
||||
m_import_wii_save->setEnabled(is_uninitialized);
|
||||
m_export_wii_saves->setEnabled(is_uninitialized);
|
||||
|
||||
if (is_uninitialized)
|
||||
{
|
||||
IOS::HLE::Kernel ios;
|
||||
const auto tmd = ios.GetESCore().FindInstalledTMD(Titles::SYSTEM_MENU);
|
||||
@@ -1087,7 +1093,7 @@ void MenuBar::UpdateToolsMenu(bool emulation_started)
|
||||
}
|
||||
|
||||
const auto bt = WiiUtils::GetBluetoothEmuDevice();
|
||||
const bool enable_wiimotes = emulation_started && bt != nullptr;
|
||||
const bool enable_wiimotes = is_running && bt != nullptr;
|
||||
|
||||
for (std::size_t i = 0; i < m_wii_remotes.size(); i++)
|
||||
{
|
||||
@@ -1258,16 +1264,20 @@ void MenuBar::OnSelectionChanged(std::shared_ptr<const UICommon::GameFile> game_
|
||||
m_game_selected = !!game_file;
|
||||
|
||||
auto& system = Core::System::GetInstance();
|
||||
const bool core_is_running = Core::IsRunning(system);
|
||||
m_recording_play->setEnabled(m_game_selected && !core_is_running);
|
||||
m_recording_start->setEnabled((m_game_selected || core_is_running) &&
|
||||
const bool can_start_from_boot = m_game_selected && Core::IsUninitialized(system);
|
||||
const bool can_start_from_savestate = Core::IsRunning(system);
|
||||
m_recording_play->setEnabled(can_start_from_boot);
|
||||
m_recording_start->setEnabled((can_start_from_boot || can_start_from_savestate) &&
|
||||
!system.GetMovie().IsPlayingInput());
|
||||
}
|
||||
|
||||
void MenuBar::OnRecordingStatusChanged(bool recording)
|
||||
{
|
||||
auto& system = Core::System::GetInstance();
|
||||
m_recording_start->setEnabled(!recording && (m_game_selected || Core::IsRunning(system)));
|
||||
const bool can_start_from_boot = m_game_selected && Core::IsUninitialized(system);
|
||||
const bool can_start_from_savestate = Core::IsRunning(system);
|
||||
|
||||
m_recording_start->setEnabled(!recording && (can_start_from_boot || can_start_from_savestate));
|
||||
m_recording_stop->setEnabled(recording);
|
||||
m_recording_export->setEnabled(recording);
|
||||
}
|
||||
|
||||
@@ -43,7 +43,7 @@ public:
|
||||
|
||||
explicit MenuBar(QWidget* parent = nullptr);
|
||||
|
||||
void UpdateToolsMenu(bool emulation_started);
|
||||
void UpdateToolsMenu(Core::State state);
|
||||
|
||||
QMenu* GetListColumnsMenu() const { return m_cols_menu; }
|
||||
|
||||
|
||||
@@ -806,9 +806,11 @@ void NetPlayDialog::DisplayMessage(const QString& msg, const std::string& color,
|
||||
QColor c(color.empty() ? QStringLiteral("white") : QString::fromStdString(color));
|
||||
|
||||
if (g_ActiveConfig.bShowNetPlayMessages && Core::IsRunning(Core::System::GetInstance()))
|
||||
{
|
||||
g_netplay_chat_ui->AppendChat(msg.toStdString(),
|
||||
{static_cast<float>(c.redF()), static_cast<float>(c.greenF()),
|
||||
static_cast<float>(c.blueF())});
|
||||
}
|
||||
}
|
||||
|
||||
void NetPlayDialog::AppendChat(const std::string& msg)
|
||||
|
||||
@@ -239,10 +239,11 @@ void AdvancedPane::ConnectLayout()
|
||||
|
||||
void AdvancedPane::Update()
|
||||
{
|
||||
const bool running = Core::GetState(Core::System::GetInstance()) != Core::State::Uninitialized;
|
||||
const bool is_uninitialized = Core::IsUninitialized(Core::System::GetInstance());
|
||||
const bool enable_cpu_clock_override_widgets = Config::Get(Config::MAIN_OVERCLOCK_ENABLE);
|
||||
const bool enable_ram_override_widgets = Config::Get(Config::MAIN_RAM_OVERRIDE_ENABLE);
|
||||
const bool enable_custom_rtc_widgets = Config::Get(Config::MAIN_CUSTOM_RTC_ENABLE) && !running;
|
||||
const bool enable_custom_rtc_widgets =
|
||||
Config::Get(Config::MAIN_CUSTOM_RTC_ENABLE) && is_uninitialized;
|
||||
|
||||
const auto available_cpu_cores = PowerPC::AvailableCPUCores();
|
||||
const auto cpu_core = Config::Get(Config::MAIN_CPU_CORE);
|
||||
@@ -251,9 +252,9 @@ void AdvancedPane::Update()
|
||||
if (available_cpu_cores[i] == cpu_core)
|
||||
m_cpu_emulation_engine_combobox->setCurrentIndex(int(i));
|
||||
}
|
||||
m_cpu_emulation_engine_combobox->setEnabled(!running);
|
||||
m_enable_mmu_checkbox->setEnabled(!running);
|
||||
m_pause_on_panic_checkbox->setEnabled(!running);
|
||||
m_cpu_emulation_engine_combobox->setEnabled(is_uninitialized);
|
||||
m_enable_mmu_checkbox->setEnabled(is_uninitialized);
|
||||
m_pause_on_panic_checkbox->setEnabled(is_uninitialized);
|
||||
|
||||
{
|
||||
QFont bf = font();
|
||||
@@ -282,11 +283,11 @@ void AdvancedPane::Update()
|
||||
return tr("%1% (%2 MHz)").arg(QString::number(percent), QString::number(clock));
|
||||
}());
|
||||
|
||||
m_ram_override_checkbox->setEnabled(!running);
|
||||
m_ram_override_checkbox->setEnabled(is_uninitialized);
|
||||
SignalBlocking(m_ram_override_checkbox)->setChecked(enable_ram_override_widgets);
|
||||
|
||||
m_mem1_override_slider->setEnabled(enable_ram_override_widgets && !running);
|
||||
m_mem1_override_slider_label->setEnabled(enable_ram_override_widgets && !running);
|
||||
m_mem1_override_slider->setEnabled(enable_ram_override_widgets && is_uninitialized);
|
||||
m_mem1_override_slider_label->setEnabled(enable_ram_override_widgets && is_uninitialized);
|
||||
|
||||
{
|
||||
const QSignalBlocker blocker(m_mem1_override_slider);
|
||||
@@ -299,8 +300,8 @@ void AdvancedPane::Update()
|
||||
return tr("%1 MB (MEM1)").arg(QString::number(mem1_size));
|
||||
}());
|
||||
|
||||
m_mem2_override_slider->setEnabled(enable_ram_override_widgets && !running);
|
||||
m_mem2_override_slider_label->setEnabled(enable_ram_override_widgets && !running);
|
||||
m_mem2_override_slider->setEnabled(enable_ram_override_widgets && is_uninitialized);
|
||||
m_mem2_override_slider_label->setEnabled(enable_ram_override_widgets && is_uninitialized);
|
||||
|
||||
{
|
||||
const QSignalBlocker blocker(m_mem2_override_slider);
|
||||
@@ -313,7 +314,7 @@ void AdvancedPane::Update()
|
||||
return tr("%1 MB (MEM2)").arg(QString::number(mem2_size));
|
||||
}());
|
||||
|
||||
m_custom_rtc_checkbox->setEnabled(!running);
|
||||
m_custom_rtc_checkbox->setEnabled(is_uninitialized);
|
||||
SignalBlocking(m_custom_rtc_checkbox)->setChecked(Config::Get(Config::MAIN_CUSTOM_RTC_ENABLE));
|
||||
|
||||
QDateTime initial_date_time;
|
||||
|
||||
@@ -40,8 +40,7 @@ AudioPane::AudioPane()
|
||||
OnEmulationStateChanged(state != Core::State::Uninitialized);
|
||||
});
|
||||
|
||||
OnEmulationStateChanged(Core::GetState(Core::System::GetInstance()) !=
|
||||
Core::State::Uninitialized);
|
||||
OnEmulationStateChanged(!Core::IsUninitialized(Core::System::GetInstance()));
|
||||
}
|
||||
|
||||
void AudioPane::CreateWidgets()
|
||||
|
||||
@@ -93,8 +93,7 @@ WiiPane::WiiPane(QWidget* parent) : QWidget(parent)
|
||||
LoadConfig();
|
||||
ConnectLayout();
|
||||
ValidateSelectionState();
|
||||
OnEmulationStateChanged(Core::GetState(Core::System::GetInstance()) !=
|
||||
Core::State::Uninitialized);
|
||||
OnEmulationStateChanged(!Core::IsUninitialized(Core::System::GetInstance()));
|
||||
}
|
||||
|
||||
void WiiPane::CreateLayout()
|
||||
|
||||
Reference in New Issue
Block a user