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:
parent
be6b4edb0c
commit
5c688b2d2b
|
@ -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();
|
||||||
|
|
|
@ -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);
|
||||||
|
|
||||||
|
|
|
@ -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()
|
||||||
|
|
|
@ -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()
|
||||||
|
|
|
@ -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);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue