mirror of
https://github.com/stenzek/duckstation.git
synced 2025-06-08 04:25:37 +00:00
FullscreenUI: Add option to start/open to game list
This commit is contained in:
parent
3d0f038697
commit
6e27b8ab91
@ -253,6 +253,7 @@ static void DestroyResources();
|
|||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
// Landing
|
// Landing
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
|
static bool ShouldOpenToGameList();
|
||||||
static void SwitchToLanding();
|
static void SwitchToLanding();
|
||||||
static ImGuiFullscreen::FileSelectorFilters GetDiscImageFilters();
|
static ImGuiFullscreen::FileSelectorFilters GetDiscImageFilters();
|
||||||
static ImGuiFullscreen::FileSelectorFilters GetImageFilters();
|
static ImGuiFullscreen::FileSelectorFilters GetImageFilters();
|
||||||
@ -678,11 +679,8 @@ bool FullscreenUI::Initialize()
|
|||||||
s_state.initialized = true;
|
s_state.initialized = true;
|
||||||
s_state.hotkey_list_cache = InputManager::GetHotkeyList();
|
s_state.hotkey_list_cache = InputManager::GetHotkeyList();
|
||||||
|
|
||||||
if (s_state.current_main_window == MainWindowType::None && !GPUThread::HasGPUBackend() &&
|
const bool open_main_window = (s_state.current_main_window == MainWindowType::None && !GPUThread::HasGPUBackend() &&
|
||||||
!GPUThread::IsGPUBackendRequested())
|
!GPUThread::IsGPUBackendRequested());
|
||||||
{
|
|
||||||
SwitchToLanding();
|
|
||||||
}
|
|
||||||
|
|
||||||
// in case we open the pause menu while the game is running
|
// in case we open the pause menu while the game is running
|
||||||
if (GPUThread::HasGPUBackend())
|
if (GPUThread::HasGPUBackend())
|
||||||
@ -697,7 +695,10 @@ bool FullscreenUI::Initialize()
|
|||||||
}
|
}
|
||||||
|
|
||||||
LoadBackground();
|
LoadBackground();
|
||||||
UpdateRunIdleState();
|
|
||||||
|
if (open_main_window)
|
||||||
|
ReturnToMainWindow();
|
||||||
|
|
||||||
ForceKeyNavEnabled();
|
ForceKeyNavEnabled();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -778,8 +779,7 @@ void FullscreenUI::OnSystemDestroyed()
|
|||||||
s_state.pause_menu_was_open = false;
|
s_state.pause_menu_was_open = false;
|
||||||
s_state.was_paused_on_quick_menu_open = false;
|
s_state.was_paused_on_quick_menu_open = false;
|
||||||
s_state.current_pause_submenu = PauseSubMenu::None;
|
s_state.current_pause_submenu = PauseSubMenu::None;
|
||||||
SwitchToLanding();
|
ReturnToMainWindow();
|
||||||
UpdateRunIdleState();
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1079,7 +1079,9 @@ void FullscreenUI::ReturnToPreviousWindow()
|
|||||||
void FullscreenUI::ReturnToMainWindow()
|
void FullscreenUI::ReturnToMainWindow()
|
||||||
{
|
{
|
||||||
ClosePauseMenu();
|
ClosePauseMenu();
|
||||||
s_state.current_main_window = GPUThread::HasGPUBackend() ? MainWindowType::None : MainWindowType::Landing;
|
s_state.current_main_window = GPUThread::HasGPUBackend() ?
|
||||||
|
MainWindowType::None :
|
||||||
|
(ShouldOpenToGameList() ? MainWindowType::GameList : MainWindowType::Landing);
|
||||||
UpdateRunIdleState();
|
UpdateRunIdleState();
|
||||||
FixStateIfPaused();
|
FixStateIfPaused();
|
||||||
}
|
}
|
||||||
@ -1743,6 +1745,11 @@ void FullscreenUI::DrawBackground()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool FullscreenUI::ShouldOpenToGameList()
|
||||||
|
{
|
||||||
|
return Host::GetBaseBoolSettingValue("Main", "FullscreenUIOpenToGameList", false);
|
||||||
|
}
|
||||||
|
|
||||||
void FullscreenUI::SwitchToLanding()
|
void FullscreenUI::SwitchToLanding()
|
||||||
{
|
{
|
||||||
s_state.current_main_window = MainWindowType::Landing;
|
s_state.current_main_window = MainWindowType::Landing;
|
||||||
@ -3802,6 +3809,11 @@ void FullscreenUI::DrawInterfaceSettingsPage()
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DrawToggleSetting(
|
||||||
|
bsi, FSUI_ICONSTR(ICON_FA_LIST, "Open To Game List"),
|
||||||
|
FSUI_CSTR("When Big Picture mode is started, the game list will be displayed instead of the main menu."), "Main",
|
||||||
|
"FullscreenUIOpenToGameList", false);
|
||||||
|
|
||||||
if (DrawToggleSetting(
|
if (DrawToggleSetting(
|
||||||
bsi, FSUI_ICONSTR(ICON_PF_GAMEPAD, "Use DualShock/DualSense Button Icons"),
|
bsi, FSUI_ICONSTR(ICON_PF_GAMEPAD, "Use DualShock/DualSense Button Icons"),
|
||||||
FSUI_CSTR(
|
FSUI_CSTR(
|
||||||
@ -7419,7 +7431,7 @@ void FullscreenUI::DrawGameListWindow()
|
|||||||
BeginNavBar();
|
BeginNavBar();
|
||||||
|
|
||||||
if (NavButton(ICON_PF_NAVIGATION_BACK, true, true))
|
if (NavButton(ICON_PF_NAVIGATION_BACK, true, true))
|
||||||
ReturnToPreviousWindow();
|
SwitchToLanding();
|
||||||
|
|
||||||
NavTitle(Host::TranslateToCString(TR_CONTEXT, titles[static_cast<u32>(s_state.game_list_view)]));
|
NavTitle(Host::TranslateToCString(TR_CONTEXT, titles[static_cast<u32>(s_state.game_list_view)]));
|
||||||
RightAlignNavButtons(count, ITEM_WIDTH, LAYOUT_MENU_BUTTON_HEIGHT_NO_SUMMARY);
|
RightAlignNavButtons(count, ITEM_WIDTH, LAYOUT_MENU_BUTTON_HEIGHT_NO_SUMMARY);
|
||||||
@ -7499,7 +7511,7 @@ void FullscreenUI::DrawGameList(const ImVec2& heading_size)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!AreAnyDialogsOpen() && WantsToCloseMenu())
|
if (!AreAnyDialogsOpen() && WantsToCloseMenu())
|
||||||
ReturnToPreviousWindow();
|
SwitchToLanding();
|
||||||
|
|
||||||
auto game_list_lock = GameList::GetLock();
|
auto game_list_lock = GameList::GetLock();
|
||||||
const GameList::Entry* selected_entry = nullptr;
|
const GameList::Entry* selected_entry = nullptr;
|
||||||
@ -7751,7 +7763,7 @@ void FullscreenUI::DrawGameGrid(const ImVec2& heading_size)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui::IsWindowFocused() && WantsToCloseMenu())
|
if (ImGui::IsWindowFocused() && WantsToCloseMenu())
|
||||||
ReturnToPreviousWindow();
|
SwitchToLanding();
|
||||||
|
|
||||||
ResetFocusHere();
|
ResetFocusHere();
|
||||||
BeginMenuButtons();
|
BeginMenuButtons();
|
||||||
@ -9086,6 +9098,7 @@ TRANSLATE_NOOP("FullscreenUI", "OK");
|
|||||||
TRANSLATE_NOOP("FullscreenUI", "OSD Scale");
|
TRANSLATE_NOOP("FullscreenUI", "OSD Scale");
|
||||||
TRANSLATE_NOOP("FullscreenUI", "On-Screen Display");
|
TRANSLATE_NOOP("FullscreenUI", "On-Screen Display");
|
||||||
TRANSLATE_NOOP("FullscreenUI", "Open Containing Directory");
|
TRANSLATE_NOOP("FullscreenUI", "Open Containing Directory");
|
||||||
|
TRANSLATE_NOOP("FullscreenUI", "Open To Game List");
|
||||||
TRANSLATE_NOOP("FullscreenUI", "Open in File Browser");
|
TRANSLATE_NOOP("FullscreenUI", "Open in File Browser");
|
||||||
TRANSLATE_NOOP("FullscreenUI", "Operations");
|
TRANSLATE_NOOP("FullscreenUI", "Operations");
|
||||||
TRANSLATE_NOOP("FullscreenUI", "Optimal Frame Pacing");
|
TRANSLATE_NOOP("FullscreenUI", "Optimal Frame Pacing");
|
||||||
@ -9364,6 +9377,7 @@ TRANSLATE_NOOP("FullscreenUI", "Vertical Sync (VSync)");
|
|||||||
TRANSLATE_NOOP("FullscreenUI", "WARNING: Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games.");
|
TRANSLATE_NOOP("FullscreenUI", "WARNING: Activating cheats can cause unpredictable behavior, crashing, soft-locks, or broken saved games.");
|
||||||
TRANSLATE_NOOP("FullscreenUI", "WARNING: Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games.");
|
TRANSLATE_NOOP("FullscreenUI", "WARNING: Activating game patches can cause unpredictable behavior, crashing, soft-locks, or broken saved games.");
|
||||||
TRANSLATE_NOOP("FullscreenUI", "WARNING: Your game is still saving to the memory card. Continuing to {0} may IRREVERSIBLY DESTROY YOUR MEMORY CARD. We recommend resuming your game and waiting 5 seconds for it to finish saving.\n\nDo you want to {0} anyway?");
|
TRANSLATE_NOOP("FullscreenUI", "WARNING: Your game is still saving to the memory card. Continuing to {0} may IRREVERSIBLY DESTROY YOUR MEMORY CARD. We recommend resuming your game and waiting 5 seconds for it to finish saving.\n\nDo you want to {0} anyway?");
|
||||||
|
TRANSLATE_NOOP("FullscreenUI", "When Big Picture mode is started, the game list will be displayed instead of the main menu.");
|
||||||
TRANSLATE_NOOP("FullscreenUI", "When enabled and logged in, DuckStation will scan for achievements on startup.");
|
TRANSLATE_NOOP("FullscreenUI", "When enabled and logged in, DuckStation will scan for achievements on startup.");
|
||||||
TRANSLATE_NOOP("FullscreenUI", "When enabled, DuckStation will assume all achievements are locked and not send any unlock notifications to the server.");
|
TRANSLATE_NOOP("FullscreenUI", "When enabled, DuckStation will assume all achievements are locked and not send any unlock notifications to the server.");
|
||||||
TRANSLATE_NOOP("FullscreenUI", "When enabled, DuckStation will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements.");
|
TRANSLATE_NOOP("FullscreenUI", "When enabled, DuckStation will list achievements from unofficial sets. These achievements are not tracked by RetroAchievements.");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user