connect bookmark action

This commit is contained in:
yggverse 2024-11-14 08:51:14 +02:00
parent 7b9bd95c09
commit d0a7c3079d
12 changed files with 76 additions and 64 deletions

View file

@ -6,26 +6,23 @@ use crate::app::browser::window::action::Action as WindowAction;
use std::rc::Rc;
pub struct Bookmark {
window_action: Rc<WindowAction>,
action: Rc<WindowAction>,
widget: Rc<Widget>,
}
impl Bookmark {
// Construct
pub fn new(window_action: Rc<WindowAction>) -> Self {
pub fn new(action: Rc<WindowAction>) -> Self {
Self {
widget: Rc::new(Widget::new(window_action.clone())),
window_action,
widget: Rc::new(Widget::new(action.clone())),
action,
}
}
// Actions
pub fn update(&self, is_enabled: bool) {
// Update actions
self.window_action
.bookmark()
.gobject()
.set_enabled(is_enabled);
self.action.bookmark().gobject().set_enabled(is_enabled);
// Update child components
self.widget.update(is_enabled);

View file

@ -13,7 +13,7 @@ pub struct Widget {
impl Widget {
// Constructors
pub fn new(window_action: Rc<WindowAction>) -> Self {
pub fn new(action: Rc<WindowAction>) -> Self {
// Init gobject
let gobject = Button::builder()
.icon_name("starred-symbolic")
@ -22,7 +22,7 @@ impl Widget {
.build();
// Init events
gobject.connect_clicked(move |_| window_action.home().activate());
gobject.connect_clicked(move |_| action.home().activate());
// Return activated `Self`
Self { gobject }

View file

@ -7,18 +7,18 @@ use gtk::glib::{gformat, GString, Uri};
use std::{cell::RefCell, rc::Rc};
pub struct Home {
window_action: Rc<WindowAction>,
action: Rc<WindowAction>,
uri: RefCell<Option<Uri>>,
widget: Rc<Widget>,
}
impl Home {
// Construct
pub fn new(window_action: Rc<WindowAction>) -> Self {
pub fn new(action: Rc<WindowAction>) -> Self {
Self {
window_action: window_action.clone(),
action: action.clone(),
uri: RefCell::new(None),
widget: Rc::new(Widget::new(window_action)),
widget: Rc::new(Widget::new(action)),
}
}
@ -34,7 +34,7 @@ impl Home {
self.uri.replace(uri);
// Update action status
self.window_action.home().gobject().set_enabled(status);
self.action.home().gobject().set_enabled(status);
// Update child components
self.widget.update(status);

View file

@ -11,7 +11,7 @@ pub struct Widget {
impl Widget {
// Construct
pub fn new(window_action: Rc<WindowAction>) -> Self {
pub fn new(action: Rc<WindowAction>) -> Self {
// Init gobject
let gobject = Button::builder()
.icon_name("go-home-symbolic")
@ -20,7 +20,7 @@ impl Widget {
.build();
// Init events
gobject.connect_clicked(move |_| window_action.home().activate());
gobject.connect_clicked(move |_| action.home().activate());
// Return activated `Self`
Self { gobject }

View file

@ -6,16 +6,16 @@ use crate::app::browser::window::action::Action as WindowAction;
use std::rc::Rc;
pub struct Reload {
window_action: Rc<WindowAction>,
action: Rc<WindowAction>,
widget: Rc<Widget>,
}
impl Reload {
// Construct
pub fn new(window_action: Rc<WindowAction>) -> Self {
pub fn new(action: Rc<WindowAction>) -> Self {
Self {
window_action: window_action.clone(),
widget: Rc::new(Widget::new(window_action)),
action: action.clone(),
widget: Rc::new(Widget::new(action)),
}
}
@ -23,10 +23,7 @@ impl Reload {
pub fn update(&self, is_enabled: bool) {
// Update actions
self.window_action
.reload()
.gobject()
.set_enabled(is_enabled);
self.action.reload().gobject().set_enabled(is_enabled);
// Update child components
self.widget.update(is_enabled);

View file

@ -11,7 +11,7 @@ pub struct Widget {
impl Widget {
// Construct
pub fn new(window_action: Rc<WindowAction>) -> Self {
pub fn new(action: Rc<WindowAction>) -> Self {
// Init gobject
let gobject = Button::builder()
.icon_name("view-refresh-symbolic")
@ -20,7 +20,7 @@ impl Widget {
.build();
// Init events
gobject.connect_clicked(move |_| window_action.reload().activate());
gobject.connect_clicked(move |_| action.reload().activate());
// Return activated `Self`
Self { gobject }