diff --git a/src/app/browser.rs b/src/app/browser.rs index 23fd1960..843d51df 100644 --- a/src/app/browser.rs +++ b/src/app/browser.rs @@ -10,6 +10,7 @@ use widget::Widget; use window::Window; use crate::Profile; +use adw::{prelude::AdwDialogExt, AboutDialog}; use gtk::{ gio::{Cancellable, File}, prelude::{GtkWindowExt, IsA}, @@ -59,7 +60,7 @@ impl Browser { // Connect events action.about.connect_activate({ let window = window.clone(); - move || About::new().present(Some(&window.g_box)) + move || AboutDialog::about().present(Some(&window.g_box)) }); action.close.connect_activate({ diff --git a/src/app/browser/about.rs b/src/app/browser/about.rs index 812c864e..015e0828 100644 --- a/src/app/browser/about.rs +++ b/src/app/browser/about.rs @@ -1,20 +1,9 @@ -use adw::{prelude::AdwDialogExt, AboutDialog}; -use gtk::{prelude::IsA, License}; - -pub struct About { - gobject: AboutDialog, -} - -impl Default for About { - fn default() -> Self { - Self::new() - } +pub trait About { + fn about() -> Self; } -impl About { - // Construct - pub fn new() -> Self { - // Collect debug info +impl About for adw::AboutDialog { + fn about() -> Self { let debug = &[ format!( "Adwaita {}.{}.{}", @@ -38,22 +27,13 @@ impl About { // @TODO ]; - // Init gobject - let gobject = AboutDialog::builder() + adw::AboutDialog::builder() .application_name(env!("CARGO_PKG_NAME")) .debug_info(debug.join("\n")) .developer_name(env!("CARGO_PKG_DESCRIPTION")) .issue_url(env!("CARGO_PKG_REPOSITORY")) - .license_type(License::MitX11) + .license_type(gtk::License::MitX11) .version(env!("CARGO_PKG_VERSION")) - .build(); - - // Return new struct - Self { gobject } - } - - // Actions - pub fn present(&self, parent: Option<&impl IsA>) { - self.gobject.present(parent); + .build() } }