Add all wizard step UIs: workflow, images, resize, convert, compress, metadata, output

This commit is contained in:
2026-03-06 11:08:38 +02:00
parent 9fe680dad5
commit d36f90565e
10 changed files with 980 additions and 26 deletions

View File

@@ -1,3 +1,5 @@
use crate::steps;
pub struct WizardState {
pub current_step: usize,
pub total_steps: usize,
@@ -59,30 +61,13 @@ impl WizardState {
}
pub fn build_wizard_pages() -> Vec<adw::NavigationPage> {
let steps = [
("step-workflow", "Choose a Workflow", "image-x-generic-symbolic", "Select a preset or build a custom workflow"),
("step-images", "Add Images", "folder-pictures-symbolic", "Drop images here or click Browse"),
("step-resize", "Resize", "view-fullscreen-symbolic", "Set output dimensions"),
("step-convert", "Convert", "document-save-symbolic", "Choose output format"),
("step-compress", "Compress", "system-file-manager-symbolic", "Set compression quality"),
("step-metadata", "Metadata", "security-high-symbolic", "Control metadata privacy"),
("step-output", "Output & Process", "emblem-ok-symbolic", "Review and process"),
];
steps
.iter()
.map(|(tag, title, icon, description)| {
let status_page = adw::StatusPage::builder()
.title(*title)
.description(*description)
.icon_name(*icon)
.build();
adw::NavigationPage::builder()
.title(*title)
.tag(*tag)
.child(&status_page)
.build()
})
.collect()
vec![
steps::step_workflow::build_workflow_page(),
steps::step_images::build_images_page(),
steps::step_resize::build_resize_page(),
steps::step_convert::build_convert_page(),
steps::step_compress::build_compress_page(),
steps::step_metadata::build_metadata_page(),
steps::step_output::build_output_page(),
]
}