From 920721412eb37149b9026ec940ca31f28fdbccd5 Mon Sep 17 00:00:00 2001 From: yggverse Date: Sun, 27 Oct 2024 12:50:36 +0200 Subject: [PATCH] drop Arc from SimpleAction #1 --- src/app.rs | 2 +- src/app/action.rs | 8 ++-- src/app/browser.rs | 48 +++++++++---------- src/app/browser/window.rs | 24 +++++----- src/app/browser/window/header.rs | 22 ++++----- src/app/browser/window/header/bar.rs | 22 ++++----- src/app/browser/window/header/bar/append.rs | 2 +- .../window/header/bar/append/widget.rs | 2 +- src/app/browser/window/header/bar/menu.rs | 24 +++++----- src/app/browser/window/tab.rs | 28 +++++------ src/app/browser/window/tab/item.rs | 24 +++++----- src/app/browser/window/tab/item/page.rs | 24 +++++----- .../browser/window/tab/item/page/content.rs | 9 ++-- .../window/tab/item/page/content/text.rs | 6 +-- .../tab/item/page/content/text/gemini.rs | 4 +- .../item/page/content/text/gemini/reader.rs | 4 +- src/app/browser/window/tab/item/page/input.rs | 4 +- .../window/tab/item/page/input/response.rs | 6 +-- .../tab/item/page/input/response/control.rs | 2 +- .../item/page/input/response/control/send.rs | 2 +- .../input/response/control/send/widget.rs | 2 +- .../tab/item/page/input/response/form.rs | 2 +- .../item/page/input/response/form/widget.rs | 2 +- .../window/tab/item/page/input/sensitive.rs | 4 +- .../tab/item/page/input/sensitive/form.rs | 2 +- .../item/page/input/sensitive/form/widget.rs | 2 +- .../window/tab/item/page/navigation.rs | 10 ++-- .../window/tab/item/page/navigation/base.rs | 4 +- .../tab/item/page/navigation/base/widget.rs | 2 +- .../tab/item/page/navigation/history.rs | 4 +- .../tab/item/page/navigation/history/back.rs | 4 +- .../page/navigation/history/back/widget.rs | 2 +- .../item/page/navigation/history/forward.rs | 4 +- .../page/navigation/history/forward/widget.rs | 2 +- .../window/tab/item/page/navigation/reload.rs | 4 +- .../tab/item/page/navigation/reload/widget.rs | 2 +- .../tab/item/page/navigation/request.rs | 4 +- .../item/page/navigation/request/widget.rs | 4 +- .../browser/window/tab/item/page/widget.rs | 4 +- src/app/browser/window/tab/widget.rs | 6 +-- 40 files changed, 162 insertions(+), 175 deletions(-) diff --git a/src/app.rs b/src/app.rs index 21e8ece4..1beb0729 100644 --- a/src/app.rs +++ b/src/app.rs @@ -27,7 +27,7 @@ pub struct App { profile_database_connection: Arc>, // database: Arc, // Actions - // action_update: Arc, + // action_update: SimpleAction, // Components // browser: Arc, // GTK diff --git a/src/app/action.rs b/src/app/action.rs index b7ec0823..1f44d456 100644 --- a/src/app/action.rs +++ b/src/app/action.rs @@ -2,8 +2,6 @@ // and replace them with objects (to follow encapsulation for children mods) // @TODO find alternative implementation, if exist for GTK 4 -use std::sync::Arc; - use gtk::{ gio::SimpleAction, glib::{gformat, uuid_string_random, GString, VariantTy}, @@ -12,14 +10,14 @@ use gtk::{ pub struct Action { group: GString, - simple: Arc, + simple: SimpleAction, } impl Action { // Construct pub fn new(group: &str, is_enabled: bool, parameter_type: Option<&VariantTy>) -> Self { // Create random action name as no static values should be in use - let simple = Arc::new(SimpleAction::new(&uuid_string_random(), parameter_type)); + let simple = SimpleAction::new(&uuid_string_random(), parameter_type); simple.set_enabled(is_enabled); // Assign action to the group @@ -36,7 +34,7 @@ impl Action { } // App mods work with simple and system-wide data types, let them take it - pub fn simple(&self) -> Arc { + pub fn simple(&self) -> SimpleAction { self.simple.clone() } } diff --git a/src/app/browser.rs b/src/app/browser.rs index 3eaafc50..18a455b0 100644 --- a/src/app/browser.rs +++ b/src/app/browser.rs @@ -28,18 +28,18 @@ impl Browser { // Extras profile_path: PathBuf, // Actions - action_tool_debug: Arc, - action_tool_profile: Arc, - action_quit: Arc, - action_update: Arc, - 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, + action_tool_debug: SimpleAction, + action_tool_profile: SimpleAction, + action_quit: SimpleAction, + action_update: SimpleAction, + action_tab_append: SimpleAction, + action_tab_close: SimpleAction, + action_tab_close_all: SimpleAction, + action_tab_page_navigation_base: SimpleAction, + action_tab_page_navigation_history_back: SimpleAction, + action_tab_page_navigation_history_forward: SimpleAction, + action_tab_page_navigation_reload: SimpleAction, + action_tab_pin: SimpleAction, ) -> Browser { let window = Arc::new(Window::new( action_tool_debug.clone(), @@ -60,26 +60,26 @@ impl Browser { let widget = Arc::new(Widget::new(window.gobject())); // Assign actions - widget.gobject().add_action(action_tool_debug.as_ref()); - widget.gobject().add_action(action_tool_profile.as_ref()); - widget.gobject().add_action(action_quit.as_ref()); - widget.gobject().add_action(action_update.as_ref()); - widget.gobject().add_action(action_tab_append.as_ref()); - widget.gobject().add_action(action_tab_close.as_ref()); - widget.gobject().add_action(action_tab_close_all.as_ref()); + widget.gobject().add_action(&action_tool_debug); + widget.gobject().add_action(&action_tool_profile); + widget.gobject().add_action(&action_quit); + widget.gobject().add_action(&action_update); + widget.gobject().add_action(&action_tab_append); + widget.gobject().add_action(&action_tab_close); + widget.gobject().add_action(&action_tab_close_all); widget .gobject() - .add_action(action_tab_page_navigation_base.as_ref()); + .add_action(&action_tab_page_navigation_base); widget .gobject() - .add_action(action_tab_page_navigation_history_back.as_ref()); + .add_action(&action_tab_page_navigation_history_back); widget .gobject() - .add_action(action_tab_page_navigation_history_forward.as_ref()); + .add_action(&action_tab_page_navigation_history_forward); widget .gobject() - .add_action(action_tab_page_navigation_reload.as_ref()); - widget.gobject().add_action(action_tab_pin.as_ref()); + .add_action(&action_tab_page_navigation_reload); + widget.gobject().add_action(&action_tab_pin); // Init events action_tool_debug.connect_activate({ diff --git a/src/app/browser/window.rs b/src/app/browser/window.rs index ea964386..3bde5a63 100644 --- a/src/app/browser/window.rs +++ b/src/app/browser/window.rs @@ -23,18 +23,18 @@ impl Window { // Construct pub fn new( // Actions - action_tool_debug: Arc, - action_tool_profile: Arc, - action_quit: Arc, - action_update: Arc, - 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, + action_tool_debug: SimpleAction, + action_tool_profile: SimpleAction, + action_quit: SimpleAction, + action_update: SimpleAction, + action_tab_append: SimpleAction, + action_tab_close: SimpleAction, + action_tab_close_all: SimpleAction, + action_tab_page_navigation_base: SimpleAction, + action_tab_page_navigation_history_back: SimpleAction, + action_tab_page_navigation_history_forward: SimpleAction, + action_tab_page_navigation_reload: SimpleAction, + action_tab_pin: SimpleAction, ) -> Self { // Init components let tab = Tab::new_arc( diff --git a/src/app/browser/window/header.rs b/src/app/browser/window/header.rs index f0a2174b..eda662e0 100644 --- a/src/app/browser/window/header.rs +++ b/src/app/browser/window/header.rs @@ -16,17 +16,17 @@ impl Header { // Construct pub fn new_arc( // Actions - action_tool_debug: Arc, - action_tool_profile: Arc, - action_quit: Arc, - 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, + action_tool_debug: SimpleAction, + action_tool_profile: SimpleAction, + action_quit: SimpleAction, + action_tab_append: SimpleAction, + action_tab_close: SimpleAction, + action_tab_close_all: SimpleAction, + action_tab_page_navigation_base: SimpleAction, + action_tab_page_navigation_history_back: SimpleAction, + action_tab_page_navigation_history_forward: SimpleAction, + action_tab_page_navigation_reload: SimpleAction, + action_tab_pin: SimpleAction, // Widgets tab_view: &TabView, ) -> Arc { diff --git a/src/app/browser/window/header/bar.rs b/src/app/browser/window/header/bar.rs index 4cc66052..c5706fd0 100644 --- a/src/app/browser/window/header/bar.rs +++ b/src/app/browser/window/header/bar.rs @@ -21,17 +21,17 @@ pub struct Bar { impl Bar { // Construct pub fn new_arc( - action_tool_debug: Arc, - action_tool_profile: Arc, - action_quit: Arc, - 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, + action_tool_debug: SimpleAction, + action_tool_profile: SimpleAction, + action_quit: SimpleAction, + action_tab_append: SimpleAction, + action_tab_close: SimpleAction, + action_tab_close_all: SimpleAction, + action_tab_page_navigation_base: SimpleAction, + action_tab_page_navigation_history_back: SimpleAction, + action_tab_page_navigation_history_forward: SimpleAction, + action_tab_page_navigation_reload: SimpleAction, + action_tab_pin: SimpleAction, view: &TabView, ) -> Arc { // Init components diff --git a/src/app/browser/window/header/bar/append.rs b/src/app/browser/window/header/bar/append.rs index ebada7f9..a8900388 100644 --- a/src/app/browser/window/header/bar/append.rs +++ b/src/app/browser/window/header/bar/append.rs @@ -11,7 +11,7 @@ pub struct Append { impl Append { // Construct - pub fn new_arc(action_tab_append: Arc) -> Arc { + pub fn new_arc(action_tab_append: SimpleAction) -> Arc { Arc::new(Self { widget: Widget::new_arc(action_tab_append), }) diff --git a/src/app/browser/window/header/bar/append/widget.rs b/src/app/browser/window/header/bar/append/widget.rs index aada2f4d..c5fdf5e9 100644 --- a/src/app/browser/window/header/bar/append/widget.rs +++ b/src/app/browser/window/header/bar/append/widget.rs @@ -11,7 +11,7 @@ pub struct Widget { impl Widget { // Construct - pub fn new_arc(action_tab_append: Arc) -> Arc { + pub fn new_arc(action_tab_append: SimpleAction) -> Arc { // Init gobject let gobject = Button::builder() .icon_name("tab-new-symbolic") diff --git a/src/app/browser/window/header/bar/menu.rs b/src/app/browser/window/header/bar/menu.rs index e208b463..f7bba5a7 100644 --- a/src/app/browser/window/header/bar/menu.rs +++ b/src/app/browser/window/header/bar/menu.rs @@ -17,17 +17,17 @@ pub struct Menu { #[rustfmt::skip] // @TODO template builder? impl Menu { pub fn new_arc( - action_tool_debug: Arc, - action_tool_profile: Arc, - action_quit: Arc, - 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, + action_tool_debug: SimpleAction, + action_tool_profile: SimpleAction, + action_quit: SimpleAction, + action_tab_append: SimpleAction, + action_tab_close: SimpleAction, + action_tab_close_all: SimpleAction, + action_tab_page_navigation_base: SimpleAction, + action_tab_page_navigation_history_back: SimpleAction, + action_tab_page_navigation_history_forward: SimpleAction, + action_tab_page_navigation_reload: SimpleAction, + action_tab_pin: SimpleAction, ) -> Arc { // Init model let model = gio::Menu::new(); @@ -80,7 +80,7 @@ impl Menu { } // Private helpers -fn detailed_action_name(action: Arc) -> GString { +fn detailed_action_name(action: SimpleAction) -> GString { gformat!("win.{}", action.name()) // @TODO find the way to ident parent group // without application-wide dependencies import // see also src/app/action.rs diff --git a/src/app/browser/window/tab.rs b/src/app/browser/window/tab.rs index c703449a..eecc0e5e 100644 --- a/src/app/browser/window/tab.rs +++ b/src/app/browser/window/tab.rs @@ -18,13 +18,13 @@ use std::{cell::RefCell, collections::HashMap, sync::Arc}; // Main pub struct Tab { // Local actions - action_tab_open: Arc, + action_tab_open: SimpleAction, // Global actions - 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_update: Arc, + action_tab_page_navigation_base: SimpleAction, + action_tab_page_navigation_history_back: SimpleAction, + action_tab_page_navigation_history_forward: SimpleAction, + action_tab_page_navigation_reload: SimpleAction, + action_update: SimpleAction, // Dynamically allocated reference index index: Arc>>>, // GTK @@ -35,17 +35,15 @@ impl Tab { // Construct pub fn new_arc( // Actions - 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_update: Arc, + action_tab_page_navigation_base: SimpleAction, + action_tab_page_navigation_history_back: SimpleAction, + action_tab_page_navigation_history_forward: SimpleAction, + action_tab_page_navigation_reload: SimpleAction, + action_update: SimpleAction, ) -> Arc { // Init local actions - let action_tab_open = Arc::new(SimpleAction::new( - &uuid_string_random(), - Some(&String::static_variant_type()), - )); + let action_tab_open = + SimpleAction::new(&uuid_string_random(), Some(&String::static_variant_type())); // Init empty HashMap index as no tabs appended yet let index = Arc::new(RefCell::new(HashMap::new())); diff --git a/src/app/browser/window/tab/item.rs b/src/app/browser/window/tab/item.rs index b61fb602..9aeb306f 100644 --- a/src/app/browser/window/tab/item.rs +++ b/src/app/browser/window/tab/item.rs @@ -28,12 +28,12 @@ impl Item { pub fn new_arc( tab_view: &TabView, // Actions - action_tab_open: 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_update: Arc, + action_tab_open: SimpleAction, + action_tab_page_navigation_base: SimpleAction, + action_tab_page_navigation_history_back: SimpleAction, + action_tab_page_navigation_history_forward: SimpleAction, + action_tab_page_navigation_reload: SimpleAction, + action_update: SimpleAction, // Options position: Option, is_pinned: bool, @@ -128,12 +128,12 @@ impl Item { transaction: &Transaction, app_browser_window_tab_id: &i64, // Actions - action_tab_open: 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_update: Arc, + action_tab_open: SimpleAction, + action_tab_page_navigation_base: SimpleAction, + action_tab_page_navigation_history_back: SimpleAction, + action_tab_page_navigation_history_forward: SimpleAction, + action_tab_page_navigation_reload: SimpleAction, + action_update: SimpleAction, ) -> Result>, String> { let mut items = Vec::new(); diff --git a/src/app/browser/window/tab/item/page.rs b/src/app/browser/window/tab/item/page.rs index 2a668a1e..02f12f92 100644 --- a/src/app/browser/window/tab/item/page.rs +++ b/src/app/browser/window/tab/item/page.rs @@ -35,9 +35,9 @@ use std::{cell::RefCell, sync::Arc}; pub struct Page { id: GString, // Actions - action_page_open: Arc, - action_tab_page_navigation_reload: Arc, - action_update: Arc, + action_page_open: SimpleAction, + action_tab_page_navigation_reload: SimpleAction, + action_update: SimpleAction, // Components navigation: Arc, content: Arc, @@ -52,18 +52,16 @@ impl Page { // Construct pub fn new_arc( id: GString, - action_tab_open: 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_update: Arc, + action_tab_open: SimpleAction, + action_tab_page_navigation_base: SimpleAction, + action_tab_page_navigation_history_back: SimpleAction, + action_tab_page_navigation_history_forward: SimpleAction, + action_tab_page_navigation_reload: SimpleAction, + action_update: SimpleAction, ) -> Arc { // Init local actions - let action_page_open = Arc::new(SimpleAction::new( - &uuid_string_random(), - Some(&String::static_variant_type()), - )); + let action_page_open = + SimpleAction::new(&uuid_string_random(), Some(&String::static_variant_type())); // Init components let content = Arc::new(Content::new( diff --git a/src/app/browser/window/tab/item/page/content.rs b/src/app/browser/window/tab/item/page/content.rs index 901d68e0..b69ecd4b 100644 --- a/src/app/browser/window/tab/item/page/content.rs +++ b/src/app/browser/window/tab/item/page/content.rs @@ -13,20 +13,17 @@ use gtk::{ prelude::{BoxExt, WidgetExt}, Box, Orientation, }; - -use std::sync::Arc; - pub struct Content { // GTK gobject: Box, // Actions - action_tab_open: Arc, - action_page_open: Arc, + action_tab_open: SimpleAction, + action_page_open: SimpleAction, } impl Content { // Construct - pub fn new(action_tab_open: Arc, action_page_open: Arc) -> Self { + pub fn new(action_tab_open: SimpleAction, action_page_open: SimpleAction) -> Self { Self { gobject: Box::builder().orientation(Orientation::Vertical).build(), action_tab_open, diff --git a/src/app/browser/window/tab/item/page/content/text.rs b/src/app/browser/window/tab/item/page/content/text.rs index 069099fb..1f95bd7a 100644 --- a/src/app/browser/window/tab/item/page/content/text.rs +++ b/src/app/browser/window/tab/item/page/content/text.rs @@ -8,8 +8,6 @@ use gtk::{ ScrolledWindow, }; -use std::sync::Arc; - pub struct Meta { title: Option, } @@ -24,8 +22,8 @@ impl Text { pub fn gemini( gemtext: &str, base: &Uri, - action_tab_append: Arc, - action_page_open: Arc, + action_tab_append: SimpleAction, + action_page_open: SimpleAction, ) -> Self { // Init components let gemini = Gemini::new(gemtext, base, action_tab_append, action_page_open); diff --git a/src/app/browser/window/tab/item/page/content/text/gemini.rs b/src/app/browser/window/tab/item/page/content/text/gemini.rs index 7dd5f415..4fe2ceb1 100644 --- a/src/app/browser/window/tab/item/page/content/text/gemini.rs +++ b/src/app/browser/window/tab/item/page/content/text/gemini.rs @@ -23,8 +23,8 @@ impl Gemini { pub fn new( gemtext: &str, base: &Uri, - action_tab_open: Arc, - action_page_open: Arc, + action_tab_open: SimpleAction, + action_page_open: SimpleAction, ) -> Self { // Init components let reader = Reader::new_arc(gemtext, base, action_tab_open, action_page_open); diff --git a/src/app/browser/window/tab/item/page/content/text/gemini/reader.rs b/src/app/browser/window/tab/item/page/content/text/gemini/reader.rs index 2fb6cacd..87948b81 100644 --- a/src/app/browser/window/tab/item/page/content/text/gemini/reader.rs +++ b/src/app/browser/window/tab/item/page/content/text/gemini/reader.rs @@ -33,8 +33,8 @@ impl Reader { pub fn new_arc( gemtext: &str, base: &Uri, - action_tab_open: Arc, - action_page_open: Arc, + action_tab_open: SimpleAction, + action_page_open: SimpleAction, ) -> Arc { // Init default values let mut title = None; diff --git a/src/app/browser/window/tab/item/page/input.rs b/src/app/browser/window/tab/item/page/input.rs index 41351f7d..42e34dda 100644 --- a/src/app/browser/window/tab/item/page/input.rs +++ b/src/app/browser/window/tab/item/page/input.rs @@ -32,7 +32,7 @@ impl Input { // Setters pub fn set_new_response( &self, - action_page_open: Arc, + action_page_open: SimpleAction, base: Uri, title: Option<&str>, size_limit: Option, @@ -44,7 +44,7 @@ impl Input { pub fn set_new_sensitive( &self, - action_page_open: Arc, + action_page_open: SimpleAction, base: Uri, title: Option<&str>, max_length: Option, diff --git a/src/app/browser/window/tab/item/page/input/response.rs b/src/app/browser/window/tab/item/page/input/response.rs index 5c0138fe..6a3164f3 100644 --- a/src/app/browser/window/tab/item/page/input/response.rs +++ b/src/app/browser/window/tab/item/page/input/response.rs @@ -24,14 +24,14 @@ pub struct Response { impl Response { // Construct pub fn new_arc( - action_page_open: Arc, + action_page_open: SimpleAction, base: Uri, title: Option<&str>, size_limit: Option, ) -> Arc { // Init local actions - let action_update = Arc::new(SimpleAction::new(&uuid_string_random(), None)); - let action_send = Arc::new(SimpleAction::new(&uuid_string_random(), None)); + let action_update = SimpleAction::new(&uuid_string_random(), None); + let action_send = SimpleAction::new(&uuid_string_random(), None); // Init components let control = Control::new_arc(action_send.clone()); diff --git a/src/app/browser/window/tab/item/page/input/response/control.rs b/src/app/browser/window/tab/item/page/input/response/control.rs index cd9a7684..5ca57d22 100644 --- a/src/app/browser/window/tab/item/page/input/response/control.rs +++ b/src/app/browser/window/tab/item/page/input/response/control.rs @@ -17,7 +17,7 @@ pub struct Control { impl Control { // Construct - pub fn new_arc(action_send: Arc) -> Arc { + pub fn new_arc(action_send: SimpleAction) -> Arc { // Init components let counter = Counter::new_arc(); let send = Send::new_arc(action_send); diff --git a/src/app/browser/window/tab/item/page/input/response/control/send.rs b/src/app/browser/window/tab/item/page/input/response/control/send.rs index 6b6375e3..e51607a7 100644 --- a/src/app/browser/window/tab/item/page/input/response/control/send.rs +++ b/src/app/browser/window/tab/item/page/input/response/control/send.rs @@ -11,7 +11,7 @@ pub struct Send { impl Send { // Construct - pub fn new_arc(action_send: Arc) -> Arc { + pub fn new_arc(action_send: SimpleAction) -> Arc { // Init widget let widget = Widget::new_arc(action_send); diff --git a/src/app/browser/window/tab/item/page/input/response/control/send/widget.rs b/src/app/browser/window/tab/item/page/input/response/control/send/widget.rs index 1c455fd3..a86988ab 100644 --- a/src/app/browser/window/tab/item/page/input/response/control/send/widget.rs +++ b/src/app/browser/window/tab/item/page/input/response/control/send/widget.rs @@ -11,7 +11,7 @@ pub struct Widget { impl Widget { // Construct - pub fn new_arc(action_send: Arc) -> Arc { + pub fn new_arc(action_send: SimpleAction) -> Arc { // Init gobject let gobject = Button::builder() //.css_classes(["accent"]) diff --git a/src/app/browser/window/tab/item/page/input/response/form.rs b/src/app/browser/window/tab/item/page/input/response/form.rs index a80d7fd1..562cb1aa 100644 --- a/src/app/browser/window/tab/item/page/input/response/form.rs +++ b/src/app/browser/window/tab/item/page/input/response/form.rs @@ -11,7 +11,7 @@ pub struct Form { impl Form { // Construct - pub fn new_arc(action_update: Arc) -> Arc { + pub fn new_arc(action_update: SimpleAction) -> Arc { // Init widget let widget = Widget::new_arc(action_update); diff --git a/src/app/browser/window/tab/item/page/input/response/form/widget.rs b/src/app/browser/window/tab/item/page/input/response/form/widget.rs index 5791fe70..e881d935 100644 --- a/src/app/browser/window/tab/item/page/input/response/form/widget.rs +++ b/src/app/browser/window/tab/item/page/input/response/form/widget.rs @@ -14,7 +14,7 @@ pub struct Widget { impl Widget { // Construct - pub fn new_arc(action_update: Arc) -> Arc { + pub fn new_arc(action_update: SimpleAction) -> Arc { // Init gobject let gobject = TextView::builder() .bottom_margin(MARGIN) diff --git a/src/app/browser/window/tab/item/page/input/sensitive.rs b/src/app/browser/window/tab/item/page/input/sensitive.rs index 48de60c4..16ec6d95 100644 --- a/src/app/browser/window/tab/item/page/input/sensitive.rs +++ b/src/app/browser/window/tab/item/page/input/sensitive.rs @@ -20,13 +20,13 @@ pub struct Sensitive { impl Sensitive { // Construct pub fn new_arc( - action_page_open: Arc, + action_page_open: SimpleAction, base: Uri, title: Option<&str>, max_length: Option, ) -> Arc { // Init local actions - let action_send = Arc::new(SimpleAction::new(&uuid_string_random(), None)); + let action_send = SimpleAction::new(&uuid_string_random(), None); // Init components let form = Form::new_arc( diff --git a/src/app/browser/window/tab/item/page/input/sensitive/form.rs b/src/app/browser/window/tab/item/page/input/sensitive/form.rs index 3118baa2..dbc214a6 100644 --- a/src/app/browser/window/tab/item/page/input/sensitive/form.rs +++ b/src/app/browser/window/tab/item/page/input/sensitive/form.rs @@ -13,7 +13,7 @@ pub struct Form { impl Form { // Construct pub fn new_arc( - action_send: Arc, + action_send: SimpleAction, title: Option<&str>, max_length: Option, ) -> Arc { diff --git a/src/app/browser/window/tab/item/page/input/sensitive/form/widget.rs b/src/app/browser/window/tab/item/page/input/sensitive/form/widget.rs index 498f94ef..8b89fb23 100644 --- a/src/app/browser/window/tab/item/page/input/sensitive/form/widget.rs +++ b/src/app/browser/window/tab/item/page/input/sensitive/form/widget.rs @@ -16,7 +16,7 @@ pub struct Widget { impl Widget { // Construct pub fn new_arc( - action_send: Arc, + action_send: SimpleAction, title: Option<&str>, max_length: Option, ) -> Arc { diff --git a/src/app/browser/window/tab/item/page/navigation.rs b/src/app/browser/window/tab/item/page/navigation.rs index 2ca27402..f785792d 100644 --- a/src/app/browser/window/tab/item/page/navigation.rs +++ b/src/app/browser/window/tab/item/page/navigation.rs @@ -30,11 +30,11 @@ pub struct Navigation { impl Navigation { pub fn new_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_update: Arc, + action_tab_page_navigation_base: SimpleAction, + action_tab_page_navigation_history_back: SimpleAction, + action_tab_page_navigation_history_forward: SimpleAction, + action_tab_page_navigation_reload: SimpleAction, + action_update: SimpleAction, ) -> Arc { // Init components let base = Base::new_arc(action_tab_page_navigation_base); diff --git a/src/app/browser/window/tab/item/page/navigation/base.rs b/src/app/browser/window/tab/item/page/navigation/base.rs index f42c1447..44fe6842 100644 --- a/src/app/browser/window/tab/item/page/navigation/base.rs +++ b/src/app/browser/window/tab/item/page/navigation/base.rs @@ -10,14 +10,14 @@ use gtk::{ use std::{cell::RefCell, sync::Arc}; pub struct Base { - action_tab_page_navigation_base: Arc, + action_tab_page_navigation_base: SimpleAction, uri: RefCell>, widget: Arc, } impl Base { // Construct - pub fn new_arc(action_tab_page_navigation_base: Arc) -> Arc { + pub fn new_arc(action_tab_page_navigation_base: SimpleAction) -> Arc { Arc::new(Self { action_tab_page_navigation_base: action_tab_page_navigation_base.clone(), uri: RefCell::new(None), diff --git a/src/app/browser/window/tab/item/page/navigation/base/widget.rs b/src/app/browser/window/tab/item/page/navigation/base/widget.rs index 3dc134d2..8ceddf5e 100644 --- a/src/app/browser/window/tab/item/page/navigation/base/widget.rs +++ b/src/app/browser/window/tab/item/page/navigation/base/widget.rs @@ -11,7 +11,7 @@ pub struct Widget { impl Widget { // Construct - pub fn new_arc(action_tab_page_navigation_base: Arc) -> Arc { + pub fn new_arc(action_tab_page_navigation_base: SimpleAction) -> Arc { // Init gobject let gobject = Button::builder() .icon_name("go-home-symbolic") diff --git a/src/app/browser/window/tab/item/page/navigation/history.rs b/src/app/browser/window/tab/item/page/navigation/history.rs index c91aff05..52cdc9a2 100644 --- a/src/app/browser/window/tab/item/page/navigation/history.rs +++ b/src/app/browser/window/tab/item/page/navigation/history.rs @@ -28,8 +28,8 @@ pub struct History { impl History { // Construct pub fn new_arc( - action_tab_page_navigation_history_back: Arc, - action_tab_page_navigation_history_forward: Arc, + action_tab_page_navigation_history_back: SimpleAction, + action_tab_page_navigation_history_forward: SimpleAction, ) -> Arc { // init components let back = Back::new_arc(action_tab_page_navigation_history_back); diff --git a/src/app/browser/window/tab/item/page/navigation/history/back.rs b/src/app/browser/window/tab/item/page/navigation/history/back.rs index ed4fc37c..a156aaec 100644 --- a/src/app/browser/window/tab/item/page/navigation/history/back.rs +++ b/src/app/browser/window/tab/item/page/navigation/history/back.rs @@ -6,13 +6,13 @@ use gtk::{gio::SimpleAction, Button}; use std::sync::Arc; pub struct Back { - action_tab_page_navigation_history_back: Arc, + action_tab_page_navigation_history_back: SimpleAction, widget: Arc, } impl Back { // Construct - pub fn new_arc(action_tab_page_navigation_history_back: Arc) -> Arc { + pub fn new_arc(action_tab_page_navigation_history_back: SimpleAction) -> Arc { // Return activated struct Arc::new(Self { action_tab_page_navigation_history_back: action_tab_page_navigation_history_back diff --git a/src/app/browser/window/tab/item/page/navigation/history/back/widget.rs b/src/app/browser/window/tab/item/page/navigation/history/back/widget.rs index cd0c731a..8256c50f 100644 --- a/src/app/browser/window/tab/item/page/navigation/history/back/widget.rs +++ b/src/app/browser/window/tab/item/page/navigation/history/back/widget.rs @@ -11,7 +11,7 @@ pub struct Widget { impl Widget { // Construct - pub fn new_arc(action_tab_page_navigation_history_back: Arc) -> Arc { + pub fn new_arc(action_tab_page_navigation_history_back: SimpleAction) -> Arc { // Init gobject let gobject = Button::builder() .icon_name("go-previous-symbolic") diff --git a/src/app/browser/window/tab/item/page/navigation/history/forward.rs b/src/app/browser/window/tab/item/page/navigation/history/forward.rs index 5573f965..15531722 100644 --- a/src/app/browser/window/tab/item/page/navigation/history/forward.rs +++ b/src/app/browser/window/tab/item/page/navigation/history/forward.rs @@ -6,13 +6,13 @@ use gtk::{gio::SimpleAction, Button}; use std::sync::Arc; pub struct Forward { - action_tab_page_navigation_history_forward: Arc, + action_tab_page_navigation_history_forward: SimpleAction, widget: Arc, } impl Forward { // Construct - pub fn new_arc(action_tab_page_navigation_history_forward: Arc) -> Arc { + pub fn new_arc(action_tab_page_navigation_history_forward: SimpleAction) -> Arc { // Return activated struct Arc::new(Self { action_tab_page_navigation_history_forward: action_tab_page_navigation_history_forward diff --git a/src/app/browser/window/tab/item/page/navigation/history/forward/widget.rs b/src/app/browser/window/tab/item/page/navigation/history/forward/widget.rs index 3e2fe795..d3915afb 100644 --- a/src/app/browser/window/tab/item/page/navigation/history/forward/widget.rs +++ b/src/app/browser/window/tab/item/page/navigation/history/forward/widget.rs @@ -11,7 +11,7 @@ pub struct Widget { impl Widget { // Construct - pub fn new_arc(action_tab_page_navigation_history_forward: Arc) -> Arc { + pub fn new_arc(action_tab_page_navigation_history_forward: SimpleAction) -> Arc { // Init gobject let gobject = Button::builder() .icon_name("go-next-symbolic") diff --git a/src/app/browser/window/tab/item/page/navigation/reload.rs b/src/app/browser/window/tab/item/page/navigation/reload.rs index ff51335e..2ec1ba38 100644 --- a/src/app/browser/window/tab/item/page/navigation/reload.rs +++ b/src/app/browser/window/tab/item/page/navigation/reload.rs @@ -6,13 +6,13 @@ use gtk::{gio::SimpleAction, Button}; use std::sync::Arc; pub struct Reload { - action_tab_page_navigation_reload: Arc, + action_tab_page_navigation_reload: SimpleAction, widget: Arc, } impl Reload { // Construct - pub fn new_arc(action_tab_page_navigation_reload: Arc) -> Arc { + pub fn new_arc(action_tab_page_navigation_reload: SimpleAction) -> Arc { Arc::new(Self { action_tab_page_navigation_reload: action_tab_page_navigation_reload.clone(), widget: Widget::new_arc(action_tab_page_navigation_reload), diff --git a/src/app/browser/window/tab/item/page/navigation/reload/widget.rs b/src/app/browser/window/tab/item/page/navigation/reload/widget.rs index 54d3e946..4d5e3ace 100644 --- a/src/app/browser/window/tab/item/page/navigation/reload/widget.rs +++ b/src/app/browser/window/tab/item/page/navigation/reload/widget.rs @@ -11,7 +11,7 @@ pub struct Widget { impl Widget { // Construct - pub fn new_arc(action_tab_page_navigation_reload: Arc) -> Arc { + pub fn new_arc(action_tab_page_navigation_reload: SimpleAction) -> Arc { // Init gobject let gobject = Button::builder() .icon_name("view-refresh-symbolic") diff --git a/src/app/browser/window/tab/item/page/navigation/request.rs b/src/app/browser/window/tab/item/page/navigation/request.rs index c63da418..5f973637 100644 --- a/src/app/browser/window/tab/item/page/navigation/request.rs +++ b/src/app/browser/window/tab/item/page/navigation/request.rs @@ -21,8 +21,8 @@ impl Request { // Construct pub fn new_arc( // Actions - action_update: Arc, - action_tab_page_navigation_reload: Arc, // @TODO local `action_page_open`? + action_update: SimpleAction, + action_tab_page_navigation_reload: SimpleAction, // @TODO local `action_page_open`? ) -> Arc { Arc::new(Self { widget: Widget::new_arc(action_update, action_tab_page_navigation_reload), diff --git a/src/app/browser/window/tab/item/page/navigation/request/widget.rs b/src/app/browser/window/tab/item/page/navigation/request/widget.rs index b2ad2fac..12140384 100644 --- a/src/app/browser/window/tab/item/page/navigation/request/widget.rs +++ b/src/app/browser/window/tab/item/page/navigation/request/widget.rs @@ -30,8 +30,8 @@ pub struct Widget { impl Widget { // Construct pub fn new_arc( - action_update: Arc, - action_tab_page_navigation_reload: Arc, // @TODO local `action_page_open`? + action_update: SimpleAction, + action_tab_page_navigation_reload: SimpleAction, // @TODO local `action_page_open`? ) -> Arc { // Init animated progress bar state let progress = Arc::new(Progress { diff --git a/src/app/browser/window/tab/item/page/widget.rs b/src/app/browser/window/tab/item/page/widget.rs index a0f17743..dc3a0778 100644 --- a/src/app/browser/window/tab/item/page/widget.rs +++ b/src/app/browser/window/tab/item/page/widget.rs @@ -16,7 +16,7 @@ impl Widget { pub fn new_arc( name: &str, // Actions - action_page_open: Arc, + action_page_open: SimpleAction, // Components navigation: &Box, content: &Box, @@ -24,7 +24,7 @@ impl Widget { ) -> Arc { // Init additional action group let action_group = SimpleActionGroup::new(); - action_group.add_action(action_page_open.as_ref()); + action_group.add_action(&action_page_open); // Init self let gobject = Box::builder() diff --git a/src/app/browser/window/tab/widget.rs b/src/app/browser/window/tab/widget.rs index fbb1b11e..6d7e71a8 100644 --- a/src/app/browser/window/tab/widget.rs +++ b/src/app/browser/window/tab/widget.rs @@ -1,5 +1,3 @@ -use std::sync::Arc; - use adw::TabView; use gtk::{ gio::{Icon, SimpleAction, SimpleActionGroup}, @@ -13,10 +11,10 @@ pub struct Widget { impl Widget { // Construct - pub fn new(action_tab_append: Arc) -> Self { + pub fn new(action_tab_append: SimpleAction) -> Self { // Init additional action group let action_group = SimpleActionGroup::new(); - action_group.add_action(action_tab_append.as_ref()); + action_group.add_action(&action_tab_append); // Init gobject let gobject = TabView::new();