diff options
| author | isanae <14251494+isanae@users.noreply.github.com> | 2019-11-30 03:21:23 -0500 |
|---|---|---|
| committer | isanae <14251494+isanae@users.noreply.github.com> | 2019-11-30 03:21:23 -0500 |
| commit | a38d1723bffcd20bc7011c0fe635636b936aa78b (patch) | |
| tree | 55222bd5bafb7492d713351eb08b2aadb8f43f47 /src | |
| parent | f463c5494362a0fa75c581e59192e2640ec10f7e (diff) | |
removed redundant categories now that there's a not filter
disabled collapsing for filter, there's already a button to hide it
Diffstat (limited to 'src')
| -rw-r--r-- | src/categories.cpp | 24 | ||||
| -rw-r--r-- | src/categories.h | 31 | ||||
| -rw-r--r-- | src/filterlist.cpp | 28 | ||||
| -rw-r--r-- | src/mainwindow.cpp | 4 | ||||
| -rw-r--r-- | src/mainwindow.ui | 3 | ||||
| -rw-r--r-- | src/modlistsortproxy.cpp | 32 |
6 files changed, 54 insertions, 68 deletions
diff --git a/src/categories.cpp b/src/categories.cpp index b75efefa..1bd56f7f 100644 --- a/src/categories.cpp +++ b/src/categories.cpp @@ -320,21 +320,19 @@ QString CategoryFactory::getCategoryName(unsigned int index) const return m_Categories[index].m_Name;
}
-QString CategoryFactory::getSpecialCategoryName(int type) const
+QString CategoryFactory::getSpecialCategoryName(SpecialCategories type) const
{
switch (type)
{
- case CATEGORY_SPECIAL_CHECKED: return QObject::tr("<Checked>");
- case CATEGORY_SPECIAL_UNCHECKED: return QObject::tr("<Unchecked>");
- case CATEGORY_SPECIAL_UPDATEAVAILABLE: return QObject::tr("<Update>");
- case CATEGORY_SPECIAL_NOCATEGORY: return QObject::tr("<No category>");
- case CATEGORY_SPECIAL_CONFLICT: return QObject::tr("<Conflicted>");
- case CATEGORY_SPECIAL_NOTENDORSED: return QObject::tr("<Not Endorsed>");
- case CATEGORY_SPECIAL_BACKUP: return QObject::tr("<Mod Backup>");
- case CATEGORY_SPECIAL_MANAGED: return QObject::tr("<Managed by MO>");
- case CATEGORY_SPECIAL_UNMANAGED: return QObject::tr("<Managed outside MO>");
- case CATEGORY_SPECIAL_NOGAMEDATA: return QObject::tr("<No valid game data>");
- case CATEGORY_SPECIAL_NONEXUSID: return QObject::tr("<No Nexus ID>");
+ case Checked: return QObject::tr("<Checked>");
+ case UpdateAvailable: return QObject::tr("<Update>");
+ case HasNoCategory: return QObject::tr("<No category>");
+ case Conflict: return QObject::tr("<Conflicted>");
+ case NotEndorsed: return QObject::tr("<Not Endorsed>");
+ case Backup: return QObject::tr("<Mod Backup>");
+ case Managed: return QObject::tr("<Managed by MO>");
+ case NoGameData: return QObject::tr("<No valid game data>");
+ case NoNexusID: return QObject::tr("<No Nexus ID>");
default: return {};
}
}
@@ -344,7 +342,7 @@ QString CategoryFactory::getCategoryNameByID(int id) const auto itor = m_IDMap.find(id);
if (itor == m_IDMap.end()) {
- return getSpecialCategoryName(id);
+ return getSpecialCategoryName(static_cast<SpecialCategories>(id));
} else {
const auto index = itor->second;
if (index >= m_Categories.size()) {
diff --git a/src/categories.h b/src/categories.h index 2041ce1f..296e7711 100644 --- a/src/categories.h +++ b/src/categories.h @@ -37,25 +37,20 @@ class CategoryFactory { friend class CategoriesDialog;
public:
-
- static const int CATEGORY_NONE = 0;
-
- static const int CATEGORY_SPECIAL_FIRST = 10000;
- static const int CATEGORY_SPECIAL_CHECKED = CATEGORY_SPECIAL_FIRST;
- static const int CATEGORY_SPECIAL_UNCHECKED = 10001;
- static const int CATEGORY_SPECIAL_UPDATEAVAILABLE = 10002;
- 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_BACKUP = 10006;
- static const int CATEGORY_SPECIAL_MANAGED = 10007;
- static const int CATEGORY_SPECIAL_UNMANAGED = 10008;
- static const int CATEGORY_SPECIAL_NOGAMEDATA = 10009;
- static const int CATEGORY_SPECIAL_NONEXUSID = 10010;
-
+ enum SpecialCategories
+ {
+ Checked = 10000,
+ UpdateAvailable,
+ HasNoCategory,
+ Conflict,
+ NotEndorsed,
+ Backup,
+ Managed,
+ NoGameData,
+ NoNexusID
+ };
public:
-
struct Category {
Category(int sortValue, int id, const QString &name, const std::vector<int> &nexusIDs, int parentID)
: m_SortValue(sortValue), m_ID(id), m_Name(name), m_HasChildren(false),
@@ -144,7 +139,7 @@ public: * @return QString name of the category
**/
QString getCategoryName(unsigned int index) const;
- QString getSpecialCategoryName(int type) const;
+ QString getSpecialCategoryName(SpecialCategories type) const;
QString getCategoryNameByID(int id) const;
/**
diff --git a/src/filterlist.cpp b/src/filterlist.cpp index 8f297af6..36cdacd0 100644 --- a/src/filterlist.cpp +++ b/src/filterlist.cpp @@ -94,6 +94,8 @@ FilterList::FilterList(Ui::MainWindow* ui, CategoryFactory& factory) ui->filters->header()->setSectionResizeMode(0, QHeaderView::Stretch); ui->filters->header()->resizeSection(1, 50); + ui->categoriesSplitter->setCollapsible(0, false); + ui->categoriesSplitter->setCollapsible(1, false); } QTreeWidgetItem* FilterList::addCriteriaItem( @@ -142,8 +144,10 @@ void FilterList::addCategoryCriteria(QTreeWidgetItem *root, const std::set<int> void FilterList::addSpecialCriteria(int type) { + const auto sc = static_cast<CategoryFactory::SpecialCategories>(type); + addCriteriaItem( - nullptr, m_factory.getSpecialCategoryName(type), + nullptr, m_factory.getSpecialCategoryName(sc), type, ModListSortProxy::TYPE_SPECIAL); } @@ -157,17 +161,15 @@ void FilterList::refresh() ui->filters->clear(); using F = CategoryFactory; - addSpecialCriteria(F::CATEGORY_SPECIAL_CHECKED); - addSpecialCriteria(F::CATEGORY_SPECIAL_UNCHECKED); - addSpecialCriteria(F::CATEGORY_SPECIAL_UPDATEAVAILABLE); - addSpecialCriteria(F::CATEGORY_SPECIAL_BACKUP); - addSpecialCriteria(F::CATEGORY_SPECIAL_MANAGED); - addSpecialCriteria(F::CATEGORY_SPECIAL_UNMANAGED); - addSpecialCriteria(F::CATEGORY_SPECIAL_NOCATEGORY); - addSpecialCriteria(F::CATEGORY_SPECIAL_CONFLICT); - addSpecialCriteria(F::CATEGORY_SPECIAL_NOTENDORSED); - addSpecialCriteria(F::CATEGORY_SPECIAL_NONEXUSID); - addSpecialCriteria(F::CATEGORY_SPECIAL_NOGAMEDATA); + addSpecialCriteria(F::Checked); + addSpecialCriteria(F::UpdateAvailable); + addSpecialCriteria(F::Backup); + addSpecialCriteria(F::Managed); + addSpecialCriteria(F::HasNoCategory); + addSpecialCriteria(F::Conflict); + addSpecialCriteria(F::NotEndorsed); + addSpecialCriteria(F::NoNexusID); + addSpecialCriteria(F::NoGameData); addContentCriteria(); @@ -211,7 +213,7 @@ void FilterList::setSelection(std::vector<int> categories) continue; } - if (item->id() == CategoryFactory::CATEGORY_SPECIAL_UPDATEAVAILABLE) { + if (item->id() == CategoryFactory::UpdateAvailable) { ui->filters->setCurrentItem(ui->filters->topLevelItem(i)); break; } diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 03d61bc6..0ad57803 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -4126,11 +4126,11 @@ void MainWindow::checkModsForUpdates() if (updatesAvailable || checkingModsForUpdate) { m_ModListSortProxy->setCriteria({{ ModListSortProxy::TYPE_SPECIAL, - CategoryFactory::CATEGORY_SPECIAL_UPDATEAVAILABLE, + CategoryFactory::UpdateAvailable, false} }); - m_Filters->setSelection({CategoryFactory::CATEGORY_SPECIAL_UPDATEAVAILABLE}); + m_Filters->setSelection({CategoryFactory::UpdateAvailable}); } } diff --git a/src/mainwindow.ui b/src/mainwindow.ui index 7cc7dca4..6c35d239 100644 --- a/src/mainwindow.ui +++ b/src/mainwindow.ui @@ -39,6 +39,9 @@ <property name="orientation"> <enum>Qt::Horizontal</enum> </property> + <property name="childrenCollapsible"> + <bool>false</bool> + </property> <widget class="QGroupBox" name="categoriesGroup"> <property name="maximumSize"> <size> diff --git a/src/modlistsortproxy.cpp b/src/modlistsortproxy.cpp index 3bb02c0f..36dcae59 100644 --- a/src/modlistsortproxy.cpp +++ b/src/modlistsortproxy.cpp @@ -61,7 +61,7 @@ void ModListSortProxy::setCriteria(const std::vector<Criteria>& criteria) const bool changed = (criteria != m_Criteria);
const bool isForUpdates = (
!criteria.empty() &&
- criteria[0].id == CategoryFactory::CATEGORY_SPECIAL_UPDATEAVAILABLE);
+ criteria[0].id == CategoryFactory::UpdateAvailable);
if (changed || isForUpdates) {
m_Criteria = criteria;
@@ -343,68 +343,56 @@ bool ModListSortProxy::categoryMatchesMod( switch (category)
{
- case CategoryFactory::CATEGORY_SPECIAL_CHECKED:
+ case CategoryFactory::Checked:
{
b = (enabled || info->alwaysEnabled());
break;
}
- case CategoryFactory::CATEGORY_SPECIAL_UNCHECKED:
- {
- b = (!enabled && !info->alwaysEnabled());
- break;
- }
-
- case CategoryFactory::CATEGORY_SPECIAL_UPDATEAVAILABLE:
+ case CategoryFactory::UpdateAvailable:
{
b = (info->updateAvailable() || info->downgradeAvailable());
break;
}
- case CategoryFactory::CATEGORY_SPECIAL_NOCATEGORY:
+ case CategoryFactory::HasNoCategory:
{
b = (info->getCategories().size() == 0);
break;
}
- case CategoryFactory::CATEGORY_SPECIAL_CONFLICT:
+ case CategoryFactory::Conflict:
{
b = (hasConflictFlag(info->getFlags()));
break;
}
- case CategoryFactory::CATEGORY_SPECIAL_NOTENDORSED:
+ case CategoryFactory::NotEndorsed:
{
ModInfo::EEndorsedState state = info->endorsedState();
b = (state != ModInfo::ENDORSED_TRUE);
break;
}
- case CategoryFactory::CATEGORY_SPECIAL_BACKUP:
+ case CategoryFactory::Backup:
{
b = (info->hasFlag(ModInfo::FLAG_BACKUP));
break;
}
- case CategoryFactory::CATEGORY_SPECIAL_MANAGED:
+ case CategoryFactory::Managed:
{
b = (!info->hasFlag(ModInfo::FLAG_FOREIGN));
break;
}
- case CategoryFactory::CATEGORY_SPECIAL_UNMANAGED:
- {
- b = (info->hasFlag(ModInfo::FLAG_FOREIGN));
- break;
- }
-
- case CategoryFactory::CATEGORY_SPECIAL_NOGAMEDATA:
+ case CategoryFactory::NoGameData:
{
b = (info->hasFlag(ModInfo::FLAG_INVALID));
break;
}
- case CategoryFactory::CATEGORY_SPECIAL_NONEXUSID:
+ case CategoryFactory::NoNexusID:
{
b = (
info->getNexusID() == -1 &&
|
