From 23c6370bd4a0eefa3fb65e99089cd5cd357b91f4 Mon Sep 17 00:00:00 2001 From: Joshua Goins Date: Tue, 24 Jun 2025 14:50:16 -0400 Subject: [PATCH] Add delay when searching in Data Explorer This reduces the freezing a ton, and just makes it nicer to search in general. --- apps/sagasu/src/filetreewindow.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/apps/sagasu/src/filetreewindow.cpp b/apps/sagasu/src/filetreewindow.cpp index 85162a0..39fba2b 100644 --- a/apps/sagasu/src/filetreewindow.cpp +++ b/apps/sagasu/src/filetreewindow.cpp @@ -9,6 +9,7 @@ #include #include #include +#include #include FileTreeWindow::FileTreeWindow(HashDatabase &database, const QString &gamePath, GameData *data, QWidget *parent) @@ -30,10 +31,19 @@ FileTreeWindow::FileTreeWindow(HashDatabase &database, const QString &gamePath, layout->addLayout(searchLayout);*/ auto searchEdit = new QLineEdit(); + + auto searchTimer = new QTimer(); + searchTimer->setSingleShot(true); + connect(searchTimer, &QTimer::timeout, m_searchModel, [this, searchEdit] { + m_searchModel->setFilterFixedString(searchEdit->text()); + }); + searchEdit->setPlaceholderText(i18nc("@info:placeholder", "Search…")); searchEdit->setClearButtonEnabled(true); searchEdit->setProperty("_breeze_borders_sides", QVariant::fromValue(QFlags{Qt::BottomEdge})); - connect(searchEdit, &QLineEdit::textChanged, m_searchModel, &QSortFilterProxyModel::setFilterFixedString); + connect(searchEdit, &QLineEdit::textChanged, searchTimer, [searchTimer] { + searchTimer->start(); + }); layout->addWidget(searchEdit); // TODO Restore as an action, later. it's currently pretty useless as-is as it's a "please slow down and crash" checkbox