Commit 50f63781 authored by David Redondo's avatar David Redondo 🏎
Browse files

ApplicationsTable: Remove unneeded ProcessSortFilterModel

ProcessSortFilterModel handles filtering pids and to which user a process
belongs over a normal QSortFilterProxyModel. In doing so it also
sets the filterKeyColumn to nameColumn in findColumns(). Note that the name
of the name columns of the process and application table is different
("name" and "appName"), so the filterKeyColumn is also set by ApplicationTableView.
However this is racey depending on when the binding is evaluated.
Since we don't need the extra features of the ProcessSortFilterModel we can use
the existing SortFilterProxyModel in charge of filtering columns (something that
the ProcessSortFilterModel also did) to also handle the row filtering.
BUG:445544
FIXED-IN:5.23.4


(cherry picked from commit a96bc99a)
parent 9da09f0a
......@@ -32,7 +32,7 @@ Table.BaseTableView {
property alias columnDisplay: displayModel.columnDisplay
property alias sourceModel: appModel
property alias filterString: filterProxy.filterString
property alias filterString: sortColumnFilter.filterString
property var selectedApplications: {
var result = []
......@@ -83,8 +83,9 @@ Table.BaseTableView {
model: KItemModels.KSortFilterProxyModel {
id: sortColumnFilter
sourceModel: filterProxy
sourceModel: cacheModel
filterKeyColumn: appModel.nameColumn
filterCaseSensitivity: Qt.CaseInsensitive
filterColumnCallback: function(column, parent) {
// Note: This assumes displayModel column == appModel column
// This may not always hold, but we get incorrect results if we try to
......@@ -99,13 +100,6 @@ Table.BaseTableView {
sortRole: "Value"
}
Table.ProcessSortFilterModel {
id: filterProxy
sourceModel: cacheModel
filterKeyColumn: appModel.nameColumn
filterCaseSensitivity: Qt.CaseInsensitive
}
Table.ComponentCacheProxyModel {
id: cacheModel
sourceModel: displayModel
......@@ -184,7 +178,6 @@ Table.BaseTableView {
Table.FirstCellDelegate {
iconName: {
var index = sortColumnFilter.mapToSource(sortColumnFilter.index(model.row, 0));
index = filterProxy.mapToSource(filterProxy.index(index.row, 0));
index = appModel.index(index.row, appModel.iconColumn)
return appModel.data(index)
return ""
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment