summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelipe Borges <felipeborges@gnome.org>2020-03-11 11:31:21 +0100
committerFelipe Borges <felipeborges@gnome.org>2020-03-11 11:31:21 +0100
commit1fe06d89a4e27083812502968da4d42978335c21 (patch)
treeba032a6317e0f84358063759a909bb01e1a61605
parent633bb28f626185dbd502537e3d5cfffc868a5602 (diff)
downloadgnome-control-center-info-show-hardware-name.tar.gz
info-overview: Add hardware name (product_family)info-show-hardware-name
Showing the product_family helps hardware vendors debug user problems. See https://teams.fedoraproject.org/project/silverblue/us/127
-rw-r--r--panels/info-overview/cc-info-overview-panel.c21
-rw-r--r--panels/info-overview/cc-info-overview-panel.ui9
2 files changed, 30 insertions, 0 deletions
diff --git a/panels/info-overview/cc-info-overview-panel.c b/panels/info-overview/cc-info-overview-panel.c
index af04dc660..e1906ef7e 100644
--- a/panels/info-overview/cc-info-overview-panel.c
+++ b/panels/info-overview/cc-info-overview-panel.c
@@ -62,6 +62,7 @@ struct _CcInfoOverviewPanel
CcListRow *disk_row;
CcListRow *gnome_version_row;
CcListRow *graphics_row;
+ CcListRow *hardware_name_row;
GtkListBox *hardware_box;
GtkDialog *hostname_editor;
CcHostnameEntry *hostname_entry;
@@ -408,6 +409,21 @@ get_graphics_hardware_string (void)
return g_strdup (renderer);
}
+static gchar *
+get_hardware_name_string (void)
+{
+ gchar *product_family = NULL;
+ g_autoptr(GError) error = NULL;
+
+ if (!g_file_get_contents ("/sys/devices/virtual/dmi/id/product_family", &product_family, NULL, &error))
+ {
+ if (!g_error_matches (error, G_FILE_ERROR, G_FILE_ERROR_NOENT))
+ return NULL;
+ }
+
+ return g_strchomp (product_family);
+}
+
static char *
get_os_name (void)
{
@@ -683,6 +699,7 @@ info_overview_panel_setup_overview (CcInfoOverviewPanel *self)
g_autofree char *os_type_text = NULL;
g_autofree char *os_name_text = NULL;
g_autofree gchar *graphics_hardware_string = NULL;
+ g_autofree gchar *hardware_name_string = NULL;
if (load_gnome_version (&gnome_version, NULL, NULL))
cc_list_row_set_secondary_label (self->gnome_version_row, gnome_version);
@@ -708,6 +725,9 @@ info_overview_panel_setup_overview (CcInfoOverviewPanel *self)
graphics_hardware_string = get_graphics_hardware_string ();
cc_list_row_set_secondary_markup (self->graphics_row, graphics_hardware_string);
+
+ hardware_name_string = get_hardware_name_string ();
+ cc_list_row_set_secondary_markup (self->hardware_name_row, hardware_name_string);
}
static gboolean
@@ -811,6 +831,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_box);
+ gtk_widget_class_bind_template_child (widget_class, CcInfoOverviewPanel, hardware_name_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 de377bb69..7a68a5653 100644
--- a/panels/info-overview/cc-info-overview-panel.ui
+++ b/panels/info-overview/cc-info-overview-panel.ui
@@ -68,6 +68,15 @@
<class name="frame" />
</style>
+ <!-- Hardware name -->
+ <child>
+ <object class="CcListRow" id="hardware_name_row">
+ <property name="visible">True</property>
+ <property name="activatable">False</property>
+ <property name="title" translatable="yes">Hardware name</property>
+ </object>
+ </child>
+
<!-- Memory -->
<child>
<object class="CcListRow" id="memory_row">