Skip to content

Commit

Permalink
gtk: Show firmware release date
Browse files Browse the repository at this point in the history
Signed-off-by: Tim Crawford <tcrawford@system76.com>
  • Loading branch information
crawfxrd authored and mmstick committed Nov 11, 2022
1 parent 860b768 commit 3ded128
Show file tree
Hide file tree
Showing 5 changed files with 17 additions and 9 deletions.
15 changes: 10 additions & 5 deletions gtk/src/changelog.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,19 +14,18 @@ pub fn generate_widget_none() -> gtk::Box {
.build()
}

pub fn generate_widget<I, S, X>(changelog: I) -> gtk::Box
pub fn generate_widget<I, S>(changelog: I) -> gtk::Box
where
S: AsRef<str>,
X: AsRef<str>,
I: Iterator<Item = (S, X)>,
I: Iterator<Item = (S, S, S)>,
{
let changelog_entries = cascade! {
gtk::Box::new(gtk::Orientation::Vertical, 12);
..show_all();
};

let mut initiated = false;
changelog.for_each(|(version, entry)| {
changelog.for_each(|(version, date, entry)| {
let markdown = if entry.as_ref().is_empty() {
fl!("changelog-unavailable")
} else {
Expand All @@ -39,8 +38,14 @@ where

const PADDING: i32 = 48;

let version_label = if !date.as_ref().is_empty() {
format!("<b>{}</b> ({})", version.as_ref(), date.as_ref())
} else {
format!("<b>{}</b>", version.as_ref())
};

let version = gtk::Label::builder()
.label(&*format!("<b>{}</b>", version.as_ref()))
.label(&version_label)
.use_markup(true)
.xalign(0.0)
.max_width_chars(40)
Expand Down
3 changes: 2 additions & 1 deletion gtk/src/dialogs/fwupd.rs
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,8 @@ impl<'a> FwupdDialog<'a> {
.releases
.iter()
.rev()
.map(|release| (release.version.as_ref(), release.description.as_ref()));
// TODO: Add release date
.map(|release| (release.version.as_ref(), "", release.description.as_ref()));

let response = if self.needs_reboot {
let dialog = FirmwareUpdateDialog::new(self.latest, log_entries, self.has_battery);
Expand Down
2 changes: 1 addition & 1 deletion gtk/src/dialogs/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ use gtk::prelude::*;
pub struct FirmwareUpdateDialog(gtk::Dialog);

impl FirmwareUpdateDialog {
pub fn new<S: AsRef<str>, I: Iterator<Item = (S, S)>>(
pub fn new<S: AsRef<str>, I: Iterator<Item = (S, S, S)>>(
version: &str,
changelog: I,
has_battery: bool,
Expand Down
2 changes: 1 addition & 1 deletion gtk/src/dialogs/system76.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ pub struct System76Dialog<'a> {
impl<'a> System76Dialog<'a> {
pub fn run(self) {
let log_entries = self.changelog.versions.iter().map(|version| {
(version.bios.as_ref(), version.description.as_ref())
(version.bios.as_ref(), version.date.as_ref(), version.description.as_ref())
});

let dialog = FirmwareUpdateDialog::new(self.latest, log_entries, self.has_battery);
Expand Down
4 changes: 3 additions & 1 deletion gtk/src/state.rs
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,8 @@ impl State {
let log_entries = releases
.iter()
.rev()
.map(|release| (release.version.as_ref(), release.description.as_ref()));
// TODO: Add release date
.map(|release| (release.version.as_ref(), "", release.description.as_ref()));

crate::changelog::generate_widget(log_entries).upcast::<gtk::Container>()
});
Expand All @@ -189,6 +190,7 @@ impl State {
let log_entries = changelog.versions.iter().map(|version| {
(
version.bios.as_ref(),
version.date.as_ref(),
version.description.as_ref(),
)
});
Expand Down

0 comments on commit 3ded128

Please sign in to comment.