summaryrefslogtreecommitdiff
path: root/src/filterlist.cpp
diff options
context:
space:
mode:
authorisanae <14251494+isanae@users.noreply.github.com>2019-11-30 03:39:12 -0500
committerisanae <14251494+isanae@users.noreply.github.com>2019-11-30 03:39:12 -0500
commitf080e2e25d05eb639cc4168d3c6905041f4dc564 (patch)
tree37845df5ca1f27d2c4b1ce44a06d2890252090ec /src/filterlist.cpp
parent507d29a0fc0765f0f8de49795eb100a258970d01 (diff)
always enable clear filter button, made it so it also removes not flags
removed "deselect filters" context menu, redundant disable not flag menu items without selection
Diffstat (limited to 'src/filterlist.cpp')
-rw-r--r--src/filterlist.cpp30
1 files changed, 24 insertions, 6 deletions
diff --git a/src/filterlist.cpp b/src/filterlist.cpp
index 36cdacd0..66a9aed0 100644
--- a/src/filterlist.cpp
+++ b/src/filterlist.cpp
@@ -78,7 +78,7 @@ FilterList::FilterList(Ui::MainWindow* ui, CategoryFactory& factory)
connect(
ui->filtersClear, &QPushButton::clicked,
- [&]{ clearSelection(); });
+ [&]{ clear(); });
connect(
ui->filtersAnd, &QCheckBox::toggled,
@@ -241,20 +241,23 @@ void FilterList::onSelection()
});
}
- ui->filtersClear->setEnabled(!criteria.empty());
-
emit criteriaChanged(criteria);
}
void FilterList::onContextMenu(const QPoint &pos)
{
QMenu menu;
- menu.addAction(tr("Deselect filters"), [&]{ clearSelection(); });
- menu.addAction(tr("Set inverted"), [&]{ toggleInverted(true); });
- menu.addAction(tr("Unset inverted"), [&]{ toggleInverted(false); });
+
+ QAction* set = menu.addAction(tr("Set inverted"), [&]{ toggleInverted(true); });
+ QAction* unset = menu.addAction(tr("Unset inverted"), [&]{ toggleInverted(false); });
menu.addSeparator();
menu.addAction(tr("Edit Categories..."), [&]{ editCategories(); });
+ if (ui->filters->selectedItems().empty()) {
+ set->setEnabled(false);
+ unset->setEnabled(false);
+ }
+
menu.exec(ui->filters->viewport()->mapToGlobal(pos));
}
@@ -267,6 +270,21 @@ void FilterList::editCategories()
}
}
+void FilterList::clear()
+{
+ const auto count = ui->filters->topLevelItemCount();
+ for (int i=0; i<count; ++i) {
+ auto* ci = dynamic_cast<CriteriaItem*>(ui->filters->topLevelItem(i));
+ if (!ci) {
+ continue;
+ }
+
+ ci->setInverted(false);
+ }
+
+ clearSelection();
+}
+
void FilterList::toggleInverted(bool b)
{
bool changed = false;