From 6ee135a52b98a4c89feeff9c813593eb73497e27 Mon Sep 17 00:00:00 2001 From: BasioMeusPuga Date: Thu, 15 Mar 2018 19:23:02 +0530 Subject: [PATCH] Blank lines at the end of each chapter Improve searching --- ePub/read_epub.py | 8 ++++---- lector/widgets.py | 14 ++++++++++++-- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/ePub/read_epub.py b/ePub/read_epub.py index c596007..2786451 100644 --- a/ePub/read_epub.py +++ b/ePub/read_epub.py @@ -264,12 +264,12 @@ class EPUB: for this_chapter in chapters: fallback_title = str(no_title_chapter) self.book['book_list'].append( - (fallback_title, this_chapter)) + (fallback_title, this_chapter + ('
' * 8))) no_title_chapter += 1 else: try: self.book['book_list'].append( - (self.book['navpoint_dict'][i], chapter_data)) + (self.book['navpoint_dict'][i], chapter_data + ('
' * 8))) except KeyError: fallback_title = str(no_title_chapter) self.book['book_list'].append( @@ -303,14 +303,14 @@ def get_split_content(chapter_data, split_by): # As will all empty chapters if bs_obj.text == '\n' or bs_obj.text == '' or count == 0: continue - bs_obj_string = str(bs_obj).replace('">', '', 1) + bs_obj_string = str(bs_obj).replace('">', '', 1) + ('
' * 8) return_list.append( (chapter_titles[count - 1], bs_obj_string)) xml_string = this_split[1] bs_obj = BeautifulSoup(xml_string, 'lxml') - bs_obj_string = str(bs_obj).replace('">', '', 1) + bs_obj_string = str(bs_obj).replace('">', '', 1) + ('
' * 8) return_list.append( (chapter_titles[-1], bs_obj_string)) diff --git a/lector/widgets.py b/lector/widgets.py index ebee063..8ae43db 100644 --- a/lector/widgets.py +++ b/lector/widgets.py @@ -179,7 +179,7 @@ class Tab(QtWidgets.QWidget): # This avoids confusion with potentially duplicate phrases # And the found result is at the top of the window scroll_position = scroll_value * self.contentView.verticalScrollBar().maximum() - self.contentView.verticalScrollBar().setValue(scroll_position * 1.1) + self.contentView.verticalScrollBar().setValue(scroll_position * 1.02) try: search_text = self.metadata['position']['last_visible_text'] @@ -187,7 +187,17 @@ class Tab(QtWidgets.QWidget): search_text = search_data[1] if search_text: - self.contentView.find(search_text) + find_backward = False + + find_forward = self.contentView.find(search_text) + if not find_forward: + find_backward = self.contentView.find( + search_text, QtGui.QTextDocument.FindBackward) + + if find_backward: + current_scroll_position = self.contentView.verticalScrollBar().value() + new_scroll_position = current_scroll_position * .98 + self.contentView.verticalScrollBar().setValue(new_scroll_position) text_cursor = self.contentView.textCursor() text_cursor.clearSelection()