Qt/debugger: Don't update the symbols list unnecessarily

It only needs to be updated when we changes the symbols, not every time the code widget updates and it does take a while to update them so this fixes some delay when updating the code window.
This commit is contained in:
aldelaro5 2018-05-11 16:38:32 -04:00
parent be6b4edb0c
commit 5c688b2d2b
No known key found for this signature in database
GPG Key ID: 054DD3E6FF48DB71
5 changed files with 17 additions and 9 deletions

View File

@ -147,7 +147,7 @@ void CodeWidget::ConnectWidgets()
connect(m_search_address, &QLineEdit::textChanged, this, &CodeWidget::OnSearchAddress); connect(m_search_address, &QLineEdit::textChanged, this, &CodeWidget::OnSearchAddress);
connect(m_search_symbols, &QLineEdit::textChanged, this, &CodeWidget::OnSearchSymbols); connect(m_search_symbols, &QLineEdit::textChanged, this, &CodeWidget::OnSearchSymbols);
connect(m_symbols_list, &QListWidget::itemSelectionChanged, this, &CodeWidget::OnSelectSymbol); connect(m_symbols_list, &QListWidget::itemClicked, this, &CodeWidget::OnSelectSymbol);
connect(m_callstack_list, &QListWidget::itemSelectionChanged, this, connect(m_callstack_list, &QListWidget::itemSelectionChanged, this,
&CodeWidget::OnSelectCallstack); &CodeWidget::OnSelectCallstack);
connect(m_function_calls_list, &QListWidget::itemSelectionChanged, this, connect(m_function_calls_list, &QListWidget::itemSelectionChanged, this,
@ -252,7 +252,6 @@ void CodeWidget::Update()
Symbol* symbol = g_symbolDB.GetSymbolFromAddr(m_code_view->GetAddress()); Symbol* symbol = g_symbolDB.GetSymbolFromAddr(m_code_view->GetAddress());
UpdateCallstack(); UpdateCallstack();
UpdateSymbols();
m_code_view->Update(); m_code_view->Update();
m_code_view->setFocus(); m_code_view->setFocus();

View File

@ -36,6 +36,7 @@ public:
void SetAddress(u32 address, CodeViewWidget::SetAddressUpdate update); void SetAddress(u32 address, CodeViewWidget::SetAddressUpdate update);
void Update(); void Update();
void UpdateSymbols();
signals: signals:
void BreakpointsChanged(); void BreakpointsChanged();
void RequestPPCComparison(u32 addr); void RequestPPCComparison(u32 addr);
@ -44,7 +45,6 @@ private:
void CreateWidgets(); void CreateWidgets();
void ConnectWidgets(); void ConnectWidgets();
void UpdateCallstack(); void UpdateCallstack();
void UpdateSymbols();
void UpdateFunctionCalls(Symbol* symbol); void UpdateFunctionCalls(Symbol* symbol);
void UpdateFunctionCallers(Symbol* symbol); void UpdateFunctionCallers(Symbol* symbol);

View File

@ -340,6 +340,12 @@ void MainWindow::ConnectMenuBar()
connect(m_game_list, &GameList::SelectionChanged, m_menu_bar, &MenuBar::SelectionChanged); connect(m_game_list, &GameList::SelectionChanged, m_menu_bar, &MenuBar::SelectionChanged);
connect(this, &MainWindow::ReadOnlyModeChanged, m_menu_bar, &MenuBar::ReadOnlyModeChanged); connect(this, &MainWindow::ReadOnlyModeChanged, m_menu_bar, &MenuBar::ReadOnlyModeChanged);
connect(this, &MainWindow::RecordingStatusChanged, m_menu_bar, &MenuBar::RecordingStatusChanged); connect(this, &MainWindow::RecordingStatusChanged, m_menu_bar, &MenuBar::RecordingStatusChanged);
// Symbols
connect(m_menu_bar, &MenuBar::NotifySymbolsUpdated, [this] {
m_code_widget->UpdateSymbols();
m_code_widget->Update();
});
} }
void MainWindow::ConnectHotkeys() void MainWindow::ConnectHotkeys()

View File

@ -1020,13 +1020,13 @@ void MenuBar::ClearSymbols()
return; return;
g_symbolDB.Clear(); g_symbolDB.Clear();
Host_NotifyMapLoaded(); emit NotifySymbolsUpdated();
} }
void MenuBar::GenerateSymbolsFromAddress() void MenuBar::GenerateSymbolsFromAddress()
{ {
PPCAnalyst::FindFunctions(0x80000000, 0x81800000, &g_symbolDB); PPCAnalyst::FindFunctions(0x80000000, 0x81800000, &g_symbolDB);
Host_NotifyMapLoaded(); emit NotifySymbolsUpdated();
} }
void MenuBar::GenerateSymbolsFromSignatureDB() void MenuBar::GenerateSymbolsFromSignatureDB()
@ -1048,7 +1048,7 @@ void MenuBar::GenerateSymbolsFromSignatureDB()
tr("'%1' not found, no symbol names generated").arg(QString::fromStdString(TOTALDB))); tr("'%1' not found, no symbol names generated").arg(QString::fromStdString(TOTALDB)));
} }
Host_NotifyMapLoaded(); emit NotifySymbolsUpdated();
} }
void MenuBar::GenerateSymbolsFromRSO() void MenuBar::GenerateSymbolsFromRSO()
@ -1067,7 +1067,7 @@ void MenuBar::GenerateSymbolsFromRSO()
if (rso_chain.Load(static_cast<u32>(address))) if (rso_chain.Load(static_cast<u32>(address)))
{ {
rso_chain.Apply(&g_symbolDB); rso_chain.Apply(&g_symbolDB);
Host_NotifyMapLoaded(); emit NotifySymbolsUpdated();
} }
else else
{ {
@ -1101,7 +1101,7 @@ void MenuBar::LoadSymbolMap()
} }
HLE::PatchFunctions(); HLE::PatchFunctions();
Host_NotifyMapLoaded(); emit NotifySymbolsUpdated();
} }
void MenuBar::SaveSymbolMap() void MenuBar::SaveSymbolMap()
@ -1123,7 +1123,7 @@ void MenuBar::LoadOtherSymbolMap()
g_symbolDB.LoadMap(file.toStdString()); g_symbolDB.LoadMap(file.toStdString());
HLE::PatchFunctions(); HLE::PatchFunctions();
Host_NotifyMapLoaded(); emit NotifySymbolsUpdated();
} }
void MenuBar::SaveSymbolMapAs() void MenuBar::SaveSymbolMapAs()

View File

@ -102,6 +102,9 @@ signals:
void RecordingStatusChanged(bool recording); void RecordingStatusChanged(bool recording);
void ReadOnlyModeChanged(bool read_only); void ReadOnlyModeChanged(bool read_only);
// Synbols
void NotifySymbolsUpdated();
private: private:
void OnEmulationStateChanged(Core::State state); void OnEmulationStateChanged(Core::State state);