move connect_icon_release to constructor

This commit is contained in:
yggverse 2024-12-15 17:29:31 +02:00
parent f8112a8d24
commit e58a2a3a90
2 changed files with 17 additions and 10 deletions

View File

@ -9,8 +9,7 @@ use tag::Tag;
use gtk::{ use gtk::{
prelude::{BoxExt, ButtonExt, CheckButtonExt, EditableExt, EntryExt, TextBufferExt, WidgetExt}, prelude::{BoxExt, ButtonExt, CheckButtonExt, EditableExt, EntryExt, TextBufferExt, WidgetExt},
Box, Button, Entry, EntryIconPosition, Orientation, TextBuffer, TextIter, TextSearchFlags, Box, Button, Entry, Orientation, TextBuffer, TextIter, TextSearchFlags, TextTag,
TextTag,
}; };
use std::{cell::Cell, rc::Rc}; use std::{cell::Cell, rc::Rc};
@ -84,11 +83,6 @@ impl Find {
} }
}); });
entry.connect_icon_release(move |this, position| match position {
EntryIconPosition::Secondary => this.delete_text(0, -1),
_ => todo!(), // unexpected
});
match_case.connect_toggled({ match_case.connect_toggled({
let entry = entry.clone(); let entry = entry.clone();
let found_tag = tag.found.clone(); let found_tag = tag.found.clone();

View File

@ -1,8 +1,12 @@
use super::MARGIN; use super::MARGIN;
use gtk::Entry; use gtk::{
prelude::{EditableExt, EntryExt},
Entry, EntryIconPosition,
};
pub fn new() -> Entry { pub fn new() -> Entry {
Entry::builder() // Init widget
let entry = Entry::builder()
.hexpand(true) .hexpand(true)
.margin_bottom(MARGIN) .margin_bottom(MARGIN)
.margin_end(MARGIN) .margin_end(MARGIN)
@ -12,5 +16,14 @@ pub fn new() -> Entry {
.primary_icon_activatable(false) .primary_icon_activatable(false)
.primary_icon_sensitive(false) .primary_icon_sensitive(false)
.primary_icon_name("system-search-symbolic") .primary_icon_name("system-search-symbolic")
.build() .build();
// Connect events
entry.connect_icon_release(|this, position| match position {
EntryIconPosition::Secondary => this.delete_text(0, -1),
_ => todo!(), // unexpected
});
// Done
entry
} }