diff options
| author | shuffle2 <godisgovernment@gmail.com> | 2017-06-23 17:32:15 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-06-23 17:32:15 -0700 |
| commit | ced53e29200e3d02dbbc218bccc8b8a8826ef7a7 (patch) | |
| tree | ed4cb548a2864fa52b4d78d4251a53e4e87c792b /Source/Core/DolphinWX/FrameTools.cpp | |
| parent | 1bd177561bf54e58855237e6c30c7bcaa39ab7e2 (diff) | |
| parent | a66b747366c8dc36cb4ed6f40efee679e9516749 (diff) | |
Merge pull request #5659 from shuffle2/gamelist-speedup-with-emustate
Gamelist speedup with emustate
Diffstat (limited to 'Source/Core/DolphinWX/FrameTools.cpp')
| -rw-r--r-- | Source/Core/DolphinWX/FrameTools.cpp | 54 |
1 files changed, 33 insertions, 21 deletions
diff --git a/Source/Core/DolphinWX/FrameTools.cpp b/Source/Core/DolphinWX/FrameTools.cpp index 8ac6fd7e08..007c6595db 100644 --- a/Source/Core/DolphinWX/FrameTools.cpp +++ b/Source/Core/DolphinWX/FrameTools.cpp @@ -774,7 +774,7 @@ void CFrame::OnBootDrive(wxCommandEvent& event) void CFrame::OnRefresh(wxCommandEvent& WXUNUSED(event)) { - UpdateGameList(); + GameListRescan(); } void CFrame::OnScreenshot(wxCommandEvent& WXUNUSED(event)) @@ -1097,12 +1097,17 @@ void CFrame::OnReloadThemeBitmaps(wxCommandEvent& WXUNUSED(event)) reload_event.SetEventObject(this); wxPostEvent(GetToolBar(), reload_event); - UpdateGameList(); + GameListRefresh(); } -void CFrame::OnReloadGameList(wxCommandEvent& WXUNUSED(event)) +void CFrame::OnRefreshGameList(wxCommandEvent& WXUNUSED(event)) { - UpdateGameList(); + GameListRefresh(); +} + +void CFrame::OnRescanGameList(wxCommandEvent& WXUNUSED(event)) +{ + GameListRescan(); } void CFrame::OnUpdateInterpreterMenuItem(wxUpdateUIEvent& event) @@ -1128,18 +1133,16 @@ void CFrame::ClearStatusBar() } } -void CFrame::StatusBarMessage(const char* Text, ...) +void CFrame::StatusBarMessage(const char* format, ...) { - const int MAX_BYTES = 1024 * 10; - char Str[MAX_BYTES]; - va_list ArgPtr; - va_start(ArgPtr, Text); - vsnprintf(Str, MAX_BYTES, Text, ArgPtr); - va_end(ArgPtr); + va_list args; + va_start(args, format); + std::string msg = StringFromFormatV(format, args); + va_end(args); if (this->GetStatusBar()->IsEnabled()) { - this->GetStatusBar()->SetStatusText(StrToWxStr(Str), 0); + this->GetStatusBar()->SetStatusText(StrToWxStr(msg), 0); } } @@ -1605,9 +1608,16 @@ void CFrame::UpdateGUI() } } -void CFrame::UpdateGameList() +void CFrame::GameListRefresh() +{ + wxCommandEvent event{DOLPHIN_EVT_REFRESH_GAMELIST, GetId()}; + event.SetEventObject(this); + wxPostEvent(m_game_list_ctrl, event); +} + +void CFrame::GameListRescan() { - wxCommandEvent event{DOLPHIN_EVT_RELOAD_GAMELIST, GetId()}; + wxCommandEvent event{DOLPHIN_EVT_RESCAN_GAMELIST, GetId()}; event.SetEventObject(this); wxPostEvent(m_game_list_ctrl, event); } @@ -1674,17 +1684,19 @@ void CFrame::GameListChanged(wxCommandEvent& event) SConfig::GetInstance().m_ListDrives = event.IsChecked(); break; case IDM_PURGE_GAME_LIST_CACHE: - std::vector<std::string> rFilenames = - Common::DoFileSearch({".cache"}, {File::GetUserPath(D_CACHE_IDX)}); + std::vector<std::string> filenames = + Common::DoFileSearch({File::GetUserPath(D_CACHE_IDX)}, {".cache"}); - for (const std::string& rFilename : rFilenames) + for (const std::string& filename : filenames) { - File::Delete(rFilename); + File::Delete(filename); } - break; + // Do rescan after cache has been cleared + GameListRescan(); + return; } - UpdateGameList(); + GameListRefresh(); } // Enable and disable the toolbar @@ -1743,6 +1755,6 @@ void CFrame::OnChangeColumnsVisible(wxCommandEvent& event) default: return; } - UpdateGameList(); + GameListRefresh(); SConfig::GetInstance().SaveSettings(); } |
