summaryrefslogtreecommitdiff
path: root/src/filterlist.cpp
diff options
context:
space:
mode:
authorisanae <14251494+isanae@users.noreply.github.com>2019-12-02 10:41:52 -0500
committerisanae <14251494+isanae@users.noreply.github.com>2019-12-02 10:41:52 -0500
commit3c25117fe163f7fab7afa22ba171ea2d41112f23 (patch)
treea2a48759382677373bb1d23c5473e85c6ec0dd0e /src/filterlist.cpp
parentd2073ef2bd62527034864fd0cacd5537aff33218 (diff)
three modes for separators, save state
renamed enumerators
Diffstat (limited to 'src/filterlist.cpp')
-rw-r--r--src/filterlist.cpp28
1 files changed, 22 insertions, 6 deletions
diff --git a/src/filterlist.cpp b/src/filterlist.cpp
index b65f0f4a..05bff2dd 100644
--- a/src/filterlist.cpp
+++ b/src/filterlist.cpp
@@ -2,6 +2,7 @@
#include "ui_mainwindow.h"
#include "categories.h"
#include "categoriesdialog.h"
+#include "settings.h"
#include <utility.h>
using namespace MOBase;
@@ -157,7 +158,7 @@ FilterList::FilterList(Ui::MainWindow* ui, CategoryFactory& factory)
[&]{ onOptionsChanged(); });
connect(
- ui->filtersSeparators, &QCheckBox::toggled,
+ ui->filtersSeparators, qOverload<int>(&QComboBox::currentIndexChanged),
[&]{ onOptionsChanged(); });
ui->filters->header()->setMinimumSectionSize(0);
@@ -165,6 +166,20 @@ FilterList::FilterList(Ui::MainWindow* ui, CategoryFactory& factory)
ui->filters->header()->resizeSection(0, 30);
ui->categoriesSplitter->setCollapsible(0, false);
ui->categoriesSplitter->setCollapsible(1, false);
+
+ ui->filtersSeparators->addItem(tr("Filter separators"), ModListSortProxy::SeparatorFilter);
+ ui->filtersSeparators->addItem(tr("Show separators"), ModListSortProxy::SeparatorShow);
+ ui->filtersSeparators->addItem(tr("Hide separators"), ModListSortProxy::SeparatorHide);
+}
+
+void FilterList::restoreState(const Settings& s)
+{
+ s.widgets().restoreIndex(ui->filtersSeparators);
+}
+
+void FilterList::saveState(Settings& s) const
+{
+ s.widgets().saveIndex(ui->filtersSeparators);
}
QTreeWidgetItem* FilterList::addCriteriaItem(
@@ -189,7 +204,7 @@ void FilterList::addContentCriteria()
for (unsigned i = 0; i < ModInfo::NUM_CONTENT_TYPES; ++i) {
addCriteriaItem(
nullptr, tr("<Contains %1>").arg(ModInfo::getContentTypeName(i)),
- i, ModListSortProxy::TYPE_CONTENT);
+ i, ModListSortProxy::TypeContent);
}
}
@@ -202,7 +217,7 @@ void FilterList::addCategoryCriteria(QTreeWidgetItem *root, const std::set<int>
if (categoriesUsed.find(categoryID) != categoriesUsed.end()) {
QTreeWidgetItem *item =
addCriteriaItem(root, m_factory.getCategoryName(i),
- categoryID, ModListSortProxy::TYPE_CATEGORY);
+ categoryID, ModListSortProxy::TypeCategory);
if (m_factory.hasChildren(i)) {
addCategoryCriteria(item, categoriesUsed, categoryID);
}
@@ -217,7 +232,7 @@ void FilterList::addSpecialCriteria(int type)
addCriteriaItem(
nullptr, m_factory.getSpecialCategoryName(sc),
- type, ModListSortProxy::TYPE_SPECIAL);
+ type, ModListSortProxy::TypeSpecial);
}
void FilterList::refresh()
@@ -361,9 +376,10 @@ void FilterList::editCategories()
void FilterList::onOptionsChanged()
{
const auto mode = ui->filtersAnd->isChecked() ?
- ModListSortProxy::FILTER_AND : ModListSortProxy::FILTER_OR;
+ ModListSortProxy::FilterAnd: ModListSortProxy::FilterOr;
- const bool separators = ui->filtersSeparators->isChecked();
+ const auto separators = static_cast<ModListSortProxy::SeparatorsMode>(
+ ui->filtersSeparators->currentData().toInt());
emit optionsChanged(mode, separators);
}