From 49e19c8185eb890b6dc6788bf95dd65455e72538 Mon Sep 17 00:00:00 2001 From: Al Date: Fri, 4 Oct 2019 17:18:06 +0200 Subject: Added "No valid game data" and "No Nexus ID" filters as per #295 --- src/modlistsortproxy.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'src/modlistsortproxy.cpp') diff --git a/src/modlistsortproxy.cpp b/src/modlistsortproxy.cpp index 77ffad96..a9ff6463 100644 --- a/src/modlistsortproxy.cpp +++ b/src/modlistsortproxy.cpp @@ -308,6 +308,15 @@ bool ModListSortProxy::filterMatchesModAnd(ModInfo::Ptr info, bool enabled) cons case CategoryFactory::CATEGORY_SPECIAL_UNMANAGED: { if (!info->hasFlag(ModInfo::FLAG_FOREIGN)) return false; } break; + case CategoryFactory::CATEGORY_SPECIAL_NOGAMEDATA: { + if (!info->hasFlag(ModInfo::FLAG_INVALID)) return false; + } break; + case CategoryFactory::CATEGORY_SPECIAL_NONEXUSID: { + if (!(info->getNexusID() == -1 && !info->hasFlag(ModInfo::FLAG_FOREIGN) && + !info->hasFlag(ModInfo::FLAG_BACKUP) && + !info->hasFlag(ModInfo::FLAG_SEPARATOR) && + !info->hasFlag(ModInfo::FLAG_OVERWRITE))) return false; + } break; default: { if (!info->categorySet(*iter)) return false; } break; @@ -353,6 +362,15 @@ bool ModListSortProxy::filterMatchesModOr(ModInfo::Ptr info, bool enabled) const case CategoryFactory::CATEGORY_SPECIAL_UNMANAGED: { if (info->hasFlag(ModInfo::FLAG_FOREIGN)) return true; } break; + case CategoryFactory::CATEGORY_SPECIAL_NOGAMEDATA: { + if (info->hasFlag(ModInfo::FLAG_INVALID)) return true; + } break; + case CategoryFactory::CATEGORY_SPECIAL_NONEXUSID: { + if ((info->getNexusID() == -1 && !info->hasFlag(ModInfo::FLAG_FOREIGN) && + !info->hasFlag(ModInfo::FLAG_BACKUP) && + !info->hasFlag(ModInfo::FLAG_SEPARATOR) && + !info->hasFlag(ModInfo::FLAG_OVERWRITE))) return true; + } break; default: { if (info->categorySet(*iter)) return true; } break; -- cgit v1.3.1