From 557ad69edf02a1a17e84d15cea739ced1e556c57 Mon Sep 17 00:00:00 2001 From: yggverse Date: Tue, 14 Jan 2025 20:08:49 +0200 Subject: [PATCH] rename page `Request` to `Mode` --- src/app/browser/window/tab/item/page.rs | 31 ++++++++++--------- .../tab/item/page/{request.rs => mode.rs} | 6 ++-- 2 files changed, 20 insertions(+), 17 deletions(-) rename src/app/browser/window/tab/item/page/{request.rs => mode.rs} (94%) diff --git a/src/app/browser/window/tab/item/page.rs b/src/app/browser/window/tab/item/page.rs index ee8e5b5d..8288508a 100644 --- a/src/app/browser/window/tab/item/page.rs +++ b/src/app/browser/window/tab/item/page.rs @@ -4,8 +4,8 @@ mod database; mod error; mod input; mod meta; +mod mode; mod navigation; -mod request; mod search; mod widget; @@ -14,16 +14,18 @@ use content::Content; use error::Error; use input::Input; use meta::{Meta, Status}; +use mode::Mode; use navigation::Navigation; -use request::Request; use search::Search; use widget::Widget; -use crate::app::browser::{ - window::{tab::item::Action as TabAction, Action as WindowAction}, - Action as BrowserAction, +use crate::{ + app::browser::{ + window::{tab::item::Action as TabAction, Action as WindowAction}, + Action as BrowserAction, + }, + Profile, }; -use crate::Profile; use gtk::{ gdk::Texture, gdk_pixbuf::Pixbuf, @@ -194,6 +196,7 @@ impl Page { // Try redirect request let request = if let Some(redirect) = self.meta.redirect() { + // Gemini protocol may provide background (temporarily) redirects if redirect.is_foreground { self.navigation .request @@ -203,30 +206,30 @@ impl Page { } // Return value from redirection holder - Request::from(&redirect.request, redirect.referrer.as_ref()) + Mode::from(&redirect.request, redirect.referrer.as_ref()) } else { // Reset redirect counter as request value taken from user input self.meta.redirect.borrow_mut().clear(); // Return value from navigation entry - Request::from(&self.navigation.request.widget.entry.text(), None) + Mode::from(&self.navigation.request.widget.entry.text(), None) }; // Update self.meta.set_status(Status::Reload).set_title("Loading.."); self.browser_action.update.activate(Some(&self.id)); - // Route by request + // Route by `Mode` match request { - Request::Default(ref uri) | Request::Download(ref uri) | Request::Source(ref uri) => { + Mode::Default(ref uri) | Mode::Download(ref uri) | Mode::Source(ref uri) => { // Route by scheme match uri.scheme().as_str() { "file" => todo!(), "gemini" => { let (uri, is_download, is_source) = match request { - Request::Default(uri) => (uri, false, false), - Request::Download(uri) => (uri, true, false), - Request::Source(uri) => (uri, false, true), + Mode::Default(uri) => (uri, false, false), + Mode::Download(uri) => (uri, true, false), + Mode::Source(uri) => (uri, false, true), _ => panic!(), }; self.load_gemini(uri, is_download, is_source, is_history) @@ -265,7 +268,7 @@ impl Page { } } } - Request::Search(query) => { + Mode::Search(query) => { // try autocomplete scheme and request it on successful resolve // otherwise make search request @TODO optional search provider self.navigation diff --git a/src/app/browser/window/tab/item/page/request.rs b/src/app/browser/window/tab/item/page/mode.rs similarity index 94% rename from src/app/browser/window/tab/item/page/request.rs rename to src/app/browser/window/tab/item/page/mode.rs index 2517f26b..18447c89 100644 --- a/src/app/browser/window/tab/item/page/request.rs +++ b/src/app/browser/window/tab/item/page/mode.rs @@ -1,14 +1,14 @@ use gtk::glib::{GString, Uri, UriFlags}; -/// Request type for `Page` with optional value parsed -pub enum Request { +/// Page type for `Page` with optional value parsed +pub enum Mode { Default(Uri), Download(Uri), Source(Uri), Search(String), } -impl Request { +impl Mode { // Constructors /// Create new `Self` from `request` string