aboutsummaryrefslogtreecommitdiffstats
path: root/tagit/actions
diff options
context:
space:
mode:
authorMatthias Baumgartner <dev@igsor.net>2023-01-13 09:49:10 +0100
committerMatthias Baumgartner <dev@igsor.net>2023-01-13 09:49:10 +0100
commit9c366758665d9cfee7796ee45a8167a5412ae9ae (patch)
treeb42e0a1fd4b1bd59fc31fad6267b83c2dc9a3a3b /tagit/actions
parent8f2f697f7ed52b7e1c7a17411b2de526b6490691 (diff)
downloadtagit-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__.py14
-rw-r--r--tagit/actions/filter.py33
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