summaryrefslogtreecommitdiffstats
path: root/archiveview.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'archiveview.cpp')
-rw-r--r--archiveview.cpp23
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);
}