Skip to content

Commit

Permalink
delegate status info to widget implementation
Browse files Browse the repository at this point in the history
  • Loading branch information
yggverse committed Dec 12, 2024
1 parent d752fe1 commit 549c3fd
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 25 deletions.
20 changes: 6 additions & 14 deletions src/app/browser/window/tab/item/page.rs
Original file line number Diff line number Diff line change
Expand Up @@ -678,20 +678,12 @@ impl Page {
);
},
mime => {
// Define common data
let status = Status::Failure;
let title = "Oops";
let description = gformat!("Content type `{mime}` yet not supported!");

// Update widget
content
.to_status_mime()
.set_title(title)
.set_description(Some(&description));

// Update meta
meta.set_status(status)
.set_title(title);
// Init children widget
let status = content.to_status_mime(mime);

// Update page meta
meta.set_status(Status::Failure)
.set_title(status.gobject.title().as_str());

// Update window
update.activate(Some(&id));
Expand Down
4 changes: 2 additions & 2 deletions src/app/browser/window/tab/item/page/content.rs
Original file line number Diff line number Diff line change
Expand Up @@ -74,9 +74,9 @@ impl Content {
/// Set new `content::Status` component for `Self` with new `status::Mime` issue preset
///
/// * action removes previous children component from `Self`
pub fn to_status_mime(&self) -> Status {
pub fn to_status_mime(&self, mime: &str) -> Status {
self.clean();
let status = Status::new_mime();
let status = Status::new_mime(mime);
self.gobject.append(status.gobject());
status
}
Expand Down
6 changes: 3 additions & 3 deletions src/app/browser/window/tab/item/page/content/status.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ use gtk::gio::{Cancellable, File};
use std::{rc::Rc, time::Duration};

pub struct Status {
gobject: StatusPage,
pub gobject: StatusPage,
}

impl Status {
Expand Down Expand Up @@ -38,9 +38,9 @@ impl Status {
/// Create new mime issue preset
///
/// Useful as placeholder widget for mime issue handlers
pub fn new_mime() -> Self {
pub fn new_mime(mime: &str) -> Self {
Self {
gobject: mime::new_gobject(),
gobject: mime::new_gobject(mime),
}
}

Expand Down
10 changes: 4 additions & 6 deletions src/app/browser/window/tab/item/page/content/status/mime.rs
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
use adw::StatusPage;

const DEFAULT_TITLE: &str = "Oops";
const DEFAULT_ICON_NAME: &str = "dialog-question-symbolic";

/// Create new default `GObject` preset for mime issue
/// [StatusPage](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.StatusPage.html)
pub fn new_gobject() -> StatusPage {
pub fn new_gobject(mime: &str) -> StatusPage {
StatusPage::builder()
.title(DEFAULT_TITLE)
.icon_name(DEFAULT_ICON_NAME)
.title("Oops")
.description(format!("Content type `{mime}` not supported!"))
.icon_name("dialog-question-symbolic")
.build()
}

0 comments on commit 549c3fd

Please sign in to comment.