From f0e9b718bac3a563047d97438282143f09434979 Mon Sep 17 00:00:00 2001 From: unsecretised Date: Fri, 27 Mar 2026 19:50:58 +0800 Subject: [PATCH 1/2] imrpove the favourite button UI --- src/app/apps.rs | 9 +++++---- src/styles.rs | 15 +++++++++++++++ 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/src/app/apps.rs b/src/app/apps.rs index 73a64a0..7b6624d 100644 --- a/src/app/apps.rs +++ b/src/app/apps.rs @@ -6,7 +6,7 @@ use std::io::Cursor; use iced::{ Alignment, - Length::Fill, + Length::{self, Fill}, widget::{ Button, Row, Text, container, image::{Handle, Viewer}, @@ -18,7 +18,7 @@ use crate::{ app::{Message, Page, RUSTCAST_DESC_NAME}, clipboard::ClipBoardContentType, commands::Function, - styles::{result_button_style, result_row_container_style}, + styles::{favourite_button_style, result_button_style, result_row_container_style}, utils::icns_data_to_handle, }; @@ -214,9 +214,10 @@ impl App { let name = self.search_name.clone(); let theme_clone = theme.clone(); row = row.push( - Button::new("♥️") + Button::new(Text::new("♥️").width(Length::Fill).align_x(Alignment::End)) .on_press_with(move || Message::ToggleFavouriteApp(name.clone())) - .style(move |_, _| result_button_style(&theme_clone)), + .width(Length::Fill) + .style(move |_, status| favourite_button_style(&theme_clone, status)), ); let msg = on_press.or(match self.open_command.clone() { diff --git a/src/styles.rs b/src/styles.rs index 869a77d..aed8fd7 100644 --- a/src/styles.rs +++ b/src/styles.rs @@ -75,6 +75,21 @@ pub fn result_button_style(theme: &ConfigTheme) -> button::Style { } } +pub fn favourite_button_style(theme: &ConfigTheme, status: button::Status) -> button::Style { + let text_color = match status { + button::Status::Pressed => theme.text_color(1.), + button::Status::Hovered => theme.text_color(0.5), + button::Status::Active => theme.text_color(0.1), + button::Status::Disabled => theme.text_color(0.1), + }; + + button::Style { + text_color, + background: Some(Background::Color(theme.bg_color())), + ..Default::default() + } +} + pub fn results_scrollbar_style(tile: &ConfigTheme) -> scrollable::Style { let clr = with_alpha(tile.bg_color(), 0.7); From 00d1610b85639d7fc2df9d6b500db9766772293b Mon Sep 17 00:00:00 2001 From: unsecretised Date: Fri, 27 Mar 2026 19:54:36 +0800 Subject: [PATCH 2/2] add fav keyword --- src/app/tile/update.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/app/tile/update.rs b/src/app/tile/update.rs index 8cac396..364f3ce 100644 --- a/src/app/tile/update.rs +++ b/src/app/tile/update.rs @@ -943,6 +943,10 @@ fn execute_query(tile: &mut Tile, id: Id) -> Task { return Task::batch([zero_item_resize_task(id), task]); } } + "fav" => { + tile.results = tile.options.get_favourites(); + return resize_for_results_count(id, tile.results.len()); + } query => 'a: { if !query.starts_with(">") || tile.page != Page::Main { break 'a;