make progress fraction value update optional

This commit is contained in:
yggverse 2024-09-29 23:10:54 +03:00
parent a145ea4b6d
commit 46bf3c30ec
3 changed files with 43 additions and 39 deletions

View File

@ -399,11 +399,12 @@ impl Page {
pub fn update(&self) { pub fn update(&self) {
// Interpret status to progress fraction // Interpret status to progress fraction
let progress_fraction = match self.meta.borrow().status { let progress_fraction = match self.meta.borrow().status {
Some(Status::Prepare) => 0.25, Some(Status::Success) => Some(0.0),
Some(Status::Connect) => 0.50, Some(Status::Prepare) => Some(0.25),
Some(Status::Request) => 0.75, Some(Status::Connect) => Some(0.50),
Some(Status::Response | Status::Success) => 1.0, Some(Status::Request) => Some(0.75),
_ => 0.0, Some(Status::Response) => Some(1.0),
_ => None,
}; };
// Update components // Update components

View File

@ -75,7 +75,7 @@ impl Navigation {
} }
// Actions // Actions
pub fn update(&self, progress_fraction: f64) { pub fn update(&self, progress_fraction: Option<f64>) {
self.base.update(self.request.uri()); self.base.update(self.request.uri());
self.history.update(); self.history.update();
self.reload.update(!self.request.is_empty()); self.reload.update(!self.request.is_empty());

View File

@ -60,9 +60,11 @@ impl Request {
} }
// Actions // Actions
pub fn update(&self, progress_fraction: f64) { pub fn update(&self, progress_fraction: Option<f64>) {
// Skip Non value
if let Some(value) = progress_fraction {
// Update shared fraction value for async progressbar animation // Update shared fraction value for async progressbar animation
self.progress.fraction.replace(progress_fraction); self.progress.fraction.replace(value);
// Start new frame on previous process completed only (`source_id` is None) // Start new frame on previous process completed only (`source_id` is None)
// If previous process still active, we have just updated shared fraction value before, to use it inside the active process // If previous process still active, we have just updated shared fraction value before, to use it inside the active process
@ -98,6 +100,7 @@ impl Request {
))); )));
} }
} }
}
// Setters // Setters
pub fn set_text(&self, value: &GString, activate: bool) { pub fn set_text(&self, value: &GString, activate: bool) {