mirror of
https://github.com/YGGverse/Yoda.git
synced 2025-03-10 12:41:34 +00:00
implement page reload on request auto-routed
This commit is contained in:
parent
c31cf21149
commit
cdf3dbcf04
@ -49,19 +49,25 @@ impl Page {
|
||||
println!("Parsed URI: {}", uri); // @TODO
|
||||
}
|
||||
Err(_) => {
|
||||
// Request contain host substring
|
||||
// Try interpret host manually
|
||||
if Regex::match_simple(
|
||||
r"regex(^[^\/\s]+\.[\w]{2,})regex",
|
||||
request_text.clone(),
|
||||
RegexCompileFlags::DEFAULT,
|
||||
RegexMatchFlags::DEFAULT,
|
||||
) {
|
||||
let request_text = format!("gemini://{request_text}");
|
||||
// @TODO reload
|
||||
// Seems request contain some host substring
|
||||
self.navigation.set_request_text(
|
||||
&GString::from(format!("gemini://{request_text}")),
|
||||
true, // activate (page reload) @TODO validate new uri instead?
|
||||
);
|
||||
} else {
|
||||
// Plain text given, make search request to default provider
|
||||
Uri::escape_string(&request_text, None, false);
|
||||
let request_text = format!("gemini://tlgs.one/search?{request_text}");
|
||||
// @TODO reload
|
||||
self.navigation.set_request_text(
|
||||
&GString::from(format!("gemini://tlgs.one/search?{request_text}")),
|
||||
true, // activate (page reload)
|
||||
);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@ -68,6 +68,11 @@ impl Navigation {
|
||||
self.bookmark.update();
|
||||
}
|
||||
|
||||
// Setters
|
||||
pub fn set_request_text(&self, value: &GString, activate: bool) {
|
||||
self.request.set_text(value, activate);
|
||||
}
|
||||
|
||||
// Getters
|
||||
pub fn widget(&self) -> &Box {
|
||||
&self.widget
|
||||
|
@ -37,6 +37,15 @@ impl Request {
|
||||
// @TODO animate progress fraction
|
||||
}
|
||||
|
||||
// Setters
|
||||
pub fn set_text(&self, value: &GString, activate: bool) {
|
||||
self.widget.set_text(value);
|
||||
|
||||
if activate {
|
||||
self.widget.activate();
|
||||
}
|
||||
}
|
||||
|
||||
// Getters
|
||||
pub fn widget(&self) -> &Entry {
|
||||
&self.widget
|
||||
|
Loading…
x
Reference in New Issue
Block a user