mirror of
https://github.com/YGGverse/Yoda.git
synced 2025-03-13 06:01:21 +00:00
use arc pointer for shared objects
This commit is contained in:
parent
a4f208a372
commit
01a3e57a09
@ -24,7 +24,7 @@ pub struct Page {
|
|||||||
navigation: Navigation,
|
navigation: Navigation,
|
||||||
content: Arc<Content>,
|
content: Arc<Content>,
|
||||||
// Extras
|
// Extras
|
||||||
meta: RefCell<Meta>,
|
meta: Arc<RefCell<Meta>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Page {
|
impl Page {
|
||||||
@ -44,7 +44,7 @@ impl Page {
|
|||||||
widget.append(content.widget());
|
widget.append(content.widget());
|
||||||
|
|
||||||
// Init meta
|
// Init meta
|
||||||
let meta = Meta::new();
|
let meta = Arc::new(Meta::new());
|
||||||
|
|
||||||
// Result
|
// Result
|
||||||
Arc::new(Self {
|
Arc::new(Self {
|
||||||
@ -60,13 +60,17 @@ impl Page {
|
|||||||
// Init globals
|
// Init globals
|
||||||
let request_text = self.navigation.request_text();
|
let request_text = self.navigation.request_text();
|
||||||
|
|
||||||
// Update
|
// Init shared objects for async access
|
||||||
self.meta.borrow_mut().title = GString::from("Reload");
|
let meta = self.meta.clone();
|
||||||
self.meta.borrow_mut().description = request_text.clone();
|
let widget = self.widget.clone();
|
||||||
self.meta.borrow_mut().mime = Mime::Undefined;
|
|
||||||
self.meta.borrow_mut().progress_fraction = 0.0;
|
|
||||||
|
|
||||||
let _ = self.widget.activate_action("win.update", None);
|
// Update
|
||||||
|
meta.borrow_mut().title = GString::from("Reload");
|
||||||
|
meta.borrow_mut().description = request_text.clone();
|
||||||
|
meta.borrow_mut().mime = Mime::Undefined;
|
||||||
|
meta.borrow_mut().progress_fraction = 0.0;
|
||||||
|
|
||||||
|
let _ = widget.activate_action("win.update", None);
|
||||||
|
|
||||||
/*let _uri = */
|
/*let _uri = */
|
||||||
match Uri::parse(&request_text, UriFlags::NONE) {
|
match Uri::parse(&request_text, UriFlags::NONE) {
|
||||||
@ -99,10 +103,10 @@ impl Page {
|
|||||||
move |result| match result {
|
move |result| match result {
|
||||||
Ok(connection) => {
|
Ok(connection) => {
|
||||||
// Update
|
// Update
|
||||||
//self.meta.borrow_mut().title = GString::from("Request");
|
meta.borrow_mut().title = GString::from("Request");
|
||||||
//self.meta.borrow_mut().progress_fraction = 0.50;
|
meta.borrow_mut().progress_fraction = 0.50;
|
||||||
|
|
||||||
//let _ = self.widget.activate_action("win.update", None);
|
let _ = widget.activate_action("win.update", None);
|
||||||
|
|
||||||
// Send request
|
// Send request
|
||||||
connection.output_stream().write_all_async(
|
connection.output_stream().write_all_async(
|
||||||
@ -112,10 +116,10 @@ impl Page {
|
|||||||
move |result| match result {
|
move |result| match result {
|
||||||
Ok(_) => {
|
Ok(_) => {
|
||||||
// Update
|
// Update
|
||||||
//self.meta.borrow_mut().title = GString::from("Response");
|
meta.borrow_mut().title = GString::from("Response");
|
||||||
//self.meta.borrow_mut().progress_fraction = 0.75;
|
meta.borrow_mut().progress_fraction = 0.75;
|
||||||
|
|
||||||
//let _ = self.widget.activate_action("win.update", None);
|
let _ = widget.activate_action("win.update", None);
|
||||||
|
|
||||||
// Read response
|
// Read response
|
||||||
connection.input_stream().read_all_async(
|
connection.input_stream().read_all_async(
|
||||||
@ -129,10 +133,15 @@ impl Page {
|
|||||||
) {
|
) {
|
||||||
Ok(data) => {
|
Ok(data) => {
|
||||||
// Update
|
// Update
|
||||||
//self.meta.borrow_mut().title = GString::from("Done"); // @TODO
|
meta.borrow_mut().title =
|
||||||
//self.meta.borrow_mut().progress_fraction = 1.0;
|
GString::from("Done"); // @TODO
|
||||||
|
meta.borrow_mut()
|
||||||
|
.progress_fraction = 1.0;
|
||||||
|
|
||||||
//let _ = self.widget.activate_action("win.update", None);
|
let _ = widget.activate_action(
|
||||||
|
"win.update",
|
||||||
|
None,
|
||||||
|
);
|
||||||
|
|
||||||
// Detect page meta
|
// Detect page meta
|
||||||
let meta = Regex::split_simple(
|
let meta = Regex::split_simple(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user