diff --git a/src/pyj/read_book/iframe.pyj b/src/pyj/read_book/iframe.pyj index ea8d5ee03a..02bb34276b 100644 --- a/src/pyj/read_book/iframe.pyj +++ b/src/pyj/read_book/iframe.pyj @@ -91,22 +91,22 @@ class IframeBoss: self.forward_keypresses = False set_boss(self) handlers = { - 'initialize':self.initialize, - 'display': self.display, - 'scroll_to_anchor': self.on_scroll_to_anchor, - 'scroll_to_ref': self.on_scroll_to_ref, - 'scroll_to_frac': self.on_scroll_to_frac, - 'next_screen': self.on_next_screen, - 'change_font_size': self.change_font_size, 'change_color_scheme': self.change_color_scheme, - 'gesture_from_margin': self.gesture_from_margin, - 'wheel_from_margin': self.wheel_from_margin, + 'change_font_size': self.change_font_size, + 'display': self.display, 'find': self.find, - 'window_size': self.received_window_size, + 'gesture_from_margin': self.gesture_from_margin, 'get_current_cfi': self.get_current_cfi, + 'initialize':self.initialize, + 'modify_selection': self.modify_selection, + 'next_screen': self.on_next_screen, + 'scroll_to_anchor': self.on_scroll_to_anchor, + 'scroll_to_frac': self.on_scroll_to_frac, + 'scroll_to_ref': self.on_scroll_to_ref, 'set_forward_keypresses': self.set_forward_keypresses, 'set_reference_mode': self.set_reference_mode, - 'modify_selection': self.modify_selection, + 'wheel_from_margin': self.wheel_from_margin, + 'window_size': self.received_window_size, } self.comm = IframeClient(handlers) self.last_window_ypos = 0 diff --git a/src/pyj/read_book/settings.pyj b/src/pyj/read_book/settings.pyj index cf922e4fe3..e0892e75cd 100644 --- a/src/pyj/read_book/settings.pyj +++ b/src/pyj/read_book/settings.pyj @@ -4,23 +4,24 @@ from __python__ import hash_literals from elementmaker import E from read_book.globals import runtime +from session import defaults opts = {} def update_settings(settings): - settings = settings or {} - opts.columns_per_screen = settings.columns_per_screen or {'portrait':0, 'landscape':0} - opts.margin_left = max(0, settings.margin_left or 0) - opts.margin_right = max(0, settings.margin_right or 0) - opts.color_scheme = settings.color_scheme - opts.base_font_size = max(8, min(settings.base_font_size or 16, 64)) - opts.user_stylesheet = settings.user_stylesheet or '' - opts.hide_tooltips = settings.hide_tooltips - opts.cover_preserve_aspect_ratio = v'!!settings.cover_preserve_aspect_ratio' + settings = settings or defaults + opts.base_font_size = max(8, min(settings.base_font_size, 64)) opts.bg_image_fade = settings.bg_image_fade or 'transparent' - opts.paged_wheel_scrolls_by_screen = v'!!settings.paged_wheel_scrolls_by_screen' + opts.color_scheme = settings.color_scheme + opts.columns_per_screen = settings.columns_per_screen + opts.cover_preserve_aspect_ratio = v'!!settings.cover_preserve_aspect_ratio' + opts.hide_tooltips = settings.hide_tooltips opts.is_dark_theme = v'!!settings.is_dark_theme' - opts.override_book_colors = settings.override_book_colors or 'never' + opts.margin_left = max(0, settings.margin_left) + opts.margin_right = max(0, settings.margin_right) + opts.override_book_colors = settings.override_book_colors + opts.paged_wheel_scrolls_by_screen = v'!!settings.paged_wheel_scrolls_by_screen' + opts.user_stylesheet = settings.user_stylesheet update_settings() diff --git a/src/pyj/read_book/view.pyj b/src/pyj/read_book/view.pyj index 82e291028f..6b4dabbf44 100644 --- a/src/pyj/read_book/view.pyj +++ b/src/pyj/read_book/view.pyj @@ -200,29 +200,29 @@ class View: ), ) handlers = { - 'ready': self.on_iframe_ready, + 'bump_font_size': self.bump_font_size, + 'content_loaded': self.on_content_loaded, 'error': self.on_iframe_error, - 'next_spine_item': self.on_next_spine_item, - 'next_section': self.on_next_section, - 'lookup_word': self.on_lookup_word, + 'find_in_spine': self.on_find_in_spine, 'goto_doc_boundary': def(data): self.goto_doc_boundary(data.start);, + 'handle_keypress': self.on_handle_keypress, + 'handle_shortcut': self.on_handle_shortcut, + 'human_scroll': self.on_human_scroll, + 'lookup_word': self.on_lookup_word, + 'next_section': self.on_next_section, + 'next_spine_item': self.on_next_spine_item, + 'print': self.on_print, + 'ready': self.on_iframe_ready, + 'reference_item_changed': self.on_reference_item_changed, + 'report_cfi': self.on_report_cfi, + 'request_size': self.on_request_size, 'scroll_to_anchor': self.on_scroll_to_anchor, + 'selectionchange': self.on_selection_change, + 'show_chrome': self.show_chrome, + 'show_footnote': self.on_show_footnote, 'update_cfi': self.on_update_cfi, 'update_progress_frac': self.on_update_progress_frac, - 'report_cfi': self.on_report_cfi, 'update_toc_position': self.on_update_toc_position, - 'content_loaded': self.on_content_loaded, - 'show_chrome': self.show_chrome, - 'bump_font_size': self.bump_font_size, - 'find_in_spine': self.on_find_in_spine, - 'request_size': self.on_request_size, - 'show_footnote': self.on_show_footnote, - 'print': self.on_print, - 'human_scroll': self.on_human_scroll, - 'selectionchange': self.on_selection_change, - 'handle_shortcut': self.on_handle_shortcut, - 'handle_keypress': self.on_handle_keypress, - 'reference_item_changed': self.on_reference_item_changed, } entry_point = None if runtime.is_standalone_viewer else 'read_book.iframe' if runtime.is_standalone_viewer: diff --git a/src/pyj/session.pyj b/src/pyj/session.pyj index 17d88003ac..d8a79d9679 100644 --- a/src/pyj/session.pyj +++ b/src/pyj/session.pyj @@ -9,72 +9,72 @@ from ajax import ajax_send defaults = { # Book list settings - 'view_mode': 'cover_grid', - 'sort': 'timestamp.desc', # comma separated list of items of the form: field.order + 'copy_to_library_dupes': 'add;overwrite', 'last_sort_order': {}, 'show_all_metadata': False, # show all metadata fields in the book details panel - 'copy_to_library_dupes': 'add;overwrite', + 'sort': 'timestamp.desc', # comma separated list of items of the form: field.order + 'view_mode': 'cover_grid', # Tag Browser settings - 'partition_method': 'first letter', # other choices: 'disable', 'partition' + 'and_search_terms': False, # how to add search terms to the search expression from the Tag Browser 'collapse_at': 25, # number of items at which sub-groups are created, 0 to disable 'dont_collapse': '', # comma separated list of category names - 'sort_tags_by': 'name', # other choices: popularity, rating 'hide_empty_categories': 'no', - 'and_search_terms': False, # how to add search terms to the search expression from the Tag Browser + 'partition_method': 'first letter', # other choices: 'disable', 'partition' + 'sort_tags_by': 'name', # other choices: popularity, rating # Book reader settings - 'margin_right': 20, - 'margin_left': 20, - 'margin_top': 20, - 'margin_bottom': 20, - 'read_mode': 'paged', - 'cover_preserve_aspect_ratio': True, - 'max_text_height': 0, - 'max_text_width': 0, - 'columns_per_screen': {'portrait':0, 'landscape':0}, - 'user_stylesheet': '', - 'background_image': None, - 'background_image_style': 'scaled', 'background_image_fade': 0, - 'current_color_scheme': 'system', - 'user_color_schemes': {}, - 'override_book_colors': 'never', + 'background_image_style': 'scaled', + 'background_image': None, 'base_font_size': 16, + 'book_scrollbar': False, + 'columns_per_screen': {'portrait':0, 'landscape':0}, 'controls_help_shown_count': 0, - 'header': {}, + 'cover_preserve_aspect_ratio': True, + 'current_color_scheme': 'system', 'footer': {'right': 'progress'}, - 'word_actions': v'[]', + 'header': {}, 'hide_tooltips': False, 'keyboard_shortcuts': {}, - 'book_scrollbar': False, + 'margin_bottom': 20, + 'margin_left': 20, + 'margin_right': 20, + 'margin_top': 20, + 'max_text_height': 0, + 'max_text_width': 0, + 'override_book_colors': 'never', + 'paged_margin_clicks_scroll_by_screen': True, + 'paged_wheel_scrolls_by_screen': False, + 'read_mode': 'paged', 'standalone_font_settings': {}, 'standalone_misc_settings': {}, 'standalone_recently_opened': v'[]', - 'paged_wheel_scrolls_by_screen': False, - 'paged_margin_clicks_scroll_by_screen': True, + 'user_color_schemes': {}, + 'user_stylesheet': '', + 'word_actions': v'[]', } is_local_setting = { - 'margin_right': True, - 'margin_left': True, - 'margin_top': True, + 'background_image_fade': True, + 'background_image_style': True, + 'background_image': True, + 'base_font_size': True, + 'columns_per_screen': True, + 'controls_help_shown_count': True, + 'current_color_scheme': True, 'margin_bottom': True, - 'read_mode': 'paged', + 'margin_left': True, + 'margin_right': True, + 'margin_top': True, 'max_text_height': True, 'max_text_width': True, - 'columns_per_screen': True, - 'user_stylesheet': True, - 'background_image': True, - 'background_image_style': True, - 'background_image_fade': True, - 'current_color_scheme': True, 'override_book_colors': True, - 'base_font_size': True, - 'controls_help_shown_count': True, + 'read_mode': 'paged', 'standalone_font_settings': True, 'standalone_misc_settings': True, 'standalone_recently_opened': True, + 'user_stylesheet': True, }