mirror of
https://github.com/YGGverse/Yoda.git
synced 2025-02-03 15:04:13 +00:00
rename page Request
to Mode
This commit is contained in:
parent
10c415063a
commit
557ad69edf
@ -4,8 +4,8 @@ mod database;
|
|||||||
mod error;
|
mod error;
|
||||||
mod input;
|
mod input;
|
||||||
mod meta;
|
mod meta;
|
||||||
|
mod mode;
|
||||||
mod navigation;
|
mod navigation;
|
||||||
mod request;
|
|
||||||
mod search;
|
mod search;
|
||||||
mod widget;
|
mod widget;
|
||||||
|
|
||||||
@ -14,16 +14,18 @@ use content::Content;
|
|||||||
use error::Error;
|
use error::Error;
|
||||||
use input::Input;
|
use input::Input;
|
||||||
use meta::{Meta, Status};
|
use meta::{Meta, Status};
|
||||||
|
use mode::Mode;
|
||||||
use navigation::Navigation;
|
use navigation::Navigation;
|
||||||
use request::Request;
|
|
||||||
use search::Search;
|
use search::Search;
|
||||||
use widget::Widget;
|
use widget::Widget;
|
||||||
|
|
||||||
use crate::app::browser::{
|
use crate::{
|
||||||
window::{tab::item::Action as TabAction, Action as WindowAction},
|
app::browser::{
|
||||||
Action as BrowserAction,
|
window::{tab::item::Action as TabAction, Action as WindowAction},
|
||||||
|
Action as BrowserAction,
|
||||||
|
},
|
||||||
|
Profile,
|
||||||
};
|
};
|
||||||
use crate::Profile;
|
|
||||||
use gtk::{
|
use gtk::{
|
||||||
gdk::Texture,
|
gdk::Texture,
|
||||||
gdk_pixbuf::Pixbuf,
|
gdk_pixbuf::Pixbuf,
|
||||||
@ -194,6 +196,7 @@ impl Page {
|
|||||||
|
|
||||||
// Try redirect request
|
// Try redirect request
|
||||||
let request = if let Some(redirect) = self.meta.redirect() {
|
let request = if let Some(redirect) = self.meta.redirect() {
|
||||||
|
// Gemini protocol may provide background (temporarily) redirects
|
||||||
if redirect.is_foreground {
|
if redirect.is_foreground {
|
||||||
self.navigation
|
self.navigation
|
||||||
.request
|
.request
|
||||||
@ -203,30 +206,30 @@ impl Page {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Return value from redirection holder
|
// Return value from redirection holder
|
||||||
Request::from(&redirect.request, redirect.referrer.as_ref())
|
Mode::from(&redirect.request, redirect.referrer.as_ref())
|
||||||
} else {
|
} else {
|
||||||
// Reset redirect counter as request value taken from user input
|
// Reset redirect counter as request value taken from user input
|
||||||
self.meta.redirect.borrow_mut().clear();
|
self.meta.redirect.borrow_mut().clear();
|
||||||
|
|
||||||
// Return value from navigation entry
|
// Return value from navigation entry
|
||||||
Request::from(&self.navigation.request.widget.entry.text(), None)
|
Mode::from(&self.navigation.request.widget.entry.text(), None)
|
||||||
};
|
};
|
||||||
|
|
||||||
// Update
|
// Update
|
||||||
self.meta.set_status(Status::Reload).set_title("Loading..");
|
self.meta.set_status(Status::Reload).set_title("Loading..");
|
||||||
self.browser_action.update.activate(Some(&self.id));
|
self.browser_action.update.activate(Some(&self.id));
|
||||||
|
|
||||||
// Route by request
|
// Route by `Mode`
|
||||||
match request {
|
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
|
// Route by scheme
|
||||||
match uri.scheme().as_str() {
|
match uri.scheme().as_str() {
|
||||||
"file" => todo!(),
|
"file" => todo!(),
|
||||||
"gemini" => {
|
"gemini" => {
|
||||||
let (uri, is_download, is_source) = match request {
|
let (uri, is_download, is_source) = match request {
|
||||||
Request::Default(uri) => (uri, false, false),
|
Mode::Default(uri) => (uri, false, false),
|
||||||
Request::Download(uri) => (uri, true, false),
|
Mode::Download(uri) => (uri, true, false),
|
||||||
Request::Source(uri) => (uri, false, true),
|
Mode::Source(uri) => (uri, false, true),
|
||||||
_ => panic!(),
|
_ => panic!(),
|
||||||
};
|
};
|
||||||
self.load_gemini(uri, is_download, is_source, is_history)
|
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
|
// try autocomplete scheme and request it on successful resolve
|
||||||
// otherwise make search request @TODO optional search provider
|
// otherwise make search request @TODO optional search provider
|
||||||
self.navigation
|
self.navigation
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
use gtk::glib::{GString, Uri, UriFlags};
|
use gtk::glib::{GString, Uri, UriFlags};
|
||||||
|
|
||||||
/// Request type for `Page` with optional value parsed
|
/// Page type for `Page` with optional value parsed
|
||||||
pub enum Request {
|
pub enum Mode {
|
||||||
Default(Uri),
|
Default(Uri),
|
||||||
Download(Uri),
|
Download(Uri),
|
||||||
Source(Uri),
|
Source(Uri),
|
||||||
Search(String),
|
Search(String),
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Request {
|
impl Mode {
|
||||||
// Constructors
|
// Constructors
|
||||||
|
|
||||||
/// Create new `Self` from `request` string
|
/// Create new `Self` from `request` string
|
Loading…
x
Reference in New Issue
Block a user