Fix pipeline order, add selective metadata stripping, rename case/regex
- Move watermark step after compress in processing pipeline to match design doc order (resize, adjustments, convert, compress, metadata, watermark, rename) - Implement selective EXIF metadata stripping for Privacy and Custom modes using little_exif tag filtering (GPS, camera, software, timestamps, copyright categories) - Add case conversion support to rename (none/lower/upper/title) - Add regex find-and-replace on original filenames - Wire case and regex controls in rename step UI to JobConfig - Add regex crate dependency to pixstrip-core
This commit is contained in:
@@ -78,6 +78,9 @@ pub struct JobConfig {
|
||||
pub rename_counter_start: u32,
|
||||
pub rename_counter_padding: u32,
|
||||
pub rename_template: String,
|
||||
pub rename_case: u32, // 0=none, 1=lower, 2=upper, 3=title
|
||||
pub rename_find: String,
|
||||
pub rename_replace: String,
|
||||
// Output
|
||||
pub preserve_dir_structure: bool,
|
||||
pub overwrite_behavior: u8,
|
||||
@@ -389,6 +392,9 @@ fn build_ui(app: &adw::Application) {
|
||||
rename_counter_start: 1,
|
||||
rename_counter_padding: 3,
|
||||
rename_template: String::new(),
|
||||
rename_case: 0,
|
||||
rename_find: String::new(),
|
||||
rename_replace: String::new(),
|
||||
preserve_dir_structure: false,
|
||||
overwrite_behavior: match app_cfg.overwrite_behavior {
|
||||
pixstrip_core::config::OverwriteBehavior::Ask => 0,
|
||||
@@ -1847,6 +1853,9 @@ fn run_processing(_window: &adw::ApplicationWindow, ui: &WizardUi) {
|
||||
} else {
|
||||
Some(cfg.rename_template.clone())
|
||||
},
|
||||
case_mode: cfg.rename_case,
|
||||
regex_find: cfg.rename_find.clone(),
|
||||
regex_replace: cfg.rename_replace.clone(),
|
||||
});
|
||||
}
|
||||
|
||||
@@ -2786,6 +2795,9 @@ fn build_preset_from_config(cfg: &JobConfig, name: &str) -> pixstrip_core::prese
|
||||
} else {
|
||||
Some(cfg.rename_template.clone())
|
||||
},
|
||||
case_mode: cfg.rename_case,
|
||||
regex_find: cfg.rename_find.clone(),
|
||||
regex_replace: cfg.rename_replace.clone(),
|
||||
})
|
||||
} else {
|
||||
None
|
||||
|
||||
Reference in New Issue
Block a user