summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAl12rs <gabriel.cortesi@outlook.com>2018-09-07 20:53:42 +0200
committerAl12rs <gabriel.cortesi@outlook.com>2018-09-07 20:53:42 +0200
commit979206228d6bcfd71fb22c6a9b8dd4f54f7b5a75 (patch)
tree9479e8a89496a2a84510513879b135eabc670529 /src
parentba162804cd85120e7210f31bbcd1e4b2a45fd394 (diff)
Added Mod Backups filter for modlist.
Diffstat (limited to 'src')
-rw-r--r--src/categories.h6
-rw-r--r--src/mainwindow.cpp1
-rw-r--r--src/modlistsortproxy.cpp6
3 files changed, 11 insertions, 2 deletions
diff --git a/src/categories.h b/src/categories.h
index 474a1440..48e0b44b 100644
--- a/src/categories.h
+++ b/src/categories.h
@@ -47,8 +47,10 @@ public:
static const int CATEGORY_SPECIAL_NOCATEGORY = 10003;
static const int CATEGORY_SPECIAL_CONFLICT = 10004;
static const int CATEGORY_SPECIAL_NOTENDORSED = 10005;
- static const int CATEGORY_SPECIAL_MANAGED = 10006;
- static const int CATEGORY_SPECIAL_UNMANAGED = 10007;
+ static const int CATEGORY_SPECIAL_BACKUP = 10006;
+ static const int CATEGORY_SPECIAL_MANAGED = 10007;
+ static const int CATEGORY_SPECIAL_UNMANAGED = 10008;
+
public:
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index dd8b1447..28d561b9 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -2223,6 +2223,7 @@ void MainWindow::refreshFilters()
addFilterItem(nullptr, tr("<Checked>"), CategoryFactory::CATEGORY_SPECIAL_CHECKED, ModListSortProxy::TYPE_SPECIAL);
addFilterItem(nullptr, tr("<Unchecked>"), CategoryFactory::CATEGORY_SPECIAL_UNCHECKED, ModListSortProxy::TYPE_SPECIAL);
addFilterItem(nullptr, tr("<Update>"), CategoryFactory::CATEGORY_SPECIAL_UPDATEAVAILABLE, ModListSortProxy::TYPE_SPECIAL);
+ addFilterItem(nullptr, tr("<Mod Backup>"), CategoryFactory::CATEGORY_SPECIAL_BACKUP, ModListSortProxy::TYPE_SPECIAL);
addFilterItem(nullptr, tr("<Managed by MO>"), CategoryFactory::CATEGORY_SPECIAL_MANAGED, ModListSortProxy::TYPE_SPECIAL);
addFilterItem(nullptr, tr("<Managed outside MO>"), CategoryFactory::CATEGORY_SPECIAL_UNMANAGED, ModListSortProxy::TYPE_SPECIAL);
addFilterItem(nullptr, tr("<No category>"), CategoryFactory::CATEGORY_SPECIAL_NOCATEGORY, ModListSortProxy::TYPE_SPECIAL);
diff --git a/src/modlistsortproxy.cpp b/src/modlistsortproxy.cpp
index 88084ae1..59784642 100644
--- a/src/modlistsortproxy.cpp
+++ b/src/modlistsortproxy.cpp
@@ -271,6 +271,9 @@ bool ModListSortProxy::filterMatchesModAnd(ModInfo::Ptr info, bool enabled) cons
ModInfo::EEndorsedState state = info->endorsedState();
if (state != ModInfo::ENDORSED_FALSE) return false;
} break;
+ case CategoryFactory::CATEGORY_SPECIAL_BACKUP: {
+ if (!info->hasFlag(ModInfo::FLAG_BACKUP)) return false;
+ } break;
case CategoryFactory::CATEGORY_SPECIAL_MANAGED: {
if (info->hasFlag(ModInfo::FLAG_FOREIGN)) return false;
} break;
@@ -313,6 +316,9 @@ bool ModListSortProxy::filterMatchesModOr(ModInfo::Ptr info, bool enabled) const
ModInfo::EEndorsedState state = info->endorsedState();
if ((state == ModInfo::ENDORSED_FALSE) || (state == ModInfo::ENDORSED_NEVER)) return true;
} break;
+ case CategoryFactory::CATEGORY_SPECIAL_BACKUP: {
+ if (info->hasFlag(ModInfo::FLAG_BACKUP)) return true;
+ } break;
case CategoryFactory::CATEGORY_SPECIAL_MANAGED: {
if (!info->hasFlag(ModInfo::FLAG_FOREIGN)) return true;
} break;