Improve UX, add popover tour, metadata, and hicolor icons
- Redesign tutorial tour from modal dialogs to popovers pointing at actual UI elements - Add beginner-friendly improvements: help buttons, tooltips, welcome wizard enhancements - Add AppStream metainfo with screenshots, branding, categories, keywords, provides - Update desktop file with GTK category and SingleMainWindow - Add hicolor icon theme with all sizes (16-512px) - Fix debounce SourceId panic in rename step - Various step UI improvements and bug fixes
This commit is contained in:
@@ -10,6 +10,7 @@ pub struct Preset {
|
||||
pub name: String,
|
||||
pub description: String,
|
||||
pub icon: String,
|
||||
pub icon_color: String,
|
||||
pub is_custom: bool,
|
||||
pub resize: Option<ResizeConfig>,
|
||||
pub rotation: Option<Rotation>,
|
||||
@@ -27,6 +28,7 @@ impl Default for Preset {
|
||||
name: String::new(),
|
||||
description: String::new(),
|
||||
icon: "image-x-generic-symbolic".into(),
|
||||
icon_color: String::new(),
|
||||
is_custom: true,
|
||||
resize: None,
|
||||
rotation: None,
|
||||
@@ -90,6 +92,7 @@ impl Preset {
|
||||
name: "Blog Photos".into(),
|
||||
description: "Resize 1200px wide, JPEG quality High, strip all metadata".into(),
|
||||
icon: "image-x-generic-symbolic".into(),
|
||||
icon_color: "accent".into(),
|
||||
is_custom: false,
|
||||
resize: Some(ResizeConfig::ByWidth(1200)),
|
||||
rotation: None,
|
||||
@@ -107,6 +110,7 @@ impl Preset {
|
||||
name: "Social Media".into(),
|
||||
description: "Resize to fit 1080x1080, compress Medium, strip metadata".into(),
|
||||
icon: "system-users-symbolic".into(),
|
||||
icon_color: "success".into(),
|
||||
is_custom: false,
|
||||
resize: Some(ResizeConfig::FitInBox {
|
||||
max: Dimensions {
|
||||
@@ -130,6 +134,7 @@ impl Preset {
|
||||
name: "Web Optimization".into(),
|
||||
description: "Convert to WebP, compress High, sequential rename".into(),
|
||||
icon: "web-browser-symbolic".into(),
|
||||
icon_color: "accent".into(),
|
||||
is_custom: false,
|
||||
resize: None,
|
||||
rotation: None,
|
||||
@@ -160,6 +165,7 @@ impl Preset {
|
||||
name: "Email Friendly".into(),
|
||||
description: "Resize 800px wide, JPEG quality Medium".into(),
|
||||
icon: "mail-unread-symbolic".into(),
|
||||
icon_color: "warning".into(),
|
||||
is_custom: false,
|
||||
resize: Some(ResizeConfig::ByWidth(800)),
|
||||
rotation: None,
|
||||
@@ -177,6 +183,7 @@ impl Preset {
|
||||
name: "Privacy Clean".into(),
|
||||
description: "Strip all metadata, no other changes".into(),
|
||||
icon: "security-high-symbolic".into(),
|
||||
icon_color: "error".into(),
|
||||
is_custom: false,
|
||||
resize: None,
|
||||
rotation: None,
|
||||
@@ -194,6 +201,7 @@ impl Preset {
|
||||
name: "Photographer Export".into(),
|
||||
description: "Resize 2048px, compress High, privacy metadata, rename by date".into(),
|
||||
icon: "camera-photo-symbolic".into(),
|
||||
icon_color: "success".into(),
|
||||
is_custom: false,
|
||||
resize: Some(ResizeConfig::ByWidth(2048)),
|
||||
rotation: None,
|
||||
@@ -224,6 +232,7 @@ impl Preset {
|
||||
name: "Archive Compress".into(),
|
||||
description: "Lossless compression, preserve metadata".into(),
|
||||
icon: "folder-symbolic".into(),
|
||||
icon_color: "warning".into(),
|
||||
is_custom: false,
|
||||
resize: None,
|
||||
rotation: None,
|
||||
@@ -241,6 +250,7 @@ impl Preset {
|
||||
name: "Print Ready".into(),
|
||||
description: "Maximum quality, convert to PNG, keep all metadata".into(),
|
||||
icon: "printer-symbolic".into(),
|
||||
icon_color: "success".into(),
|
||||
is_custom: false,
|
||||
resize: None,
|
||||
rotation: None,
|
||||
@@ -258,6 +268,7 @@ impl Preset {
|
||||
name: "Fediverse Ready".into(),
|
||||
description: "Resize 1920x1080, convert to WebP, compress High, strip metadata".into(),
|
||||
icon: "network-server-symbolic".into(),
|
||||
icon_color: "accent".into(),
|
||||
is_custom: false,
|
||||
resize: Some(ResizeConfig::FitInBox {
|
||||
max: Dimensions {
|
||||
|
||||
@@ -189,6 +189,7 @@ pub struct SessionState {
|
||||
pub resize_enabled: Option<bool>,
|
||||
pub resize_width: Option<u32>,
|
||||
pub resize_height: Option<u32>,
|
||||
pub adjustments_enabled: Option<bool>,
|
||||
pub convert_enabled: Option<bool>,
|
||||
pub convert_format: Option<String>,
|
||||
pub compress_enabled: Option<bool>,
|
||||
|
||||
Reference in New Issue
Block a user