Browse Source

use arc on construct

master
yggverse 2 months ago
parent
commit
e514312f84
  1. 4
      src/app/browser/window/tab.rs
  2. 14
      src/app/browser/window/tab/item.rs
  3. 6
      src/app/browser/window/tab/item/page.rs

4
src/app/browser/window/tab.rs

@ -91,7 +91,7 @@ impl Tab { @@ -91,7 +91,7 @@ impl Tab {
is_initially_current: bool,
) -> Arc<Item> {
// Init new tab item
let item = Arc::new(Item::new(
let item = Item::new(
page_navigation_request_text.clone(),
is_initially_current,
// Actions
@ -100,7 +100,7 @@ impl Tab { @@ -100,7 +100,7 @@ impl Tab {
self.action_tab_page_navigation_history_forward.clone(),
self.action_tab_page_navigation_reload.clone(),
self.action_update.clone(),
));
);
// Register dynamically created tab components in the HashMap index
self.index.borrow_mut().insert(item.id(), item.clone());

14
src/app/browser/window/tab/item.rs

@ -38,14 +38,14 @@ impl Item { @@ -38,14 +38,14 @@ impl Item {
action_tab_page_navigation_history_forward: Arc<SimpleAction>,
action_tab_page_navigation_reload: Arc<SimpleAction>,
action_update: Arc<SimpleAction>,
) -> Self {
) -> Arc<Self> {
// Generate unique ID for new page components
let id = uuid_string_random();
// Init components
let label = Label::new(id.clone(), false);
let page = Arc::new(Page::new(
let page = Page::new(
id.clone(),
page_navigation_request_text.clone(),
action_tab_page_navigation_base.clone(),
@ -53,15 +53,15 @@ impl Item { @@ -53,15 +53,15 @@ impl Item {
action_tab_page_navigation_history_forward.clone(),
action_tab_page_navigation_reload.clone(),
action_update.clone(),
));
);
// Return struct
Self {
Arc::new(Self {
id,
is_initially_current,
label,
page,
}
})
}
// Actions
@ -142,7 +142,7 @@ impl Item { @@ -142,7 +142,7 @@ impl Item {
Ok(records) => {
for record in records {
// Construct new item object
let item = Arc::new(Item::new(
let item = Item::new(
None,
record.is_initially_current,
// Actions
@ -151,7 +151,7 @@ impl Item { @@ -151,7 +151,7 @@ impl Item {
action_tab_page_navigation_history_forward.clone(),
action_tab_page_navigation_reload.clone(),
action_update.clone(),
));
);
// Delegate restore action to the item childs
item.label.restore(transaction, &record.id)?;

6
src/app/browser/window/tab/item/page.rs

@ -44,7 +44,7 @@ impl Page { @@ -44,7 +44,7 @@ impl Page {
action_tab_page_navigation_history_forward: Arc<SimpleAction>,
action_tab_page_navigation_reload: Arc<SimpleAction>,
action_update: Arc<SimpleAction>,
) -> Page {
) -> Arc<Self> {
// Init actions
let action_page_open = Arc::new(SimpleAction::new(
"open",
@ -102,7 +102,7 @@ impl Page { @@ -102,7 +102,7 @@ impl Page {
});
// Return activated structure
Self {
Arc::new(Self {
// GTK
widget,
// Actions
@ -114,7 +114,7 @@ impl Page { @@ -114,7 +114,7 @@ impl Page {
navigation,
// Extras
meta,
}
})
}
// Actions

Loading…
Cancel
Save