From 2a47c2db350d4423daf232faa8eb2f72ad62e0b9 Mon Sep 17 00:00:00 2001 From: yggverse Date: Mon, 30 Sep 2024 15:02:22 +0300 Subject: [PATCH] draft new actions --- src/browser.rs | 30 ++++++++++++++++++++++++++++++ src/browser/header.rs | 6 ++++++ src/browser/header/tray.rs | 6 ++++++ src/browser/header/tray/menu.rs | 11 +++++++---- src/main.rs | 27 +++++++++++++++++++++------ 5 files changed, 70 insertions(+), 10 deletions(-) diff --git a/src/browser.rs b/src/browser.rs index 0c9f7e21..dd84e86f 100644 --- a/src/browser.rs +++ b/src/browser.rs @@ -36,6 +36,9 @@ impl Browser { action_tab_append: Arc, action_tab_close: Arc, action_tab_close_all: Arc, + action_tab_page_navigation_base: Arc, + action_tab_page_navigation_history_back: Arc, + action_tab_page_navigation_history_forward: Arc, action_tab_page_navigation_reload: Arc, action_tab_pin: Arc, ) -> Browser { @@ -49,6 +52,9 @@ impl Browser { action_tab_append.clone(), action_tab_close.clone(), action_tab_close_all.clone(), + action_tab_page_navigation_base.clone(), + action_tab_page_navigation_history_back.clone(), + action_tab_page_navigation_history_forward.clone(), action_tab_page_navigation_reload.clone(), action_tab_pin.clone(), )); @@ -74,6 +80,9 @@ impl Browser { 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_navigation_base.as_ref()); + widget.add_action(action_tab_page_navigation_history_back.as_ref()); + widget.add_action(action_tab_page_navigation_history_forward.as_ref()); widget.add_action(action_tab_page_navigation_reload.as_ref()); widget.add_action(action_tab_pin.as_ref()); @@ -122,6 +131,27 @@ impl Browser { } }); + action_tab_page_navigation_base.connect_activate({ + let main = main.clone(); + move |_, _| { + // @TODO + } + }); + + action_tab_page_navigation_history_back.connect_activate({ + let main = main.clone(); + move |_, _| { + // @TODO + } + }); + + action_tab_page_navigation_history_forward.connect_activate({ + let main = main.clone(); + move |_, _| { + // @TODO + } + }); + action_tab_page_navigation_reload.connect_activate({ let main = main.clone(); move |_, _| { diff --git a/src/browser/header.rs b/src/browser/header.rs index 51f0f471..20917a5c 100644 --- a/src/browser/header.rs +++ b/src/browser/header.rs @@ -21,6 +21,9 @@ impl Header { action_tab_append: Arc, action_tab_close: Arc, action_tab_close_all: Arc, + action_tab_page_navigation_base: Arc, + action_tab_page_navigation_history_back: Arc, + action_tab_page_navigation_history_forward: Arc, action_tab_page_navigation_reload: Arc, action_tab_pin: Arc, ) -> Self { @@ -31,6 +34,9 @@ impl Header { action_tab_append, action_tab_close, action_tab_close_all, + action_tab_page_navigation_base, + action_tab_page_navigation_history_back, + action_tab_page_navigation_history_forward, action_tab_page_navigation_reload, action_tab_pin, ); diff --git a/src/browser/header/tray.rs b/src/browser/header/tray.rs index f3c53851..8fab490b 100644 --- a/src/browser/header/tray.rs +++ b/src/browser/header/tray.rs @@ -23,6 +23,9 @@ impl Tray { action_tab_append: Arc, action_tab_close: Arc, action_tab_close_all: Arc, + action_tab_page_navigation_base: Arc, + action_tab_page_navigation_history_back: Arc, + action_tab_page_navigation_history_forward: Arc, action_tab_page_navigation_reload: Arc, action_tab_pin: Arc, ) -> Self { @@ -35,6 +38,9 @@ impl Tray { action_tab_append, action_tab_close, action_tab_close_all, + action_tab_page_navigation_base, + action_tab_page_navigation_history_back, + action_tab_page_navigation_history_forward, action_tab_page_navigation_reload, action_tab_pin, ); diff --git a/src/browser/header/tray/menu.rs b/src/browser/header/tray/menu.rs index 1e046496..5b4dcc79 100644 --- a/src/browser/header/tray/menu.rs +++ b/src/browser/header/tray/menu.rs @@ -18,6 +18,9 @@ impl Menu { action_tab_append: Arc, action_tab_close: Arc, action_tab_close_all: Arc, + action_tab_page_navigation_base: Arc, + action_tab_page_navigation_history_back: Arc, + action_tab_page_navigation_history_forward: Arc, action_tab_page_navigation_reload: Arc, action_tab_pin: Arc, ) -> Self { @@ -31,15 +34,15 @@ impl Menu { let model_tab_page = gio::Menu::new(); let model_tab_page_navigation = gio::Menu::new(); - model_tab_page_navigation.append(Some("Base"), Some("win.tab_page_base")); // @TODO + model_tab_page_navigation.append(Some("Base"), Some(&detailed_action_name(action_tab_page_navigation_base))); let model_tab_page_navigation_history = gio::Menu::new(); - model_tab_page_navigation_history.append(Some("Back"), Some("win.tab_page_history_back")); // @TODO - model_tab_page_navigation_history.append(Some("Forward"), Some("win.tab_page_history_forward")); // @TODO + model_tab_page_navigation_history.append(Some("Back"), Some(&detailed_action_name(action_tab_page_navigation_history_back))); + model_tab_page_navigation_history.append(Some("Forward"), Some(&detailed_action_name(action_tab_page_navigation_history_forward))); model_tab_page_navigation.append_submenu(Some("History"), &model_tab_page_navigation_history); model_tab_page_navigation.append(Some("Reload"), Some(&detailed_action_name(action_tab_page_navigation_reload))); - model_tab_page_navigation.append(Some("Bookmark"), Some("win.tab_page_bookmark")); // @TODO + // @TODO model_tab_page_navigation.append(Some("Bookmark"), Some("win.tab_page_bookmark")); model_tab_page.append_submenu(Some("Navigation"), &model_tab_page_navigation); diff --git a/src/main.rs b/src/main.rs index 9021d349..ebc1e0df 100644 --- a/src/main.rs +++ b/src/main.rs @@ -25,7 +25,16 @@ fn main() -> ExitCode { 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_navigation_reload = Arc::new(SimpleAction::new("tab_page_reload", None)); + let action_tab_page_navigation_base = + Arc::new(SimpleAction::new("tab_page_navigation_base", None)); + let action_tab_page_navigation_history_back = + Arc::new(SimpleAction::new("tab_page_navigation_history_back", None)); + let action_tab_page_navigation_history_forward = Arc::new(SimpleAction::new( + "tab_page_navigation_history_forward", + None, + )); + let action_tab_page_navigation_reload = + Arc::new(SimpleAction::new("tab_page_navigation_reload", None)); let action_tab_pin = Arc::new(SimpleAction::new("tab_pin", None)); // Init accels @@ -36,11 +45,14 @@ fn main() -> ExitCode { app.set_accels_for_action("win.tab_append", &["t"]); app.set_accels_for_action("win.tab_pin", &["p"]); app.set_accels_for_action("win.tab_close", &["q"]); - app.set_accels_for_action("win.tab_page_base", &["h"]); - app.set_accels_for_action("win.tab_page_history_back", &["Left"]); - app.set_accels_for_action("win.tab_page_history_forward", &["Right"]); - app.set_accels_for_action("win.tab_page_reload", &["r"]); - app.set_accels_for_action("win.tab_page_bookmark", &["b"]); + app.set_accels_for_action("win.tab_page_navigation_base", &["h"]); + app.set_accels_for_action("win.tab_page_navigation_history_back", &["Left"]); + app.set_accels_for_action( + "win.tab_page_navigation_history_forward", + &["Right"], + ); + app.set_accels_for_action("win.tab_page_navigation_reload", &["r"]); + //app.set_accels_for_action("win.tab_page_bookmark", &["b"]); // Create new window app.connect_activate({ @@ -74,6 +86,9 @@ fn main() -> ExitCode { action_tab_append.clone(), action_tab_close.clone(), action_tab_close_all.clone(), + action_tab_page_navigation_base.clone(), + action_tab_page_navigation_history_back.clone(), + action_tab_page_navigation_history_forward.clone(), action_tab_page_navigation_reload.clone(), action_tab_pin.clone(), )