Commit graph

14 commits

Author SHA1 Message Date
wfx
823dfe9fa2 Implement comprehensive metadata extraction for raster images with
EXIF support and display in the right panel.

New features:
- Extract basic metadata (filename, format, resolution, file size, color type)
- Parse EXIF data (camera, date, exposure, aperture, ISO, focal length, GPS)
- Display metadata in collapsible right panel (toggle with 'i' key)
- Auto-refresh metadata on document navigation

Changes by file:

Cargo.toml, Cargo.lock:
- Add kamadak-exif dependency for EXIF parsing

i18n/en/noctua.ftl:
- Add translation strings for all metadata labels

src/app/document/meta.rs:
- New module for metadata types (BasicMeta, ExifMeta, DocumentMeta)
- Extraction logic with EXIF parsing via kamadak-exif
- Helper methods for formatted display (resolution, file size, camera, GPS)

src/app/document/mod.rs:
- Re-export meta module

src/app/document/{raster,vector,portable}.rs:
- Add extract_metadata() method stubs (full impl for raster)

src/app/document/file.rs:
- Reset metadata on document change

src/app/message.rs:
- Add ToggleRightPanel and RefreshMetadata messages

src/app/model.rs:
- Add metadata: Option<DocumentMeta> field
- Add show_right_panel: bool field

src/app/update.rs:
- Handle panel toggle and metadata refresh
- Auto-refresh metadata on navigation when panel visible

src/app/view/panels.rs:
- Implement right_panel() with metadata display
- Conditional sections for basic info and EXIF data

src/app/view/canvas.rs:
- Integrate right panel into layout"
2026-01-10 11:46:07 +01:00
wfx
6623a12632 chore: remove some comments 2026-01-08 21:50:44 +01:00
mow
b67b91e25f Rename icon to org.codeberg.wfx.Noctua.svg (matches app ID) 2026-01-08 20:51:56 +01:00
mow
96b4e40b08 Fix: .metainfo.xml: use modern tags, correct icon/screenshot paths 2026-01-08 20:51:25 +01:00
mow
ed414c9923 Fix: .desktop: remove duplicate Type=, add MimeType entries, set StartupWMClas 2026-01-08 20:50:36 +01:00
mow
d8e5ff559d Fix: correct metainfo path, icon destination, add post-install 2026-01-08 20:49:54 +01:00
mow
21974724c3 fix: namming mistake 2026-01-08 20:24:34 +01:00
mow
d8e7b2e72f chore: better crabby icons 2026-01-08 20:07:02 +01:00
wfx
49a17fb342 chore: a crabby icons 2026-01-08 19:57:31 +01:00
wfx
9aa6fe2d37 docs: A ctual screenshot 2026-01-08 19:53:29 +01:00
wfx
7c21e5cf9b fix: filename 2026-01-08 19:51:51 +01:00
wfx
4c10a80b67 refactor: centralize file handling, fix zoom display and cleanup
File handling (document/file.rs):
- move file operations from app/mod.rs to document/file.rs
- add open_file_dialog() for native file picker
- add collect_directory_siblings() for navigation context
- add open_document_from_path() as main entry point

Zoom/View (panels.rs, canvas.rs, model.rs):
- fix zoom display using ViewMode enum
- ViewMode::Fit shows Fit, ActualSize shows 100%, Custom shows percentage

Model/Update cleanup:
- adjust model.rs for new file handling
- update.rs: use centralized file functions
- document/mod.rs: re-exports for file module

i18n:
BB
ctua.ftl with new/changed strings"
A
- update noctua.ftl with new/changed strings"
2026-01-08 12:20:55 +01:00
wfx
4de63d8549 chore: fix license header 2026-01-07 20:42:28 +01:00
wfx
ab93f649bd chore: initial commit 2026-01-07 20:22:49 +01:00