Improve UX, add popover tour, metadata, and hicolor icons

This commit is contained in:
2026-03-08 14:18:15 +02:00
parent 388670964a
commit 28253f009d
26 changed files with 2292 additions and 473 deletions

View File

@@ -142,31 +142,41 @@ pub fn build_results_page() -> adw::NavigationPage {
.title("Images processed")
.subtitle("0 images")
.build();
images_row.add_prefix(&gtk::Image::from_icon_name("image-x-generic-symbolic"));
let images_icon = gtk::Image::from_icon_name("image-x-generic-symbolic");
images_icon.set_accessible_role(gtk::AccessibleRole::Presentation);
images_row.add_prefix(&images_icon);
let size_before_row = adw::ActionRow::builder()
.title("Original size")
.subtitle("0 B")
.build();
size_before_row.add_prefix(&gtk::Image::from_icon_name("drive-harddisk-symbolic"));
let size_before_icon = gtk::Image::from_icon_name("drive-harddisk-symbolic");
size_before_icon.set_accessible_role(gtk::AccessibleRole::Presentation);
size_before_row.add_prefix(&size_before_icon);
let size_after_row = adw::ActionRow::builder()
.title("Output size")
.subtitle("0 B")
.build();
size_after_row.add_prefix(&gtk::Image::from_icon_name("drive-harddisk-symbolic"));
let size_after_icon = gtk::Image::from_icon_name("drive-harddisk-symbolic");
size_after_icon.set_accessible_role(gtk::AccessibleRole::Presentation);
size_after_row.add_prefix(&size_after_icon);
let savings_row = adw::ActionRow::builder()
.title("Space saved")
.subtitle("0%")
.build();
savings_row.add_prefix(&gtk::Image::from_icon_name("emblem-ok-symbolic"));
let savings_icon = gtk::Image::from_icon_name("emblem-ok-symbolic");
savings_icon.set_accessible_role(gtk::AccessibleRole::Presentation);
savings_row.add_prefix(&savings_icon);
let time_row = adw::ActionRow::builder()
.title("Processing time")
.subtitle("0s")
.build();
time_row.add_prefix(&gtk::Image::from_icon_name("preferences-system-time-symbolic"));
let time_icon = gtk::Image::from_icon_name("preferences-system-time-symbolic");
time_icon.set_accessible_role(gtk::AccessibleRole::Presentation);
time_row.add_prefix(&time_icon);
stats_group.add(&images_row);
stats_group.add(&size_before_row);
@@ -195,32 +205,48 @@ pub fn build_results_page() -> adw::NavigationPage {
.subtitle("View processed images in file manager")
.activatable(true)
.build();
open_row.add_prefix(&gtk::Image::from_icon_name("folder-open-symbolic"));
open_row.add_suffix(&gtk::Image::from_icon_name("go-next-symbolic"));
let open_icon = gtk::Image::from_icon_name("folder-open-symbolic");
open_icon.set_accessible_role(gtk::AccessibleRole::Presentation);
open_row.add_prefix(&open_icon);
let open_arrow = gtk::Image::from_icon_name("go-next-symbolic");
open_arrow.set_accessible_role(gtk::AccessibleRole::Presentation);
open_row.add_suffix(&open_arrow);
let process_more_row = adw::ActionRow::builder()
.title("Process Another Batch")
.subtitle("Start over with new images")
.activatable(true)
.build();
process_more_row.add_prefix(&gtk::Image::from_icon_name("view-refresh-symbolic"));
process_more_row.add_suffix(&gtk::Image::from_icon_name("go-next-symbolic"));
let more_icon = gtk::Image::from_icon_name("view-refresh-symbolic");
more_icon.set_accessible_role(gtk::AccessibleRole::Presentation);
process_more_row.add_prefix(&more_icon);
let more_arrow = gtk::Image::from_icon_name("go-next-symbolic");
more_arrow.set_accessible_role(gtk::AccessibleRole::Presentation);
process_more_row.add_suffix(&more_arrow);
let save_preset_row = adw::ActionRow::builder()
.title("Save as Preset")
.subtitle("Save this workflow for future use")
.activatable(true)
.build();
save_preset_row.add_prefix(&gtk::Image::from_icon_name("document-save-symbolic"));
save_preset_row.add_suffix(&gtk::Image::from_icon_name("go-next-symbolic"));
let save_icon = gtk::Image::from_icon_name("document-save-symbolic");
save_icon.set_accessible_role(gtk::AccessibleRole::Presentation);
save_preset_row.add_prefix(&save_icon);
let save_arrow = gtk::Image::from_icon_name("go-next-symbolic");
save_arrow.set_accessible_role(gtk::AccessibleRole::Presentation);
save_preset_row.add_suffix(&save_arrow);
let add_queue_row = adw::ActionRow::builder()
.title("Add to Queue")
.subtitle("Queue another batch with different images")
.activatable(true)
.build();
add_queue_row.add_prefix(&gtk::Image::from_icon_name("view-list-symbolic"));
add_queue_row.add_suffix(&gtk::Image::from_icon_name("go-next-symbolic"));
let queue_icon = gtk::Image::from_icon_name("view-list-symbolic");
queue_icon.set_accessible_role(gtk::AccessibleRole::Presentation);
add_queue_row.add_prefix(&queue_icon);
let queue_arrow = gtk::Image::from_icon_name("go-next-symbolic");
queue_arrow.set_accessible_role(gtk::AccessibleRole::Presentation);
add_queue_row.add_suffix(&queue_arrow);
action_group.add(&open_row);
action_group.add(&process_more_row);