move strip_prefix getter to request api

This commit is contained in:
yggverse 2024-12-11 15:50:04 +02:00
parent 4e0797bd6e
commit 6f038539d6
3 changed files with 17 additions and 19 deletions

View File

@ -72,7 +72,7 @@ impl Navigation {
self.bookmark self.bookmark
.update(self.profile.bookmark.get(&request_text).is_ok()); .update(self.profile.bookmark.get(&request_text).is_ok());
self.history.update(); self.history.update();
self.home.update(&request_text); self.home.update(&self.request.strip_prefix());
self.reload.update(!request_text.is_empty()); self.reload.update(!request_text.is_empty());
self.request.update( self.request.update(
progress_fraction, progress_fraction,

View File

@ -24,7 +24,7 @@ impl Home {
// Actions // Actions
pub fn update(&self, request: &str) { pub fn update(&self, request: &str) {
let has_home = match Uri::parse(strip_prefix(request), UriFlags::NONE) { let has_home = match Uri::parse(request, UriFlags::NONE) {
Ok(uri) => { Ok(uri) => {
let has_home = "/" != uri.path(); let has_home = "/" != uri.path();
self.uri.replace(Some(uri)); self.uri.replace(Some(uri));
@ -56,19 +56,3 @@ impl Home {
None None
} }
} }
// Tools
fn strip_prefix(request: &str) -> &str {
let request = match request.strip_prefix("source:") {
Some(postfix) => postfix,
None => request,
};
let request = match request.strip_prefix("download:") {
Some(postfix) => postfix,
None => request,
};
request
}

View File

@ -5,7 +5,7 @@ use widget::Widget;
use crate::app::browser::{window::tab::item::Action as TabAction, Action as BrowserAction}; use crate::app::browser::{window::tab::item::Action as TabAction, Action as BrowserAction};
use gtk::{ use gtk::{
glib::{Uri, UriFlags}, glib::{GString, Uri, UriFlags},
prelude::EditableExt, prelude::EditableExt,
}; };
use sqlite::Transaction; use sqlite::Transaction;
@ -96,6 +96,20 @@ impl Request {
_ => None, _ => None,
} }
} }
pub fn strip_prefix(&self) -> GString {
let mut text = self.widget.entry.text();
if let Some(postfix) = text.strip_prefix("source:") {
text = postfix.into()
};
if let Some(postfix) = text.strip_prefix("download:") {
text = postfix.into()
};
text
}
} }
// Tools // Tools