Add toggles for Speedrun timer + Achievement badges visibility

Added some new visibility toggles so players can choose what to show (or hide) during their RetroAchievements runs:

Toggle for the Speedrun Leaderboards timer

Toggle for Achievement Challenge badges
This commit is contained in:
fizzlepicklepop
2025-10-07 22:45:04 -04:00
parent 03ef9b4995
commit 7ed61c50a1
6 changed files with 68 additions and 5 deletions
@@ -109,6 +109,16 @@ void AchievementSettingsWidget::CreateLayout()
"submitted to the server.<br><br>If this is on at game launch, it will not be turned off "
"until game close, because a RetroAchievements session will not be created.<br><br>If "
"this is off at game launch, it can be toggled freely while the game is running."));
m_common_leaderboard_tracker_enabled_input = new ToolTipCheckBox(tr("Show Leaderboard Tracker"));
m_common_leaderboard_tracker_enabled_input->SetDescription(
tr("Show the on-screen RetroAchievements leaderboard tracker.<br><br>This appears in the "
"bottom-right corner while competing in a leaderboard."));
m_common_challenge_indicators_enabled_input =
new ToolTipCheckBox(tr("Show Challenge Indicators"));
m_common_challenge_indicators_enabled_input->SetDescription(
tr("Show the on-screen RetroAchievements challenge indicators.<br><br>These appear as "
"achievement badges in the bottom-right corner while tracking progress within a "
"challenge."));
m_common_discord_presence_enabled_input = new ToolTipCheckBox(tr("Enable Discord Presence"));
m_common_discord_presence_enabled_input->SetDescription(
tr("Use RetroAchievements rich presence in your Discord status.<br><br>Show Current Game on "
@@ -138,6 +148,8 @@ void AchievementSettingsWidget::CreateLayout()
#ifdef USE_DISCORD_PRESENCE
m_common_layout->addWidget(m_common_discord_presence_enabled_input);
#endif // USE_DISCORD_PRESENCE
m_common_layout->addWidget(m_common_leaderboard_tracker_enabled_input);
m_common_layout->addWidget(m_common_challenge_indicators_enabled_input);
m_common_layout->addWidget(m_common_progress_enabled_input);
m_common_layout->setAlignment(Qt::AlignTop);
@@ -158,6 +170,10 @@ void AchievementSettingsWidget::ConnectWidgets()
&AchievementSettingsWidget::ToggleEncore);
connect(m_common_spectator_enabled_input, &QCheckBox::toggled, this,
&AchievementSettingsWidget::ToggleSpectator);
connect(m_common_leaderboard_tracker_enabled_input, &QCheckBox::toggled, this,
&AchievementSettingsWidget::ToggleLeaderboardTracker);
connect(m_common_challenge_indicators_enabled_input, &QCheckBox::toggled, this,
&AchievementSettingsWidget::ToggleChallengeIndicators);
connect(m_common_discord_presence_enabled_input, &QCheckBox::toggled, this,
&AchievementSettingsWidget::ToggleDiscordPresence);
connect(m_common_progress_enabled_input, &QCheckBox::toggled, this,
@@ -217,6 +233,14 @@ void AchievementSettingsWidget::LoadSettings()
->setChecked(Config::Get(Config::RA_SPECTATOR_ENABLED));
SignalBlocking(m_common_spectator_enabled_input)->setEnabled(enabled);
SignalBlocking(m_common_leaderboard_tracker_enabled_input)
->setChecked(Config::Get(Config::RA_LEADERBOARD_TRACKER_ENABLED));
SignalBlocking(m_common_leaderboard_tracker_enabled_input)->setEnabled(enabled);
SignalBlocking(m_common_challenge_indicators_enabled_input)
->setChecked(Config::Get(Config::RA_CHALLENGE_INDICATORS_ENABLED));
SignalBlocking(m_common_challenge_indicators_enabled_input)->setEnabled(enabled);
SignalBlocking(m_common_discord_presence_enabled_input)
->setChecked(Config::Get(Config::RA_DISCORD_PRESENCE_ENABLED));
SignalBlocking(m_common_discord_presence_enabled_input)
@@ -239,6 +263,10 @@ void AchievementSettingsWidget::SaveSettings()
Config::SetBaseOrCurrent(Config::RA_ENCORE_ENABLED, m_common_encore_enabled_input->isChecked());
Config::SetBaseOrCurrent(Config::RA_SPECTATOR_ENABLED,
m_common_spectator_enabled_input->isChecked());
Config::SetBaseOrCurrent(Config::RA_LEADERBOARD_TRACKER_ENABLED,
m_common_leaderboard_tracker_enabled_input->isChecked());
Config::SetBaseOrCurrent(Config::RA_CHALLENGE_INDICATORS_ENABLED,
m_common_challenge_indicators_enabled_input->isChecked());
Config::SetBaseOrCurrent(Config::RA_DISCORD_PRESENCE_ENABLED,
m_common_discord_presence_enabled_input->isChecked());
Config::SetBaseOrCurrent(Config::RA_PROGRESS_ENABLED,
@@ -310,6 +338,16 @@ void AchievementSettingsWidget::ToggleSpectator()
AchievementManager::GetInstance().SetSpectatorMode();
}
void AchievementSettingsWidget::ToggleLeaderboardTracker()
{
SaveSettings();
}
void AchievementSettingsWidget::ToggleChallengeIndicators()
{
SaveSettings();
}
void AchievementSettingsWidget::ToggleDiscordPresence()
{
SaveSettings();
@@ -36,6 +36,8 @@ private:
void ToggleUnofficial();
void ToggleEncore();
void ToggleSpectator();
void ToggleLeaderboardTracker();
void ToggleChallengeIndicators();
void ToggleDiscordPresence();
void ToggleProgress();
@@ -53,6 +55,8 @@ private:
ToolTipCheckBox* m_common_unofficial_enabled_input;
ToolTipCheckBox* m_common_encore_enabled_input;
ToolTipCheckBox* m_common_spectator_enabled_input;
ToolTipCheckBox* m_common_leaderboard_tracker_enabled_input;
ToolTipCheckBox* m_common_challenge_indicators_enabled_input;
ToolTipCheckBox* m_common_discord_presence_enabled_input;
ToolTipCheckBox* m_common_progress_enabled_input;
};