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:
@@ -500,6 +500,7 @@ fn build_empty_state() -> gtk::Box {
|
||||
.pixel_size(64)
|
||||
.css_classes(["dim-label"])
|
||||
.build();
|
||||
icon.set_accessible_role(gtk::AccessibleRole::Presentation);
|
||||
|
||||
let title = gtk::Label::builder()
|
||||
.label("Drop images here")
|
||||
@@ -529,6 +530,16 @@ fn build_empty_state() -> gtk::Box {
|
||||
browse_button.add_css_class("suggested-action");
|
||||
browse_button.add_css_class("pill");
|
||||
|
||||
let hint = gtk::Label::builder()
|
||||
.label("Start by adding your images below, then use the Next button to configure each processing step.")
|
||||
.css_classes(["dim-label", "caption"])
|
||||
.halign(gtk::Align::Center)
|
||||
.justify(gtk::Justification::Center)
|
||||
.wrap(true)
|
||||
.margin_bottom(8)
|
||||
.build();
|
||||
|
||||
inner.append(&hint);
|
||||
inner.append(&icon);
|
||||
inner.append(&title);
|
||||
inner.append(&subtitle);
|
||||
@@ -778,11 +789,19 @@ fn build_loaded_state(state: &AppState) -> gtk::Box {
|
||||
}
|
||||
});
|
||||
|
||||
// Set accessible label on thumbnail picture
|
||||
picture.update_property(&[
|
||||
gtk::accessible::Property::Label(&format!("Thumbnail of {}", file_name)),
|
||||
]);
|
||||
|
||||
// Set checkbox state
|
||||
let check = find_check_button(overlay.upcast_ref::<gtk::Widget>());
|
||||
if let Some(ref check) = check {
|
||||
let is_excluded = excluded.borrow().contains(&path);
|
||||
check.set_active(!is_excluded);
|
||||
check.update_property(&[
|
||||
gtk::accessible::Property::Label(&format!("Include {} in processing", file_name)),
|
||||
]);
|
||||
|
||||
// Wire checkbox toggle
|
||||
let excl = excluded.clone();
|
||||
|
||||
Reference in New Issue
Block a user