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
This commit is contained in:
Nitin Joshi 2022-10-24 02:22:16 +00:00 committed by Felipe Borges
parent bac75b1bfd
commit 57405b83d2
2 changed files with 28 additions and 0 deletions

View file

@ -63,6 +63,7 @@ struct _CcInfoOverviewPanel
CcListRow *gnome_version_row; CcListRow *gnome_version_row;
CcListRow *graphics_row; CcListRow *graphics_row;
CcListRow *hardware_model_row; CcListRow *hardware_model_row;
CcListRow *firmware_version_row;
GtkDialog *hostname_editor; GtkDialog *hostname_editor;
CcHostnameEntry *hostname_entry; CcHostnameEntry *hostname_entry;
CcListRow *hostname_row; CcListRow *hostname_row;
@ -438,6 +439,18 @@ get_hardware_model_string ()
return g_strdup_printf ("%s %s", vendor_string, 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 * static char *
get_kernel_version_string () 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_name_text = NULL;
g_autofree char *os_build_text = NULL; g_autofree char *os_build_text = NULL;
g_autofree char *hardware_model_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 char *kernel_version_text = NULL;
g_autofree gchar *graphics_hardware_string = 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); 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); 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 (); ram_size = get_ram_size_dmi ();
if (ram_size == 0) if (ram_size == 0)
ram_size = get_ram_size_libgtop (); 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, gnome_version_row);
gtk_widget_class_bind_template_child (widget_class, CcInfoOverviewPanel, graphics_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, 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_editor);
gtk_widget_class_bind_template_child (widget_class, CcInfoOverviewPanel, hostname_entry); gtk_widget_class_bind_template_child (widget_class, CcInfoOverviewPanel, hostname_entry);
gtk_widget_class_bind_template_child (widget_class, CcInfoOverviewPanel, hostname_row); gtk_widget_class_bind_template_child (widget_class, CcInfoOverviewPanel, hostname_row);

View file

@ -52,6 +52,15 @@
</object> </object>
</child> </child>
<!-- Firmware Version -->
<child>
<object class="CcListRow" id="firmware_version_row">
<property name="visible">False</property>
<property name="activatable">False</property>
<property name="title" translatable="yes">Firmware Version</property>
</object>
</child>
<!-- Memory --> <!-- Memory -->
<child> <child>
<object class="CcListRow" id="memory_row"> <object class="CcListRow" id="memory_row">