diff --git a/gtk/src/changelog.rs b/gtk/src/changelog.rs index 587a032..92cd894 100644 --- a/gtk/src/changelog.rs +++ b/gtk/src/changelog.rs @@ -14,11 +14,10 @@ pub fn generate_widget_none() -> gtk::Box { .build() } -pub fn generate_widget(changelog: I) -> gtk::Box +pub fn generate_widget(changelog: I) -> gtk::Box where S: AsRef, - X: AsRef, - I: Iterator, + I: Iterator, { let changelog_entries = cascade! { gtk::Box::new(gtk::Orientation::Vertical, 12); @@ -26,7 +25,7 @@ where }; 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 { @@ -39,8 +38,14 @@ where const PADDING: i32 = 48; + let version_label = if !date.as_ref().is_empty() { + format!("{} ({})", version.as_ref(), date.as_ref()) + } else { + format!("{}", version.as_ref()) + }; + let version = gtk::Label::builder() - .label(&*format!("{}", version.as_ref())) + .label(&version_label) .use_markup(true) .xalign(0.0) .max_width_chars(40) diff --git a/gtk/src/dialogs/fwupd.rs b/gtk/src/dialogs/fwupd.rs index cc3fba1..df3e59c 100644 --- a/gtk/src/dialogs/fwupd.rs +++ b/gtk/src/dialogs/fwupd.rs @@ -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); diff --git a/gtk/src/dialogs/mod.rs b/gtk/src/dialogs/mod.rs index 92343ba..bb9cd04 100644 --- a/gtk/src/dialogs/mod.rs +++ b/gtk/src/dialogs/mod.rs @@ -15,7 +15,7 @@ use gtk::prelude::*; pub struct FirmwareUpdateDialog(gtk::Dialog); impl FirmwareUpdateDialog { - pub fn new, I: Iterator>( + pub fn new, I: Iterator>( version: &str, changelog: I, has_battery: bool, diff --git a/gtk/src/dialogs/system76.rs b/gtk/src/dialogs/system76.rs index a49e22a..5202db4 100644 --- a/gtk/src/dialogs/system76.rs +++ b/gtk/src/dialogs/system76.rs @@ -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); diff --git a/gtk/src/state.rs b/gtk/src/state.rs index cab23a1..5f2b377 100644 --- a/gtk/src/state.rs +++ b/gtk/src/state.rs @@ -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::() }); @@ -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(), ) });