activate download chooser by default on widget release

This commit is contained in:
yggverse 2024-12-12 13:49:19 +02:00
parent 61e3a46d9d
commit e2acfa0bcd
2 changed files with 20 additions and 10 deletions

View File

@ -43,7 +43,7 @@ pub fn new(
let action = Rc::new(Action::new()); // public callback API
let cancel = Rc::new(Cancel::new());
let choose = Rc::new(Choose::new());
let choose = Rc::new(Choose::new(true)); // @TODO optional `is_activate_on_release` value
let open = Rc::new(Open::new());
let progress = Rc::new(Progress::new());
let status = Rc::new(Status::new());

View File

@ -1,4 +1,8 @@
use gtk::{glib::SignalHandlerId, prelude::ButtonExt, Align, Button};
use gtk::{
glib::SignalHandlerId,
prelude::{ButtonExt, WidgetExt},
Align, Button,
};
// Defaults
@ -16,15 +20,21 @@ impl Choose {
// Constructors
/// Create new `Self`
pub fn new() -> Self {
Self {
button: Button::builder()
.css_classes(CSS_CLASSES)
.halign(Align::Center)
.label(LABEL)
.margin_top(MARGIN)
.build(),
pub fn new(is_activate_on_release: bool) -> Self {
let button = Button::builder()
.css_classes(CSS_CLASSES)
.halign(Align::Center)
.label(LABEL)
.margin_top(MARGIN)
.build();
if is_activate_on_release {
button.connect_realize(|this| {
this.activate();
});
}
Self { button }
}
// Actions