drop tags/decks/etc from Filter button

https://github.com/ankitects/help-wanted/issues/6

These are a relic from when the sidebar defaulted to off, and I don't
think enough people are using them to bother keeping them around.
Once the the card state and saved filter functionality moves into the
sidebar and top menus, we may be able to remove the Filter button
completely.
This commit is contained in:
Damien Elmes 2021-01-23 17:56:33 +10:00
parent 6aba1a879c
commit 9db3f0dd19
2 changed files with 0 additions and 118 deletions

View file

@ -1251,14 +1251,8 @@ QTableView {{ gridline-color: {grid} }}
def onFilterButton(self):
ml = MenuList()
ml.addChild(self._commonFilters())
ml.addSeparator()
ml.addChild(self._todayFilters())
ml.addChild(self._cardStateFilters())
ml.addChild(self._deckFilters())
ml.addChild(self._noteTypeFilters())
ml.addChild(self._tagFilters())
ml.addSeparator()
ml.addChild(self.sidebarDockWidget.toggleViewAction())
@ -1339,14 +1333,6 @@ QTableView {{ gridline-color: {grid} }}
def _saved_filter(self, saved: str) -> Callable:
return lambda: self.setFilter(saved)
def _commonFilters(self):
return self._simpleFilters(
(
(tr(TR.BROWSING_WHOLE_COLLECTION), NamedFilter.WHOLE_COLLECTION),
(tr(TR.BROWSING_CURRENT_DECK), NamedFilter.CURRENT_DECK),
)
)
def _todayFilters(self):
subm = SubMenu(tr(TR.BROWSING_TODAY))
subm.addChild(
@ -1387,76 +1373,6 @@ QTableView {{ gridline-color: {grid} }}
def _escapeMenuItem(self, label):
return label.replace("&", "&&")
def _tagFilters(self):
m = SubMenu(tr(TR.EDITING_TAGS))
m.addItem(tr(TR.BROWSING_CLEAR_UNUSED), self.clearUnusedTags)
m.addSeparator()
tagList = MenuList()
for t in sorted(self.col.tags.all(), key=lambda s: s.lower()):
tagList.addItem(self._escapeMenuItem(t), self._tag_filter(t))
m.addChild(tagList.chunked())
return m
def _deckFilters(self):
def addDecks(parent, decks, parent_prefix):
for node in decks:
escaped_name = self._escapeMenuItem(node.name)
# pylint: disable=cell-var-from-loop
fullname = parent_prefix + node.name
if node.children:
subm = parent.addMenu(escaped_name)
subm.addItem(tr(TR.ACTIONS_FILTER), self._deck_filter(fullname))
subm.addSeparator()
addDecks(subm, node.children, fullname + "::")
else:
parent.addItem(escaped_name, self._deck_filter(fullname))
alldecks = self.col.decks.deck_tree()
ml = MenuList()
addDecks(ml, alldecks.children, "")
root = SubMenu(tr(TR.ACTIONS_DECKS))
root.addChild(ml.chunked())
return root
def _noteTypeFilters(self):
m = SubMenu(tr(TR.NOTETYPES_NOTE_TYPES))
m.addItem(tr(TR.ACTIONS_MANAGE), self.mw.onNoteTypes)
m.addSeparator()
noteTypes = MenuList()
for nt in sorted(self.col.models.all(), key=lambda nt: nt["name"].lower()):
escaped_nt_name = self._escapeMenuItem(nt["name"])
# no sub menu if it's a single template
if len(nt["tmpls"]) == 1:
noteTypes.addItem(escaped_nt_name, self._note_filter(nt["name"]))
else:
subm = noteTypes.addMenu(escaped_nt_name)
subm.addItem(
tr(TR.BROWSING_ALL_CARD_TYPES), self._note_filter(nt["name"])
)
subm.addSeparator()
# add templates
for c, tmpl in enumerate(nt["tmpls"]):
# T: name is a card type name. n it's order in the list of card type.
# T: this is shown in browser's filter, when seeing the list of card type of a note type.
name = tr(
TR.BROWSING_ND_NAMES,
num=c + 1,
name=self._escapeMenuItem(tmpl["name"]),
)
subm.addItem(name, self._template_filter(nt["name"], c))
m.addChild(noteTypes.chunked())
return m
# Favourites
######################################################################
@ -1473,14 +1389,6 @@ QTableView {{ gridline-color: {grid} }}
else:
ml.addItem(tr(TR.BROWSING_SAVE_CURRENT_FILTER), self._onSaveFilter)
saved = self.col.get_config("savedFilters")
if not saved:
return ml
ml.addSeparator()
for name, filt in sorted(saved.items()):
ml.addItem(self._escapeMenuItem(name), self._saved_filter(filt))
return ml
def _onSaveFilter(self) -> None:

View file

@ -699,32 +699,6 @@ class MenuList:
self.renderTo(qmenu)
qmenu.exec_(widget.mapToGlobal(QPoint(0, 0)))
# Chunking
######################################################################
chunkSize = 30
def chunked(self):
if len(self.children) <= self.chunkSize:
return self
newList = MenuList()
oldItems = self.children[:]
while oldItems:
chunk = oldItems[: self.chunkSize]
del oldItems[: self.chunkSize]
label = self._chunkLabel(chunk)
menu = newList.addMenu(label)
menu.children = chunk
return newList
def _chunkLabel(self, items):
start = items[0].title
end = items[-1].title
prefix = os.path.commonprefix([start.upper(), end.upper()])
n = len(prefix) + 1
return "{}-{}".format(start[:n].upper(), end[:n].upper())
class SubMenu(MenuList):
def __init__(self, title):