def validator(c): if c == 27: # ctrl A >then> ctrl K # regex = None return 7 elif c == 10: return 7 # RETURN key -- CTRL-g = 7 and CTRL-j = 10 else: curses_view.search_textbox.do_command(c) if c == curses.KEY_UP and Control.current_regex_index > 0: Control.current_regex_index -= 1 curses_view.footer_pad.clear() CursesView.add_str(curses_view.footer_pad, Control.regex_patterns[Control.current_regex_index].value) elif c == curses.KEY_DOWN and Control.current_regex_index < len(Control.regex_patterns) - 1: Control.current_regex_index += 1 curses_view.footer_pad.clear() CursesView.add_str(curses_view.footer_pad, Control.regex_patterns[Control.current_regex_index].value) elif c == curses.KEY_DOWN and Control.current_regex_index == len(Control.regex_patterns) - 1: Control.current_regex_index += 1 curses_view.footer_pad.clear() CursesView.add_str(curses_view.footer_pad, curses_view.search_prompt) if curses_view.search_textbox.gather() is '': return 7
def pressed_slash(): Control.reload_notes = False if TixMode.current == TixMode.LIST: Control.reload_thread_lock.acquire() def validator(c): if c == 27: # ctrl A >then> ctrl K # regex = None return 7 elif c == 10: return 7 # RETURN key -- CTRL-g = 7 and CTRL-j = 10 else: curses_view.search_textbox.do_command(c) if c == curses.KEY_UP and Control.current_regex_index > 0: Control.current_regex_index -= 1 curses_view.footer_pad.clear() CursesView.add_str(curses_view.footer_pad, Control.regex_patterns[Control.current_regex_index].value) elif c == curses.KEY_DOWN and Control.current_regex_index < len(Control.regex_patterns) - 1: Control.current_regex_index += 1 curses_view.footer_pad.clear() CursesView.add_str(curses_view.footer_pad, Control.regex_patterns[Control.current_regex_index].value) elif c == curses.KEY_DOWN and Control.current_regex_index == len(Control.regex_patterns) - 1: Control.current_regex_index += 1 curses_view.footer_pad.clear() CursesView.add_str(curses_view.footer_pad, curses_view.search_prompt) if curses_view.search_textbox.gather() is '': return 7 regex = "" try: curses.curs_set(1) except curses.error: # iphone pass Control.current_regex_index = len(Control.regex_patterns) curses_view.footer_pad.clear() CursesView.add_str(curses_view.footer_pad, curses_view.search_prompt) self.is_searching = True regex = curses_view.search_textbox.edit(validator) self.is_searching = False try: curses.curs_set(0) except curses.error: # iphone pass if regex != None: regex = regex[len(curses_view.search_prompt):] if regex.strip(): h = History(curses_view.search_prompt + regex) h.append_to_file(utils.get_search_history_path()) Control.regex_patterns.append(h) Control.list_visible_index = 0 curses_view.adjust_scroll(len(self.stored_items)) list_modes = self.stored_items.modes() current_mode = list_modes[UserMode.current] for note in self.stored_items: if note.is_search_match(regex): if (current_mode == UserMode.ALL or current_mode in note.modes): note.visible(True) elif (current_mode == UserMode.NOTAG and not note.modes): note.visible(True) else: note.visible(False) Control.reload_thread_lock.release()