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_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,
&CodeWidget::OnSelectCallstack);
connect(m_function_calls_list, &QListWidget::itemSelectionChanged, this,
@ -252,7 +252,6 @@ void CodeWidget::Update()
Symbol* symbol = g_symbolDB.GetSymbolFromAddr(m_code_view->GetAddress());
UpdateCallstack();
UpdateSymbols();
m_code_view->Update();
m_code_view->setFocus();

View File

@ -36,6 +36,7 @@ public:
void SetAddress(u32 address, CodeViewWidget::SetAddressUpdate update);
void Update();
void UpdateSymbols();
signals:
void BreakpointsChanged();
void RequestPPCComparison(u32 addr);
@ -44,7 +45,6 @@ private:
void CreateWidgets();
void ConnectWidgets();
void UpdateCallstack();
void UpdateSymbols();
void UpdateFunctionCalls(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(this, &MainWindow::ReadOnlyModeChanged, m_menu_bar, &MenuBar::ReadOnlyModeChanged);
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()

View File

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

View File

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