summaryrefslogtreecommitdiff
path: root/Source/Core/DolphinWX/Debugger/CodeWindowFunctions.cpp
diff options
context:
space:
mode:
authorLéo Lam <leo@innovatetechnologi.es>2016-12-04 14:47:08 +0100
committerLéo Lam <leo@innovatetechnologi.es>2016-12-04 18:18:07 +0100
commit59abfee11d4a08e10a00f8db6c2bcc2476f5423a (patch)
tree01331dbf882ab228cd566b9cd64eee8d55e3e92d /Source/Core/DolphinWX/Debugger/CodeWindowFunctions.cpp
parent827de2ed06e54a46b75662097255d2a601d1875c (diff)
DolphinWX: Add ability to filter symbols (by name)
This allows the user to filter symbols by name, instead of having to scroll through a very, very long listbox…
Diffstat (limited to 'Source/Core/DolphinWX/Debugger/CodeWindowFunctions.cpp')
-rw-r--r--Source/Core/DolphinWX/Debugger/CodeWindowFunctions.cpp19
1 files changed, 14 insertions, 5 deletions
diff --git a/Source/Core/DolphinWX/Debugger/CodeWindowFunctions.cpp b/Source/Core/DolphinWX/Debugger/CodeWindowFunctions.cpp
index 3206721851..745d40202f 100644
--- a/Source/Core/DolphinWX/Debugger/CodeWindowFunctions.cpp
+++ b/Source/Core/DolphinWX/Debugger/CodeWindowFunctions.cpp
@@ -14,6 +14,7 @@
#include <wx/listbox.h>
#include <wx/menu.h>
#include <wx/mimetype.h>
+#include <wx/srchctrl.h>
#include <wx/textdlg.h>
#include "Common/CommonPaths.h"
@@ -398,20 +399,28 @@ void CCodeWindow::OnSymbolsMenu(wxCommandEvent& event)
}
}
-void CCodeWindow::NotifyMapLoaded()
+void CCodeWindow::ReloadSymbolListBox()
{
- if (!codeview)
- return;
-
- g_symbolDB.FillInCallers();
symbols->Freeze(); // HyperIris: wx style fast filling
symbols->Clear();
+ const wxString filtering_string = m_symbol_filter_ctrl->GetValue().Trim().Trim(false);
for (const auto& symbol : g_symbolDB.Symbols())
{
+ if (symbol.second.name.find(filtering_string) == std::string::npos)
+ continue;
int idx = symbols->Append(StrToWxStr(symbol.second.name));
symbols->SetClientData(idx, (void*)&symbol.second);
}
symbols->Thaw();
+}
+
+void CCodeWindow::NotifyMapLoaded()
+{
+ if (!codeview)
+ return;
+
+ g_symbolDB.FillInCallers();
+ ReloadSymbolListBox();
Repopulate();
}