From 2b34c68901464d23c6c8591157b20a5978c30147 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Thu, 20 May 2021 09:50:53 +0530 Subject: [PATCH] Add some formatting to the search results --- src/pyj/read_book/search.pyj | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/pyj/read_book/search.pyj b/src/pyj/read_book/search.pyj index dbf478ba7d..11733098a2 100644 --- a/src/pyj/read_book/search.pyj +++ b/src/pyj/read_book/search.pyj @@ -8,7 +8,7 @@ from book_list.globals import get_session_data from book_list.theme import get_color from book_list.top_bar import create_top_bar from complete import create_search_bar -from dom import clear +from dom import clear, add_extra_css, build_rule from gettext import gettext as _, ngettext from modals import error_dialog from read_book.globals import current_book, ui_operations @@ -94,14 +94,14 @@ class SearchOverlay: E.option(_('Whole words'), value='word', selected=mode=='word'), E.option(_('Regex'), value='regex', selected=mode=='regex'), onchange=def(event): - get_session_data().set('book_search_mode', event.target.checked) + get_session_data().set('book_search_mode', event.target.value) ), ), E.div('\xa0\xa0'), E.label(E.input( type='checkbox', name='case_sensitive', checked=bool(sd.get('book_search_case_sensitive'))), onchange=def(event): - get_session_data().set('book_search_case_sensitive', event.target.value) + get_session_data().set('book_search_case_sensitive', event.target.checked) , _('Case sensitive'), ), E.div('\xa0\xa0'), @@ -199,11 +199,10 @@ class SearchOverlay: c = self.results_container group = c.querySelector(f'[data-toc-node-id="{toc_node_id}"]') if not group: - title = toc_node?.title or _('Unknown') group = E.div( data_toc_node_id=toc_node_id + '', data_spine_index=result.spine_idx + '', - E.div(title, style='font-style: italic'), + E.div(toc_node?.title or _('Unknown')), E.ul() ) appended = False @@ -289,4 +288,15 @@ class SearchOverlay: self.queue_search(q, current_book(), self.view.currently_showing.name) +add_extra_css(def(): + css = '' + sel = f'#{SearchOverlay.CONTAINER_ID} ' + sel += ' div[data-toc-node-id] ' + css += build_rule(sel, margin='1rem') + css += build_rule(sel + ' > div', font_style='italic', font_weight='bold', cursor='pointer') + css += build_rule(sel + ' li', list_style_type='none', margin='1rem', margin_right='0') + return css +) + + main = worker_main