diff --git a/src/Conf.defaults b/src/Conf.defaults index 85c88ae6..a1137a6d 100644 --- a/src/Conf.defaults +++ b/src/Conf.defaults @@ -42,4 +42,6 @@ autoread_buffers = list(default=list(mentions, direct_messages, events)) spelling_language = string(default="") save_followers_in_autocompletion_db = boolean(default=False) save_friends_in_autocompletion_db = boolean(default=False) -ocr_language = string(default="") \ No newline at end of file +ocr_language = string(default="") + +[filters] diff --git a/src/controller/filterController.py b/src/controller/filterController.py index fc4165ec..3922ab31 100644 --- a/src/controller/filterController.py +++ b/src/controller/filterController.py @@ -1,8 +1,30 @@ # -*- coding: utf-8 -*- +import time +import widgetUtils import application from wxUI.dialogs import filterDialogs class filter(object): - def __init__(self): + def __init__(self, buffer): + self.buffer = buffer self.dialog = filterDialogs.filterDialog(languages=[i["name"] for i in application.supported_languages]) - self.dialog.get_response() \ No newline at end of file + if self.dialog.get_response() == widgetUtils.OK: + contains = self.dialog.get("contains") + term = self.dialog.get("term") + regexp = self.dialog.get("regexp") + load_language = self.dialog.get("load_language") + ignore_language = self.dialog.get("ignore_language") + lang_option = None + if ignore_language: + lang_option = False + elif load_language: + lang_option = True + langs = self.dialog.get_selected_langs() + langcodes = [] + for i in application.supported_languages: + if i["name"] in langs: + langcodes.append(i["code"]) + d = dict(in_buffer=self.buffer.name, word=term, regexp=regexp, in_lang=lang_option, languages=langcodes, if_word_exists=contains) + filter_title = "filter_{0}".format(str(time.time())) + self.buffer.session.settings["filters"][filter_title] = d + self.buffer.session.settings.write() \ No newline at end of file diff --git a/src/controller/mainController.py b/src/controller/mainController.py index f40dffd3..854d4aae 100644 --- a/src/controller/mainController.py +++ b/src/controller/mainController.py @@ -490,7 +490,7 @@ class Controller(object): if not hasattr(page.buffer, "list"): output.speak(_(u"No session is currently in focus. Focus a session with the next or previous session shortcut."), True) return - new_filter = filterController.filter() + new_filter = filterController.filter(page) def seekLeft(self, *args, **kwargs): try: diff --git a/src/wxUI/dialogs/filterDialogs.py b/src/wxUI/dialogs/filterDialogs.py index e96afc29..11ab5b22 100644 --- a/src/wxUI/dialogs/filterDialogs.py +++ b/src/wxUI/dialogs/filterDialogs.py @@ -79,5 +79,5 @@ class filterDialog(baseDialog.BaseWXDialog): self.langs.Delete(n) self.indexes.remove(v) - def get_all_langs(self): + def get_selected_langs(self): return self.indexes