mirror of
https://github.com/YGGverse/Yoda.git
synced 2025-02-05 07:54:14 +00:00
use shared pointer for page id string
This commit is contained in:
parent
96d06c1ffb
commit
e41216ab75
@ -26,7 +26,7 @@ pub struct Tab {
|
||||
action_tab_page_navigation_reload: Arc<SimpleAction>,
|
||||
action_update: Arc<SimpleAction>,
|
||||
// Dynamically allocated reference index
|
||||
index: Arc<RefCell<HashMap<GString, Arc<Item>>>>,
|
||||
index: Arc<RefCell<HashMap<Arc<GString>, Arc<Item>>>>,
|
||||
// GTK
|
||||
widget: Arc<Widget>,
|
||||
}
|
||||
|
@ -17,7 +17,7 @@ use std::sync::Arc;
|
||||
pub struct Item {
|
||||
// Auto-generated unique item ID
|
||||
// useful as widget name in GTK actions callback
|
||||
id: GString,
|
||||
id: Arc<GString>,
|
||||
// Components
|
||||
page: Arc<Page>,
|
||||
widget: Arc<Widget>,
|
||||
@ -39,7 +39,7 @@ impl Item {
|
||||
is_selected: bool,
|
||||
) -> Arc<Self> {
|
||||
// Generate unique ID for new page components
|
||||
let id = uuid_string_random();
|
||||
let id = Arc::new(uuid_string_random());
|
||||
|
||||
// Init components
|
||||
let page = Page::new_arc(
|
||||
@ -201,7 +201,7 @@ impl Item {
|
||||
}
|
||||
|
||||
// Getters
|
||||
pub fn id(&self) -> GString {
|
||||
pub fn id(&self) -> Arc<GString> {
|
||||
self.id.clone()
|
||||
}
|
||||
|
||||
|
@ -27,6 +27,7 @@ use sqlite::Transaction;
|
||||
use std::{cell::RefCell, path::Path, sync::Arc};
|
||||
|
||||
pub struct Page {
|
||||
id: Arc<GString>,
|
||||
// Actions
|
||||
action_page_open: Arc<SimpleAction>,
|
||||
action_tab_page_navigation_reload: Arc<SimpleAction>,
|
||||
@ -43,7 +44,7 @@ pub struct Page {
|
||||
impl Page {
|
||||
// Construct
|
||||
pub fn new_arc(
|
||||
id: GString,
|
||||
id: Arc<GString>,
|
||||
action_tab_open: Arc<SimpleAction>,
|
||||
action_tab_page_navigation_base: Arc<SimpleAction>,
|
||||
action_tab_page_navigation_history_back: Arc<SimpleAction>,
|
||||
@ -102,6 +103,7 @@ impl Page {
|
||||
|
||||
// Return activated structure
|
||||
Arc::new(Self {
|
||||
id,
|
||||
// Actions
|
||||
action_page_open,
|
||||
action_tab_page_navigation_reload,
|
||||
|
Loading…
x
Reference in New Issue
Block a user