Add UX enhancements: carousel, filter chips, command palette, and more

This commit is contained in:
2026-03-01 00:39:43 +02:00
parent b73c457c34
commit 49b2a2f592
25 changed files with 1711 additions and 481 deletions

View File

@@ -52,7 +52,7 @@ pub fn show_fuse_wizard(parent: &impl IsA<gtk::Widget>) {
.build();
let title = gtk::Label::builder()
.label(&i18n("FUSE is required"))
.label(&i18n("Additional setup needed"))
.xalign(0.0)
.build();
title.add_css_class("title-3");
@@ -60,8 +60,9 @@ pub fn show_fuse_wizard(parent: &impl IsA<gtk::Widget>) {
let explanation = gtk::Label::builder()
.label(&i18n(
"Most AppImages require libfuse2 to mount and run. \
Without it, apps will use a slower extract-and-run fallback or may not launch at all.",
"Most apps need a small system component called FUSE to start quickly. \
Without it, apps will still work but will take longer to start each time. \
You can install it now (requires your password) or skip and use the slower method.",
))
.wrap(true)
.xalign(0.0)
@@ -101,18 +102,34 @@ pub fn show_fuse_wizard(parent: &impl IsA<gtk::Widget>) {
.margin_top(12)
.build();
let skip_btn = gtk::Button::builder()
.label(&i18n("Skip and use slower method"))
.tooltip_text(&i18n("Apps will still work, but they will take longer to start because they unpack themselves each time"))
.build();
skip_btn.add_css_class("flat");
skip_btn.add_css_class("pill");
let install_btn = gtk::Button::builder()
.label(&i18n("Install via pkexec"))
.build();
install_btn.add_css_class("suggested-action");
install_btn.add_css_class("pill");
button_box.append(&skip_btn);
button_box.append(&install_btn);
content.append(&button_box);
toolbar.set_content(Some(&content));
dialog.set_child(Some(&toolbar));
// Skip button just closes the dialog
let dialog_weak = dialog.downgrade();
skip_btn.connect_clicked(move |_| {
if let Some(dlg) = dialog_weak.upgrade() {
dlg.close();
}
});
let cmd = install_cmd.clone();
let status_ref = status_label.clone();
let btn_ref = install_btn.clone();