reload page on identity apply

This commit is contained in:
yggverse 2024-11-20 11:51:56 +02:00
parent 5128324f8e
commit 0091175d2a
3 changed files with 13 additions and 10 deletions

View File

@ -51,7 +51,7 @@ impl Item {
let page = Rc::new(Page::new(
id.clone(),
profile.clone(),
(actions.0, actions.1, action.clone()),
(actions.0, actions.1.clone(), action.clone()),
));
let widget = Rc::new(Widget::new(
@ -86,7 +86,8 @@ impl Item {
if let Some(uri) = page.navigation().request().uri() {
// Rout by scheme
if uri.scheme().to_lowercase() == "gemini" {
return identity::new_gemini(profile.clone(), uri).present(Some(&parent));
return identity::new_gemini(profile.clone(), actions.1.clone(), uri)
.present(Some(&parent));
}
}
// Show dialog with unsupported request message

View File

@ -4,13 +4,14 @@ mod unsupported;
use gemini::Gemini;
use unsupported::Unsupported;
use crate::app::browser::window::Action;
use crate::profile::Profile;
use gtk::glib::Uri;
use std::rc::Rc;
/// Create new identity widget for Gemini protocol match given URI
pub fn new_gemini(profile: Rc<Profile>, auth_uri: Uri) -> Gemini {
Gemini::new(profile, auth_uri)
pub fn new_gemini(profile: Rc<Profile>, action: Rc<Action>, auth_uri: Uri) -> Gemini {
Gemini::new(profile, action, auth_uri)
}
/// Create new identity widget for unknown request

View File

@ -1,6 +1,7 @@
mod widget;
use widget::Widget;
use crate::app::browser::window::Action;
use crate::profile::Profile;
use gtk::{
gio::{prelude::TlsCertificateExt, TlsCertificate},
@ -18,7 +19,7 @@ impl Gemini {
// Construct
/// Create new `Self` for given Profile
pub fn new(profile: Rc<Profile>, auth_uri: Uri) -> Self {
pub fn new(profile: Rc<Profile>, action: Rc<Action>, auth_uri: Uri) -> Self {
// Init widget
let widget = Rc::new(Widget::new());
@ -86,15 +87,15 @@ impl Gemini {
};
// Activate identity for given `auth_uri`
profile
match profile
.identity
.gemini
.auth
.activate(profile_identity_gemini_id, auth_url.as_str())
.unwrap(); //@TODO handle errors
// Reload page
// @TODO
{
Ok(_) => action.reload().activate(),
Err(reason) => todo!("{:?}", reason),
}
}
});