From 71fc5d0af5593c04cd48587e72252cc0df24752d Mon Sep 17 00:00:00 2001 From: isanae <14251494+isanae@users.noreply.github.com> Date: Sat, 31 Oct 2020 12:27:44 -0400 Subject: stack overflow when searching text files/ini lists because they reported children to infinity and beyond removed update delays for filters in mod info dialog fixed conflict lists not using source sorting so they wouldn't use the case insensitive natsort --- src/modinfodialogconflicts.cpp | 9 ++++++++- src/modinfodialogimages.cpp | 1 + src/modinfodialogtextfiles.cpp | 7 ++++++- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/modinfodialogconflicts.cpp b/src/modinfodialogconflicts.cpp index 79ce6ade..feb20e65 100644 --- a/src/modinfodialogconflicts.cpp +++ b/src/modinfodialogconflicts.cpp @@ -559,12 +559,18 @@ GeneralConflictsTab::GeneralConflictsTab( m_filterOverwrite.setEdit(ui->overwriteLineEdit); m_filterOverwrite.setList(ui->overwriteTree); + m_filterOverwrite.setUseSourceSort(true); + m_filterOverwrite.setUpdateDelay(false); m_filterOverwritten.setEdit(ui->overwrittenLineEdit); m_filterOverwritten.setList(ui->overwrittenTree); + m_filterOverwritten.setUseSourceSort(true); + m_filterOverwritten.setUpdateDelay(false); m_filterNoConflicts.setEdit(ui->noConflictLineEdit); m_filterNoConflicts.setList(ui->noConflictTree); + m_filterNoConflicts.setUseSourceSort(true); + m_filterNoConflicts.setUpdateDelay(false); QObject::connect( ui->overwriteTree, &QTreeView::doubleClicked, @@ -789,9 +795,10 @@ AdvancedConflictsTab::AdvancedConflictsTab( m_tab(tab), ui(pui), m_core(oc), m_model(new AdvancedConflictListModel(ui->conflictsAdvancedList)) { - m_filter.setEdit(ui->conflictsAdvancedFilter); m_filter.setList(ui->conflictsAdvancedList); + m_filter.setUseSourceSort(true); + m_filter.setUpdateDelay(false); // left-elide the overwrites column so that the nearest are visible ui->conflictsAdvancedList->setItemDelegateForColumn( diff --git a/src/modinfodialogimages.cpp b/src/modinfodialogimages.cpp index 8a22045e..e27e9686 100644 --- a/src/modinfodialogimages.cpp +++ b/src/modinfodialogimages.cpp @@ -63,6 +63,7 @@ ImagesTab::ImagesTab(ModInfoDialogTabContext cx) : ui->imagesShowDDS->setEnabled(m_ddsAvailable); m_filter.setEdit(ui->imagesFilter); + m_filter.setUpdateDelay(false); connect(&m_filter, &FilterWidget::changed, [&]{ onFilterChanged(); }); connect(ui->imagesExplore, &QAbstractButton::clicked, [&]{ onExplore(); }); diff --git a/src/modinfodialogtextfiles.cpp b/src/modinfodialogtextfiles.cpp index c897ae1b..4bdc8ee1 100644 --- a/src/modinfodialogtextfiles.cpp +++ b/src/modinfodialogtextfiles.cpp @@ -23,8 +23,12 @@ public: return {}; } - int rowCount(const QModelIndex& ={}) const override + int rowCount(const QModelIndex& index={}) const override { + // no child nodes + if (index.isValid()) + return 0; + return static_cast(m_files.size()); } @@ -114,6 +118,7 @@ GenericFilesTab::GenericFilesTab( m_filter.setEdit(filter); m_filter.setList(m_list); + m_filter.setUpdateDelay(false); QObject::connect( m_list->selectionModel(), &QItemSelectionModel::currentRowChanged, -- cgit v1.3.1