Expand description
Library view module β browse, search, and download assets from an Immich server.
Constructs the main GTK window with a split-pane sidebar, paginated grid view, timeline scrubber, and search bar. Submodules handle the explore dashboard, album grids, lightbox, sidebar, and thumbnail caching independently.
Re-exportsΒ§
pub use texture_decode::set_raw_cache_enabled;pub use texture_decode::set_raw_full_decode;
ModulesΒ§
- actions π
- Selection-mode wiring and bulk batch operations.
- album_
link π - Album-folder linking, sync dialog, and link/unlink actions.
- album_
sync - Album-folder bidirectional sync diff and execution.
- albums_
view - Albums landing page with Recent / Owned / Shared sections.
- asset_
model - Custom
gio::ListModelbacking the library grid. - asset_
object - GObject subclass representing a single asset in the library grid.
- context_
menu π - Right-click context menu popover and its action handlers.
- controls π
- Header bar button wiring, search, sort, source-mode, timeline, and sidebar/grid handlers.
- download π
- Download flow, video handoff, and transfer-tracking helpers.
- explore_
view - Sectioned landing page mirroring Immich webβs Explore tab.
- lightbox π
- Lightbox image viewer: full-screen preview with zoom, pan, EXIF details, and keyboard navigation.
- local_
exif - EXIF / XMP metadata extraction for local files.
- local_
source - Local file enumeration for the library view.
- masonry
- Justified-row masonry layout pieces for the photos grid.
- search_
filters - search_
view - Dedicated search view for the library sidebar.
- server_
stats_ πdialog - Server statistics dialog.
- sidebar
- Sidebar navigation panel for the library window.
- staging_
view - Staging view for files opened via βOpen Withβ or the
--uploadCLI flag. - state
- Library runtime state used by the built-in asset browser.
- style
- Library view CSS: subtle pulsing placeholder for loading thumbnails, a muted error tile, and a rounded transfer progress treatment.
- texture_
decode π - Image decoding pipeline β codec dispatch, RAW/HEIF/JXL/JPEG2K/SVG/PSD/WebP decoders, embedded-preview extraction, EXIF orientation, and decode-cache management.
- thumbnail_
cache - Two-tier (memory + disk) thumbnail cache for the library grid.
- upload_
picker π - Manual upload entry point.
StructsΒ§
- Library
Window πUi - The complete UI widgets state wrapper for the library window interface.
ConstantsΒ§
- LOCAL_
ID_ πPREFIX - PAGE_
SIZE π
FunctionsΒ§
- album_
click_ πhandler - Produce a click callback handler for handling album activation events.
- apply_
timeline_ πui_ state - Apply header control layout adjustments when switching view modes.
- bootstrap_
window π - Bootstrap initial data loading and background tasks for the library window.
- build_
album_ πsidebar_ row - build_
drop_ πoverlay - Build a drop overlay widget and wrap
contentin agtk::Overlay. - build_
library_ window - Build and display the main library window application layout.
- build_
loading_ πview - Construct a styled placeholder view containing an icon, header title, and description text.
Centered Mimick-icon spinner used while library data is fetching. Shares
the
mimick-loader-iconanimation with the lightbox image-load spinner. - build_
search_ πsource - Decide which
LibrarySourcevariant to use based on mode, query, and filters. - build_
status_ πview - connect_
albums_ πcreate - Connect action handlers to the album creation widgets.
- connect_
drop_ πtarget - Attach a
DropTargetto the library window for drag-and-drop file uploads. - connect_
lightweight_ πfilters - Wire the lightweight filter entries embedded in Albums and Explore views.
- connect_
search_ πview - Wire the dedicated search viewβs interactive handlers.
- dispatch_
search_ πfrom_ view - Read the search view widgets and dispatch the appropriate search source.
- fetch_
current_ πuser - Fetch current logged-in API user ID and store it in app context.
- handle_
album_ πdrop_ upload - handle_
drop π - handle_
library_ πdrop_ upload - immich_
checksum_ πto_ hex - Convert a Base64-encoded Immich checksum string to its standard hexadecimal representation.
- linked_
entry_ πpath_ for_ album - Return the path of the watch entry linked to
album_name, if any. Find the local directory watch path mapped to the specified album. - load_
albums π - Retrieve albums from the API and update the side navigation sidebar entries.
- load_
explore_ πlanding - Load smart/metadata sections onto the Explore dashboard view.
- load_
source_ πpage - Load a paginated subset of assets for the current source.
- load_
status π - Fetch and populate active server version details and stats into the UI.
- load_
texture_ πoriented - Load a local texture, preferring decoders that cover formats outside the GDK-Pixbuf runtime loader set before falling back to pixbuf and image-rs.
- local_
to_ πlibrary_ asset - Build a synthetic
LibraryAssetfrom a physical local folder file. - merge_
album_ πunified_ page - Album-scoped variant of
merge_unified_page: takes the albumβs asset page from the remote API and overlays sync state from the albumβs linked local folder only β never from siblings. Merge a page of remote album assets with local folder files linked to the album. - merge_
unified_ πpage - Merge a page of remote API assets with local files that havenβt been synchronized yet.
- month_
year_ πlabel - Convert an ISO 8601 string to a human-readable βMonth Yearβ label.
- open_
asset_ πin_ lightbox - Fetch a single asset by ID and open it in lightbox without leaving explore.
- prompt_
create_ πalbum - Show a popup modal dialog prompting the user to name and create a new album.
- refresh_
albums_ πview - Asynchronously fetch the latest albums from the server and redraw the album views.
- register_
app_ πicons - Register application custom icons with the Gtk icon theme system.
- reload_
sidebar π - Repopulate and select the active album or fixed row in the side navigation sidebar.
- select_
fixed_ πrow - Helper to select a sidebar row matching a specific string key.
- setup_
album_ πdrop_ target - show_
library_ πpermission_ error - Helper to show a permissions error dialog for library views.
- show_
unsupported_ πdrop_ toast - spawn_
server_ πping_ loop - spawn_
transfer_ πpoll_ loop - Start a quick periodic polling loop updating the transfer progress bar UI.
- sync_
content_ πstate - Sync the visibility of the grid, loading, empty, and error page widgets.
- update_
footer π - Update the status sidebar rows with the current server route and statistics.
- update_
timeline_ πbanner_ if_ active - Compute and refresh the month-year overlay text dynamically while scrubbing the timeline list.
- update_
transfer_ πui - Synchronize the ongoing upload/download progress indicator bar and rate information text.