Skip to content

Commit a7f2f18

Browse files
authored
Merge pull request #225 from unsecretised/make-suggestions-optional
make suggestions optional and configurable via settings page
2 parents c862de5 + 90253ee commit a7f2f18

4 files changed

Lines changed: 20 additions & 2 deletions

File tree

src/app.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,7 @@ pub enum SetConfigFields {
125125
SearchUrl(String),
126126
HapticFeedback(bool),
127127
ShowMenubarIcon(bool),
128+
AutoSuggest(bool),
128129
Modes(Editable<(String, String)>),
129130
Aliases(Editable<(String, String)>),
130131
SearchDirs(Editable<Vec<String>>),

src/app/pages/settings.rs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,19 @@ pub fn settings_page(config: Config) -> Element<'static, Message> {
126126
),
127127
]);
128128

129+
let theme_clone = theme.clone();
130+
let auto_suggest = settings_item_row([
131+
settings_hint_text(theme.clone(), "Suggestions on open"),
132+
checkbox(config.auto_suggest)
133+
.style(move |_, _| settings_checkbox_style(&theme_clone))
134+
.on_toggle(|input| Message::SetConfig(SetConfigFields::AutoSuggest(input)))
135+
.into(),
136+
notice_item(
137+
theme.clone(),
138+
"If an empty query should give you your most used actions",
139+
),
140+
]);
141+
129142
let theme_clone = theme.clone();
130143
let show_scrollbar = settings_item_row([
131144
settings_hint_text(theme.clone(), "Show scrollbar"),
@@ -350,6 +363,7 @@ pub fn settings_page(config: Config) -> Element<'static, Message> {
350363
debounce.into(),
351364
haptic.into(),
352365
tray_icon.into(),
366+
auto_suggest.into(),
353367
show_scrollbar.into(),
354368
clear_on_hide.into(),
355369
clear_on_enter.into(),

src/app/tile/update.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ pub fn handle_update(tile: &mut Tile, message: Message) -> Task<Message> {
5050
tile.focused = true;
5151
tile.visible = true;
5252

53-
if tile.page == Page::Main && tile.query_lc.is_empty() {
53+
if tile.page == Page::Main && tile.query_lc.is_empty() && tile.config.auto_suggest {
5454
window::latest()
5555
.map(|x| x.unwrap())
5656
.map(|id| Message::SearchQueryChanged(String::new(), id))
@@ -616,6 +616,7 @@ pub fn handle_update(tile: &mut Tile, message: Message) -> Task<Message> {
616616
}
617617
SetConfigFields::SearchUrl(url) => final_config.search_url = url,
618618
SetConfigFields::PlaceHolder(placeholder) => final_config.placeholder = placeholder,
619+
SetConfigFields::AutoSuggest(status) => final_config.auto_suggest = status,
619620
SetConfigFields::DebounceDelay(delay) => final_config.debounce_delay = delay,
620621
SetConfigFields::HapticFeedback(haptic_feedback) => {
621622
final_config.haptic_feedback = haptic_feedback
@@ -799,7 +800,7 @@ fn execute_query(tile: &mut Tile, id: Id) -> Task<Message> {
799800
_ => {}
800801
}
801802

802-
if tile.page == Page::Main && tile.query_lc.is_empty() {
803+
if tile.page == Page::Main && tile.query_lc.is_empty() && tile.config.auto_suggest {
803804
tile.results = tile.frequent_results();
804805
return resize_for_results_count(id, tile.results.len());
805806
}

src/config.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ pub struct Config {
2929
pub modes: HashMap<String, String>,
3030
pub aliases: HashMap<String, String>,
3131
pub search_dirs: Vec<String>,
32+
pub auto_suggest: bool,
3233
pub log_path: String,
3334
pub debounce_delay: u64,
3435
}
@@ -45,6 +46,7 @@ impl Default for Config {
4546
search_url: "https://duckduckgo.com/search?q=%s".to_string(),
4647
haptic_feedback: false,
4748
show_trayicon: true,
49+
auto_suggest: true,
4850
search_dirs: vec!["~".to_string()],
4951
log_path: "/tmp/rustcast.log".to_string(),
5052
modes: HashMap::new(),

0 commit comments

Comments
 (0)