shortcut search now displays all rows in section (#5307)

This commit is contained in:
RickyRister 2024-12-23 17:29:52 -08:00 committed by GitHub
parent 205e1c7a59
commit ec17a477be
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 32 additions and 4 deletions

View file

@ -4,7 +4,22 @@
#include "shortcuts_settings.h"
#include <QHeaderView>
#include <QSortFilterProxyModel>
ShortcutFilterProxyModel::ShortcutFilterProxyModel(QObject *parent) : QSortFilterProxyModel(parent)
{
}
/**
* @return True if this row or its parent matches the search string
*/
bool ShortcutFilterProxyModel::filterAcceptsRow(const int sourceRow, const QModelIndex &sourceParent) const
{
QModelIndex nameIndex = sourceModel()->index(sourceRow, filterKeyColumn(), sourceParent);
QModelIndex parentIndex = sourceModel()->index(sourceParent.row(), filterKeyColumn(), sourceParent.parent());
return sourceModel()->data(nameIndex).toString().contains(filterRegularExpression()) ||
sourceModel()->data(parentIndex).toString().contains(filterRegularExpression());
}
ShortcutTreeView::ShortcutTreeView(QWidget *parent) : QTreeView(parent)
{
@ -14,7 +29,7 @@ ShortcutTreeView::ShortcutTreeView(QWidget *parent) : QTreeView(parent)
populateShortcutsModel();
// filter proxy
proxyModel = new QSortFilterProxyModel(this);
proxyModel = new ShortcutFilterProxyModel(this);
proxyModel->setRecursiveFilteringEnabled(true);
proxyModel->setSourceModel(shortcutsModel);
proxyModel->setDynamicSortFilter(true);