noctua/src/constant.rs
wfx 9399a008c4 refactor: improve code quality and consistency
Comprehensive code audit addressing naming consistency, dead code removal,
and documentation improvements across the entire codebase.

- Rename panel_pages.rs → pages_panel.rs for consistent naming
- Unify view functions: all panels now use view() convention
- Rename header_start/end() → start/end() for brevity
- Update all imports and references

- Remove Rotation::from_degrees() (only 4 fixed states needed)
- Remove TransformState::identity() and is_identity() (Default suffices)
- Remove duplicate convenience methods from RasterDocument, VectorDocument,
  PortableDocument (rotate_cw/ccw, flip_horizontal/vertical)
- Remove unused imports and constants (ROTATION_STEP, FULL_ROTATION)

- Rename constants: PDF_RENDER_SCALE → PDF_RENDER_QUALITY,
  PDF_THUMBNAIL_SCALE → PDF_THUMBNAIL_SIZE
- Add comprehensive trait documentation explaining type erasure pattern
- Document why large enum variants are acceptable
- Add #[allow(dead_code)] with explanations for trait API types
- Improve all constant and config comments

- Collapse nested if statements using Rust 2024 let-chains
- Replace single-arm match with if-let
- Introduce StateChangeCallback<Message> type alias
- Apply clippy auto-fixes for better code style
2026-01-19 19:42:54 +01:00

34 lines
1.2 KiB
Rust

// SPDX-License-Identifier: GPL-3.0-or-later
// src/constant.rs
//
// Application constants that should not be changed by the user.
/// Minutes per degree (GPS coordinate conversion: DMS to decimal degrees).
pub const MINUTES_PER_DEGREE: f64 = 60.0;
/// Seconds per degree (GPS coordinate conversion: DMS to decimal degrees).
pub const SECONDS_PER_DEGREE: f64 = 3600.0;
/// Minimum pixmap size for SVG rendering (prevents zero-size pixmaps).
pub const MIN_PIXMAP_SIZE: u32 = 1;
/// Tolerance for scale comparisons (float precision in zoom synchronization).
pub const SCALE_EPSILON: f32 = 0.0001;
/// Tolerance for offset comparisons (float precision in pan synchronization).
pub const OFFSET_EPSILON: f32 = 0.01;
/// Maximum width in pixels for page navigation thumbnails.
pub const THUMBNAIL_MAX_WIDTH: f32 = 100.0;
/// Cache directory name under ~/.cache/ for thumbnail storage.
pub const CACHE_DIR: &str = "noctua";
/// File extension for cached thumbnails.
pub const THUMBNAIL_EXT: &str = "png";
/// PDF page render quality multiplier (2.0 = double resolution for sharp display).
pub const PDF_RENDER_QUALITY: f64 = 2.0;
/// PDF thumbnail size multiplier (0.25 = 25% for fast preview generation).
pub const PDF_THUMBNAIL_SIZE: f64 = 0.25;