summaryrefslogtreecommitdiff
path: root/Source/Core/DolphinWX/FrameTools.cpp
diff options
context:
space:
mode:
authorshuffle2 <godisgovernment@gmail.com>2017-06-23 17:32:15 -0700
committerGitHub <noreply@github.com>2017-06-23 17:32:15 -0700
commitced53e29200e3d02dbbc218bccc8b8a8826ef7a7 (patch)
treeed4cb548a2864fa52b4d78d4251a53e4e87c792b /Source/Core/DolphinWX/FrameTools.cpp
parent1bd177561bf54e58855237e6c30c7bcaa39ab7e2 (diff)
parenta66b747366c8dc36cb4ed6f40efee679e9516749 (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.cpp54
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();
}