info-overview: Set "Rename" button insensitive if no changes are made

Fixes #879
This commit is contained in:
Felipe Borges 2020-02-20 15:24:52 +01:00
parent 6537c8192a
commit 20566947ee
2 changed files with 15 additions and 0 deletions

View file

@ -58,6 +58,7 @@ struct _CcInfoOverviewPanel
CcPanel parent_instance;
GtkEntry *device_name_entry;
GtkWidget *rename_button;
CcListRow *disk_row;
CcListRow *gnome_version_row;
CcListRow *graphics_row;
@ -743,6 +744,17 @@ open_software_update (CcInfoOverviewPanel *self)
g_warning ("Failed to spawn %s: %s", argv[0], error->message);
}
static void
on_device_name_entry_changed (CcInfoOverviewPanel *self)
{
const gchar *current_hostname, *new_hostname;
current_hostname = gtk_entry_get_text (GTK_ENTRY (self->hostname_entry));
new_hostname = gtk_entry_get_text (GTK_ENTRY (self->device_name_entry));
gtk_widget_set_sensitive (self->rename_button,
g_strcmp0 (current_hostname, new_hostname) != 0);
}
static void
open_hostname_edit_dialog (CcInfoOverviewPanel *self)
{
@ -807,11 +819,13 @@ cc_info_overview_panel_class_init (CcInfoOverviewPanelClass *klass)
gtk_widget_class_bind_template_child (widget_class, CcInfoOverviewPanel, os_name_row);
gtk_widget_class_bind_template_child (widget_class, CcInfoOverviewPanel, os_type_row);
gtk_widget_class_bind_template_child (widget_class, CcInfoOverviewPanel, processor_row);
gtk_widget_class_bind_template_child (widget_class, CcInfoOverviewPanel, rename_button);
gtk_widget_class_bind_template_child (widget_class, CcInfoOverviewPanel, software_updates_row);
gtk_widget_class_bind_template_child (widget_class, CcInfoOverviewPanel, virtualization_row);
gtk_widget_class_bind_template_child (widget_class, CcInfoOverviewPanel, windowing_system_row);
gtk_widget_class_bind_template_callback (widget_class, cc_info_panel_row_activated_cb);
gtk_widget_class_bind_template_callback (widget_class, on_device_name_entry_changed);
g_type_ensure (CC_TYPE_LIST_ROW);
g_type_ensure (CC_TYPE_HOSTNAME_ENTRY);

View file

@ -212,6 +212,7 @@
<child>
<object class="GtkEntry" id="device_name_entry">
<property name="visible">True</property>
<signal name="changed" handler="on_device_name_entry_changed" swapped="yes"/>
</object>
</child>
</object>