diff options
Diffstat (limited to 'archiveview.cpp')
-rw-r--r-- | archiveview.cpp | 23 |
1 files changed, 3 insertions, 20 deletions
diff --git a/archiveview.cpp b/archiveview.cpp index 96bf01b..263bc41 100644 --- a/archiveview.cpp +++ b/archiveview.cpp @@ -228,24 +228,7 @@ bool ArchiveProxy::filterAcceptsRow(int sourceRow, const QModelIndex &sourcePare if(mFilter.isEmpty()){ return true; } - QModelIndex nodeIdx = sourceModel()->index(sourceRow, ArchiveModel::Type, sourceParent); - if(mSortOrder == ArchiveModel::SeriesName){ - if(nodeIdx.data().toInt() == ArchiveModel::SeriesNode){ - QModelIndex nameIdx = sourceModel()->index(sourceRow, ArchiveModel::Name, sourceParent); - QString name = nameIdx.data().toString(); - return name.contains(mFilter); - }else{ - return true; - } - }else if(mSortOrder == ArchiveModel::Genre || mSortOrder == ArchiveModel::Actor){ - int nodeType = nodeIdx.data().toInt(); - if(nodeType == ArchiveModel::ActorNode || nodeType == ArchiveModel::GenreNode){ - QModelIndex nameIdx = sourceModel()->index(sourceRow, ArchiveModel::Name, sourceParent); - QString name = nameIdx.data().toString(); - return name.contains(mFilter); - }else{ - return true; - } - } - return false; + QModelIndex nameIdx = sourceModel()->index(sourceRow, ArchiveModel::Name, sourceParent); + ArchiveModel *model = qobject_cast<ArchiveModel*>(sourceModel()); + return model->matchRecursive(nameIdx, mFilter); } |