define actions in arc container

This commit is contained in:
yggverse 2024-09-28 03:10:07 +03:00
parent 7c78396328
commit 9a3ad366af
10 changed files with 138 additions and 77 deletions

View file

@ -30,29 +30,32 @@ impl Browser {
default_height: i32,
) -> Browser {
// Init window actions
let action_debug = SimpleAction::new("debug", None);
let action_quit = SimpleAction::new("quit", None);
let action_update = SimpleAction::new("update", None);
let action_debug = Arc::new(SimpleAction::new("debug", None));
let action_quit = Arc::new(SimpleAction::new("quit", None));
let action_update = Arc::new(SimpleAction::new("update", None));
let action_tab_append = SimpleAction::new("tab_append", None);
let action_tab_close = SimpleAction::new("tab_close", None);
let action_tab_close_all = SimpleAction::new("tab_close_all", None);
let action_tab_page_reload = SimpleAction::new("tab_page_reload", None);
let action_tab_pin = SimpleAction::new("tab_pin", None);
let action_tab_append = Arc::new(SimpleAction::new("tab_append", None));
let action_tab_close = Arc::new(SimpleAction::new("tab_close", None));
let action_tab_close_all = Arc::new(SimpleAction::new("tab_close_all", None));
let action_tab_page_reload = Arc::new(SimpleAction::new("tab_page_reload", None));
let action_tab_pin = Arc::new(SimpleAction::new("tab_pin", None));
// Init components
// let db = db::Browser::new(connection);
let header = Arc::new(Header::new(
&action_debug,
&action_quit,
&action_tab_append,
&action_tab_close,
&action_tab_close_all,
&action_tab_page_reload,
&action_tab_pin,
action_debug.clone(),
action_quit.clone(),
action_tab_append.clone(),
action_tab_close.clone(),
action_tab_close_all.clone(),
action_tab_page_reload.clone(),
action_tab_pin.clone(),
));
let main = Arc::new(Main::new(&action_tab_page_reload, &action_update));
let main = Arc::new(Main::new(
action_tab_page_reload.clone(),
action_update.clone(),
));
// Init widget
let widget = ApplicationWindow::builder()
@ -63,15 +66,15 @@ impl Browser {
.child(main.widget())
.build();
widget.add_action(&action_debug);
widget.add_action(&action_quit);
widget.add_action(&action_update);
widget.add_action(action_debug.as_ref());
widget.add_action(action_quit.as_ref());
widget.add_action(action_update.as_ref());
widget.add_action(&action_tab_append);
widget.add_action(&action_tab_close);
widget.add_action(&action_tab_close_all);
widget.add_action(&action_tab_page_reload);
widget.add_action(&action_tab_pin);
widget.add_action(action_tab_append.as_ref());
widget.add_action(action_tab_close.as_ref());
widget.add_action(action_tab_close_all.as_ref());
widget.add_action(action_tab_page_reload.as_ref());
widget.add_action(action_tab_pin.as_ref());
// Init events
action_debug.connect_activate({