Commit graph

22 commits

Author SHA1 Message Date
wfx
4afc049f60 docs: reorganize documentation
- Simplify README
- Add docs/features.md (formats, roadmap)
- Add docs/usage.md (shortcuts)
- Keep docs/development.md (build instructions)
2026-01-15 06:20:00 +01:00
wfx
e71a97a2cb fix(config): use XDG picture directory as default
Replace hardcoded \"~/Pictures\" with dirs::picture_dir() which resolves
to the actual absolute path (e.g. /home/user/Pictures).

The tilde (~) in paths is not automatically expanded by Rust's PathBuf,
causing path.exists() to return false for \"~/Pictures\".

Using dirs::picture_dir() provides:
- Proper absolute path resolution
- XDG Base Directory compliance
- Fallback to home directory if Pictures doesn't exist

Note: Users with existing config files need to delete
~/.config/cosmic/org.codeberg.wfx.Noctua/v1/default_image_dir
to apply the new default."
2026-01-14 21:03:06 +01:00
mow
afdee6b430 docs: update screenshot 2026-01-14 19:01:58 +01:00
mow
7b36ff143c feat(ui): add header toolbar with navigation and transform buttons
- Add header bar with nav toggle, prev/next, rotate and flip buttons
- Extract header rendering to view/header.rs (MVU architecture)
- Add RotateCW, RotateCCW, FlipHorizontal, FlipVertical messages
- Add PrevDocument, NextDocument navigation messages
- Persist nav_bar_visible and context_drawer_visible in config
- Update properties panel with document info display"
2026-01-14 18:53:36 +01:00
wfx
b1b0999ebe chore: refactoring 2026-01-14 17:16:25 +01:00
wfx
aa83e9ab1d fix: misspelling screenshot(s) 2026-01-10 17:53:37 +01:00
wfx
97988a7be6 fix: Adding a Screenshot 2026-01-10 17:46:08 +01:00
wfx
7414caf185 chore: Adding a Screenshot 2026-01-10 17:40:21 +01:00
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