github dheerajshenoy/lektra v0.6.3

latest releases: v0.7.3, v0.7.2, v0.7.1...
3 months ago

Features

  • Centralised picker widget for both outline and search 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_cache an 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 toPDFSpace and toPixelSpace functions 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_copy
  • cancel_selection -> selection_cancel
  • reselect_last_selection -> selection_last
  • first_page -> page_first
  • last_page -> page_last
  • next_page -> page_next
  • prev_page -> page_prev
  • goto_page -> page_goto
  • prev_location -> location_prev
  • next_location -> location_next
  • close_split -> split_close
  • focus_split_left -> split_focus_left
  • focus_split_right -> split_focus_right
  • focus_split_up -> split_focus_up
  • focus_split_down -> split_focus_down
  • close_other_splits -> split_close_others
  • focus_portal -> portal_focus
  • save_session -> session_save
  • save_as_session -> session_save_as
  • load_session -> session_load
  • text_select_mode -> selection_mode_text
  • region_select_mode -> selection_mode_region
  • open_file_tab -> file_open_tab
  • open_file_vsplit -> file_open_vsplit
  • open_file_hsplit -> file_open_hsplit
  • open_file_dwim -> file_open_dwim
  • close_file -> file_close
  • reload -> file_reload
  • encrypt -> file_encrypt
  • save -> file_save
  • save_as -> file_save_as
  • tab1 -> tab_1
  • tab2 -> tab_2
  • tab3 -> tab_3
  • tab4 -> tab_4
  • tab5 -> tab_5
  • tab6 -> tab_6
  • tab7 -> tab_7
  • tab8 -> tab_8
  • tab9 -> tab_9
  • about -> show_about
  • outline -> picker_outline
  • highlight_annot_search -> picker_highlight_search
  • command_palette -> toggle_command_palette
  • tutorial_file -> show_tutorial_file
  • show_startup -> show_startup_widget
  • fullscreen -> toggle_fullscreen
  • auto_resize -> fit_auto
  • text_highlight_current_selection -> highlight_selection

New commands

  • reopen_last_closed_file - Reopens the recently closed file in a new tab
  • copy_page_image - Copy the current page as image to clipboard
  • file_decrypt - Decrypt the current PDF file
  • annot_popup_mode - Enter popup annotation creation mode
  • reshow_jump_marker - Reshow the jump marker at the current location (useful if it was hidden after timeout)

Optimizations

  • Optimize pageSceneAtPos function 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 LinkHint pointers for efficient access and management of link hints, which should improve performance when showing and hiding link hints.
  • Optimize clearDocumentItems function 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

Don't miss a new lektra release

NewReleases is sending notifications on new releases.