From 7d55e2b8eece78ff8a571d773f54c4c1f8fb1a83 Mon Sep 17 00:00:00 2001 From: yggverse Date: Sat, 28 Sep 2024 13:16:10 +0300 Subject: [PATCH] add page meta status update --- src/browser/main/tab/page.rs | 18 +++++++++++++++--- src/browser/main/tab/page/meta.rs | 1 + 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/browser/main/tab/page.rs b/src/browser/main/tab/page.rs index e49f1a19..10caf13c 100644 --- a/src/browser/main/tab/page.rs +++ b/src/browser/main/tab/page.rs @@ -3,7 +3,7 @@ mod meta; mod navigation; use content::Content; -use meta::{Meta, Mime}; +use meta::{Meta, Mime, Status}; use navigation::Navigation; use gtk::{ @@ -116,6 +116,7 @@ impl Page { // Update meta.borrow_mut().mime = None; + meta.borrow_mut().status = Some(Status::Reload); meta.borrow_mut().title = Some(gformat!("Loading..")); meta.borrow_mut().description = None; meta.borrow_mut().progress_fraction = 0.0; @@ -222,11 +223,14 @@ impl Page { // Select widget match parts.get(4) { Some(source) => { - // Update component + // Update content let result = content.reset(content::Mime::TextGemini, &uri, &source); // This content type may return parsed title meta.borrow_mut().title = result.title.clone(); + + // Update status + meta.borrow_mut().status = Some(Status::Success); }, None => todo!(), } @@ -247,7 +251,9 @@ impl Page { "31" => { // Update meta meta.borrow_mut().mime = Some(Mime::TextGemini); + meta.borrow_mut().status = Some(Status::Redirect); meta.borrow_mut().title = Some(gformat!("Redirect")); + meta.borrow_mut().progress_fraction = 1.0; // Select widget match parts.get(3) { @@ -255,7 +261,7 @@ impl Page { let _ = content.reset( content::Mime::TextGemini, &uri, - &gformat!("# Redirect\nConfirm:\n=> {source}") + &gformat!("# Redirect\n=> {source}") ); }, None => todo!(), @@ -263,8 +269,10 @@ impl Page { }, // @TODO _ => { + meta.borrow_mut().status = Some(Status::Failure); meta.borrow_mut().title = Some(gformat!("Oops")); meta.borrow_mut().description = Some(gformat!("Status {code} not supported")); + meta.borrow_mut().progress_fraction = 1.0; }, } None => todo!(), @@ -274,6 +282,7 @@ impl Page { action_update.activate(None); } Err(e) => { + meta.borrow_mut().status = Some(Status::Failure); meta.borrow_mut().title = Some(gformat!("Oops")); meta.borrow_mut().description = Some(gformat!("Failed to read buffer data: {e}")); meta.borrow_mut().progress_fraction = 1.0; @@ -289,6 +298,7 @@ impl Page { } Err(e) => { // Update + meta.borrow_mut().status = Some(Status::Failure); meta.borrow_mut().title = Some(gformat!("Oops")); meta.borrow_mut().description = Some(gformat!("Failed to read response: {:?}", e)); meta.borrow_mut().progress_fraction = 1.0; @@ -305,6 +315,7 @@ impl Page { } Err(e) => { // Update + meta.borrow_mut().status = Some(Status::Failure); meta.borrow_mut().title = Some(gformat!("Oops")); meta.borrow_mut().description = Some(gformat!("Failed to read request: {:?}", e)); meta.borrow_mut().progress_fraction = 1.0; @@ -321,6 +332,7 @@ impl Page { } Err(e) => { // Update + meta.borrow_mut().status = Some(Status::Failure); meta.borrow_mut().title = Some(gformat!("Oops")); meta.borrow_mut().description = Some(gformat!("Failed to connect: {:?}", e)); meta.borrow_mut().progress_fraction = 1.0; diff --git a/src/browser/main/tab/page/meta.rs b/src/browser/main/tab/page/meta.rs index b255d6d5..518f88a2 100644 --- a/src/browser/main/tab/page/meta.rs +++ b/src/browser/main/tab/page/meta.rs @@ -12,6 +12,7 @@ pub enum Mime { pub enum Status { Failure, Redirect, + Reload, Success, }