Features
- Centralised
pickerwidget for bothoutlineandsearch highlights(and potentially other similar widgets in the future). This allows us to reuse the code for both features and also allows us to easily add new features that require a similar UI in the future. - Orderless, space-aware searching ability for pickers by default (e.g. "open file", "file open" both will match "file_open" command)
- Add recent files picker (command:
files_recent) to quickly access recently opened files - Per page dimension support (instead of using the dimensions of the first page for the entire document, which causes issues with documents that have pages of different sizes)
- New config option
[window]initial_size(array of 2 ints): Initial window size in pixels (width, height)
[rendering]antialiasing(bool): Enable/Disable antialiasing for rendering (default: true)text_antialiasing(bool): Enable/Disable antialiasing for text rendering (default: true)smooth_pixmap_transform(bool): Enable/Disable smooth pixmap transformation when scaling (default: true)
[behavior]preload_pages(int): Number of pages to preload before and after the current page for smoother navigation (default: 5)
[selection]copy_on_select(bool): Copies selection to clipboard when text is selected (default: false)
Optimizations
- Fix MessageBar's showMessage causing resizeEvent of GraphicsView causing re-rendering of displayed pages
- Make
text_cachean LRU cache to reduce memory usage on large documents (used for text searching) - Use page dimension cache (instead of repeatedely querying the document for dimension) for
toPDFSpaceandtoPixelSpacefunctions to improve performance when converting coordinates between PDF space and pixel space, especially for documents with many pages or varying page sizes. - Memory efficient QImage for page rendering and avoiding conversion to QPixmap. (Huge performance boost)
Breaking Changes
- Remove
[outline]and[search_highlight]sections from the config - Rename
[overlays]to[picker]which is a more accurate name for what it does - Add
[picker.keys]section for keybindings related to the picker navigation keys (which applies to all picker widgets like outline, search highlights, recent files, etc.) - Removed panel settings from
[outline]and[search_highlight]section as overlays are the only variant supported for now.
Renamed commands
yank->selection_copycancel_selection->selection_cancelreselect_last_selection->selection_lastfirst_page->page_firstlast_page->page_lastnext_page->page_nextprev_page->page_prevgoto_page->page_gotoprev_location->location_prevnext_location->location_nextclose_split->split_closefocus_split_left->split_focus_leftfocus_split_right->split_focus_rightfocus_split_up->split_focus_upfocus_split_down->split_focus_downclose_other_splits->split_close_othersfocus_portal->portal_focussave_session->session_savesave_as_session->session_save_asload_session->session_loadtext_select_mode->selection_mode_textregion_select_mode->selection_mode_regionopen_file_tab->file_open_tabopen_file_vsplit->file_open_vsplitopen_file_hsplit->file_open_hsplitopen_file_dwim->file_open_dwimclose_file->file_closereload->file_reloadencrypt->file_encryptsave->file_savesave_as->file_save_astab1->tab_1tab2->tab_2tab3->tab_3tab4->tab_4tab5->tab_5tab6->tab_6tab7->tab_7tab8->tab_8tab9->tab_9about->show_aboutoutline->picker_outlinehighlight_annot_search->picker_highlight_searchcommand_palette->toggle_command_palettetutorial_file->show_tutorial_fileshow_startup->show_startup_widgetfullscreen->toggle_fullscreenauto_resize->fit_autotext_highlight_current_selection->highlight_selection
New commands
reopen_last_closed_file- Reopens the recently closed file in a new tabcopy_page_image- Copy the current page as image to clipboardfile_decrypt- Decrypt the current PDF fileannot_popup_mode- Enter popup annotation creation modereshow_jump_marker- Reshow the jump marker at the current location (useful if it was hidden after timeout)
Optimizations
- Optimize
pageSceneAtPosfunction to use a more efficient way of finding the page at a given position, which should improve performance when clicking on links or navigating to specific locations in the document. - Maintain a vector for
LinkHintpointers for efficient access and management of link hints, which should improve performance when showing and hiding link hints. - Optimize
clearDocumentItemsfunction to efficiently clear all items related to a document when it's closed, which should improve performance and reduce memory usage when closing documents.
Bug Fixes
- Fix for tab title not updated when closing split
- Fix for tab title not updated which changing current split focus