From 57405b83d24027ce5f387093fc5c1b9970582e5e Mon Sep 17 00:00:00 2001 From: Nitin Joshi Date: Mon, 24 Oct 2022 02:22:16 +0000 Subject: [PATCH] info-overview: Add "Firmware Version" row Users often need information like Firmware version, serial number. Hence, it's better to provide it by default in GNOME. This changes is to display Firmware version only in "About" menu. Reference: #1543 --- panels/info-overview/cc-info-overview-panel.c | 19 +++++++++++++++++++ .../info-overview/cc-info-overview-panel.ui | 9 +++++++++ 2 files changed, 28 insertions(+) diff --git a/panels/info-overview/cc-info-overview-panel.c b/panels/info-overview/cc-info-overview-panel.c index 8444d730e..9b46eac0e 100644 --- a/panels/info-overview/cc-info-overview-panel.c +++ b/panels/info-overview/cc-info-overview-panel.c @@ -63,6 +63,7 @@ struct _CcInfoOverviewPanel CcListRow *gnome_version_row; CcListRow *graphics_row; CcListRow *hardware_model_row; + CcListRow *firmware_version_row; GtkDialog *hostname_editor; CcHostnameEntry *hostname_entry; CcListRow *hostname_row; @@ -438,6 +439,18 @@ get_hardware_model_string () return g_strdup_printf ("%s %s", vendor_string, model_string); } +static char * +get_firmware_version_string () +{ + g_autofree char *firmware_version_string = NULL; + + firmware_version_string = get_hostnamed_property ("FirmwareVersion"); + if (!firmware_version_string || g_strcmp0 (firmware_version_string, "") == 0) + return NULL; + + return g_steal_pointer (&firmware_version_string); +} + static char * get_kernel_version_string () { @@ -713,6 +726,7 @@ info_overview_panel_setup_overview (CcInfoOverviewPanel *self) g_autofree char *os_name_text = NULL; g_autofree char *os_build_text = NULL; g_autofree char *hardware_model_text = NULL; + g_autofree char *firmware_version_text = NULL; g_autofree char *kernel_version_text = NULL; g_autofree gchar *graphics_hardware_string = NULL; @@ -730,6 +744,10 @@ info_overview_panel_setup_overview (CcInfoOverviewPanel *self) cc_list_row_set_secondary_label (self->hardware_model_row, hardware_model_text); gtk_widget_set_visible (GTK_WIDGET (self->hardware_model_row), hardware_model_text != NULL); + firmware_version_text = get_firmware_version_string (); + cc_list_row_set_secondary_label (self->firmware_version_row, firmware_version_text); + gtk_widget_set_visible (GTK_WIDGET (self->firmware_version_row), firmware_version_text != NULL); + ram_size = get_ram_size_dmi (); if (ram_size == 0) ram_size = get_ram_size_libgtop (); @@ -965,6 +983,7 @@ cc_info_overview_panel_class_init (CcInfoOverviewPanelClass *klass) gtk_widget_class_bind_template_child (widget_class, CcInfoOverviewPanel, gnome_version_row); gtk_widget_class_bind_template_child (widget_class, CcInfoOverviewPanel, graphics_row); gtk_widget_class_bind_template_child (widget_class, CcInfoOverviewPanel, hardware_model_row); + gtk_widget_class_bind_template_child (widget_class, CcInfoOverviewPanel, firmware_version_row); gtk_widget_class_bind_template_child (widget_class, CcInfoOverviewPanel, hostname_editor); gtk_widget_class_bind_template_child (widget_class, CcInfoOverviewPanel, hostname_entry); gtk_widget_class_bind_template_child (widget_class, CcInfoOverviewPanel, hostname_row); diff --git a/panels/info-overview/cc-info-overview-panel.ui b/panels/info-overview/cc-info-overview-panel.ui index 5465e5ad0..3c2fb993d 100644 --- a/panels/info-overview/cc-info-overview-panel.ui +++ b/panels/info-overview/cc-info-overview-panel.ui @@ -52,6 +52,15 @@ + + + + False + False + Firmware Version + + +