filter selection improved

This commit is contained in:
Dirk Alders 2025-07-25 00:02:44 +02:00
parent ae3dd84aed
commit 11c187dbb6

View File

@ -62,26 +62,31 @@ class OptionSelectList(dict):
def Toggle(self, entry_num): def Toggle(self, entry_num):
if entry_num < 0: if entry_num < 0:
if not self.__selection_regex__:
self.__default_value__ = entry_num == -1 self.__default_value__ = entry_num == -1
for key in self: for key in self:
self[key] = self.__default_value__ if self.__match__(key):
self[key] = entry_num == -1
elif entry_num > len(self): elif entry_num > len(self):
raise ValueError(f"The Entry '{entry} is not in the list") raise ValueError(f"The Entry '{entry} is not in the list")
else: else:
entry = self.__sorted_keys__()[entry_num] entry = self.__sorted_keys__()[entry_num]
self[entry] = not self[entry] self[entry] = not self[entry]
def __match__(self, key):
try:
match = len(re.findall(self.__selection_regex__, key)) > 0
except re.error:
match = True # No valid regular expression
return match
def GetSelectList(self): def GetSelectList(self):
rv = [] rv = []
if len(self) > 2: if len(self) > 2:
rv.append(('All', -1)) rv.append(('All', -1))
rv.append(('None', -2)) rv.append(('None', -2))
for index, key in enumerate(self.__sorted_keys__()): for index, key in enumerate(self.__sorted_keys__()):
try: if self.__match__(key):
match = len(re.findall(self.__selection_regex__, key)) > 0
except re.error:
match = True # No valid regular expression
if match:
prefix = "\\[X] " if self[key] else "\\[-] " prefix = "\\[X] " if self[key] else "\\[-] "
rv.append((prefix + key, index)) rv.append((prefix + key, index))
return rv return rv
@ -111,7 +116,7 @@ class MqttSniffer(App):
("q", "quit", "Quit"), ("q", "quit", "Quit"),
("c", "clear_screen", "Clear") ("c", "clear_screen", "Clear")
] ]
MAX_LOGS = 50 MAX_LOGS = 1000
def __init__(self, args, password): def __init__(self, args, password):
super().__init__() super().__init__()