diff options
author | Matthias Baumgartner <dev@igsor.net> | 2023-01-13 09:49:10 +0100 |
---|---|---|
committer | Matthias Baumgartner <dev@igsor.net> | 2023-01-13 09:49:10 +0100 |
commit | 9c366758665d9cfee7796ee45a8167a5412ae9ae (patch) | |
tree | b42e0a1fd4b1bd59fc31fad6267b83c2dc9a3a3b /tagit/actions | |
parent | 8f2f697f7ed52b7e1c7a17411b2de526b6490691 (diff) | |
download | tagit-9c366758665d9cfee7796ee45a8167a5412ae9ae.tar.gz tagit-9c366758665d9cfee7796ee45a8167a5412ae9ae.tar.bz2 tagit-9c366758665d9cfee7796ee45a8167a5412ae9ae.zip |
filter early port, parsing adaptions
Diffstat (limited to 'tagit/actions')
-rw-r--r-- | tagit/actions/__init__.py | 14 | ||||
-rw-r--r-- | tagit/actions/filter.py | 33 |
2 files changed, 25 insertions, 22 deletions
diff --git a/tagit/actions/__init__.py b/tagit/actions/__init__.py index 034c4a1..c34cbe8 100644 --- a/tagit/actions/__init__.py +++ b/tagit/actions/__init__.py @@ -57,13 +57,13 @@ class ActionBuilder(BuilderBase): 'SelectInvert': browser.SelectInvert, 'Select': browser.Select, ## filter - #'AddToken': filter.AddToken, - #'RemoveToken': filter.RemoveToken, - #'SetToken': filter.SetToken, - #'EditToken': filter.EditToken, - #'GoBack': filter.GoBack, - #'GoForth': filter.GoForth, - #'JumpToToken': filter.JumpToToken, + 'AddToken': filter.AddToken, + 'RemoveToken': filter.RemoveToken, + 'SetToken': filter.SetToken, + 'EditToken': filter.EditToken, + 'GoBack': filter.GoBack, + 'GoForth': filter.GoForth, + 'JumpToToken': filter.JumpToToken, #'SearchByAddressOnce': filter.SearchByAddressOnce, #'SearchmodeSwitch': filter.SearchmodeSwitch, ## grouping diff --git a/tagit/actions/filter.py b/tagit/actions/filter.py index 3702879..e878952 100644 --- a/tagit/actions/filter.py +++ b/tagit/actions/filter.py @@ -12,14 +12,12 @@ from kivy.lang import Builder import kivy.properties as kp # tagit imports -from tagit import config -from tagit import dialogues -#from tagit.parsing import ParserError # FIXME: mb/port -#from tagit.parsing.search import ast_from_string, ast_to_string, ast # FIXME: mb/port -#from tagit.storage.base import ns # FIXME: mb/port -from tagit.utils import Frame -from tagit.widgets.bindings import Binding +from tagit import config, dialogues +from tagit.utils import errors, Frame +from tagit.widgets import Binding from tagit.widgets.filter import FilterAwareMixin +#from tagit.parsing.search import ast_to_string, ast # FIXME: mb/port +#from tagit.storage.base import ns # FIXME: mb/port # inner-module imports from .action import Action @@ -54,7 +52,7 @@ class SetToken(Action): with self.root.filter as filter: try: # parse filter into tokens - tokens = list(ast_from_string(text)) + tokens = list(self.root.session.filter_from_string(text)) # grab current frame filter.f_head.append(self.root.browser.frame) @@ -93,7 +91,10 @@ class AddToken(Action): def apply(self, token=None): if token is None: - sugg = {node.label for node in self.root.session.storage.all(ns.tagit.storage.base.Tag)} + #sugg = {node.label for node in self.root.session.storage.all(ns.tagit.storage.base.Tag)} + # FIXME: mb/port/bsfs + #sugg = set(self.root.session.storage.all(ns.bsfs.Tag).label()) + sugg = {'hello', 'world'} dlg = dialogues.TokenEdit(suggestions=sugg) dlg.bind(on_ok=lambda wx: self.add_from_string(wx.text)) dlg.open() @@ -104,8 +105,8 @@ class AddToken(Action): def add_from_string(self, text): try: - self.add_token(ast_from_string(text)) - except ParserError as e: + self.add_token(self.root.session.filter_from_string(text)) + except errors.ParserError as e: dialogues.Error(text=f'syntax error: {e}').open() def add_token(self, tokens): @@ -128,8 +129,10 @@ class EditToken(Action): text = kp.StringProperty('Edit token') def apply(self, token): - sugg = {node.label for node in self.root.session.storage.all(ns.tagit.storage.base.Tag)} - text = ast_to_string(token) + #sugg = {node.label for node in self.root.session.storage.all(ns.tagit.storage.base.Tag)} # FIXME: mb/port + sugg = {'hello', 'world'} # FIXME: mb/port + #text = ast_to_string(token) + text = 'hello world' dlg = dialogues.TokenEdit(text=text, suggestions=sugg) dlg.bind(on_ok=lambda obj: self.on_ok(token, obj)) dlg.open() @@ -137,8 +140,8 @@ class EditToken(Action): def on_ok(self, token, obj): with self.root.filter as filter: try: - tokens_from_text = ast_from_string(obj.text) - except ParserError as e: + tokens_from_text = self.root.session.filter_from_string(obj.text) # FIXME: mb/port + except errors.ParserError as e: dialogues.Error(text=f'Invalid token: {e}').open() return |