diff options
| author | Mason Reed <mason@vector35.com> | 2025-07-20 23:16:25 -0400 |
|---|---|---|
| committer | Mason Reed <mason@vector35.com> | 2025-07-21 12:14:45 -0400 |
| commit | 4d64a1c56dcac0b89dd9458cace2e69a8fa9162a (patch) | |
| tree | 2e7333b443a4ce2cc730c9874de9b8e43eb1f0c1 /plugins | |
| parent | 6ebadb16f3c5664a8d69376383232b79690e50d0 (diff) | |
[WARP] Fix UI hanging when matched function sidebar updates with >50k matched functions
One day I will get the QT incantations correct
Diffstat (limited to 'plugins')
| -rw-r--r-- | plugins/warp/ui/matched.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/plugins/warp/ui/matched.cpp b/plugins/warp/ui/matched.cpp index 475e0cdd..618c1b4c 100644 --- a/plugins/warp/ui/matched.cpp +++ b/plugins/warp/ui/matched.cpp @@ -70,6 +70,10 @@ void WarpMatchedWidget::Update() { m_tableWidget->GetTableView()->setSortingEnabled(false); m_tableWidget->GetTableView()->setEnabled(false); + m_tableWidget->GetProxyModel()->setDynamicSortFilter(false); + m_tableWidget->GetTableView()->setUpdatesEnabled(false); + m_tableWidget->GetTableView()->setModel(nullptr); + m_tableWidget->GetProxyModel()->setSourceModel(nullptr); for (const auto &analysisFunction: m_current->GetAnalysisFunctionList()) { if (const auto &matchedFunction = Warp::Function::GetMatched(*analysisFunction)) @@ -78,6 +82,10 @@ void WarpMatchedWidget::Update() m_tableWidget->InsertFunction(startAddress, new WarpFunctionItem(matchedFunction, analysisFunction)); } } + m_tableWidget->GetTableView()->setModel(m_tableWidget->GetProxyModel()); + m_tableWidget->GetProxyModel()->setSourceModel(m_tableWidget->GetModel()); + m_tableWidget->GetProxyModel()->setDynamicSortFilter(true); m_tableWidget->GetTableView()->setEnabled(true); m_tableWidget->GetTableView()->setSortingEnabled(true); + m_tableWidget->GetTableView()->setUpdatesEnabled(true); } |
