From b966e7bdeed9c8ffaa211ce26a358740605da98b Mon Sep 17 00:00:00 2001 From: Francesco Giudici Date: Fri, 25 Nov 2016 12:58:05 +0100 Subject: c-e: show link negotiation settings in UI --- src/connection-editor/ce-page-ethernet.ui | 24 +++++++++++---------- src/connection-editor/page-ethernet.c | 35 ++++++++++++++++++------------- 2 files changed, 34 insertions(+), 25 deletions(-) diff --git a/src/connection-editor/ce-page-ethernet.ui b/src/connection-editor/ce-page-ethernet.ui index d9a0dad5..11542fc5 100644 --- a/src/connection-editor/ce-page-ethernet.ui +++ b/src/connection-editor/ce-page-ethernet.ui @@ -116,11 +116,12 @@ 0 _Speed: True + 26 ethernet_speed - 1 - 2 + 2 + 3 GTK_FILL @@ -140,8 +141,8 @@ 1 2 - 1 - 2 + 2 + 3 @@ -152,11 +153,12 @@ 0 _Duplex: True + 26 ethernet_duplex - 2 - 3 + 3 + 4 GTK_FILL @@ -176,14 +178,14 @@ 1 2 - 2 - 3 + 3 + 4 - Aut_onegotiate + Automatic link negotiation True True False @@ -192,8 +194,8 @@ 2 - 3 - 4 + 1 + 2 GTK_FILL diff --git a/src/connection-editor/page-ethernet.c b/src/connection-editor/page-ethernet.c index f0192475..ce6ded7d 100644 --- a/src/connection-editor/page-ethernet.c +++ b/src/connection-editor/page-ethernet.c @@ -114,6 +114,26 @@ stuff_changed (GtkWidget *w, gpointer user_data) ce_page_changed (CE_PAGE (user_data)); } +static void +link_special_toggled_cb (GtkWidget *widget, gpointer user_data) +{ + CEPageEthernet *self = CE_PAGE_ETHERNET (user_data); + CEPageEthernetPrivate *priv = CE_PAGE_ETHERNET_GET_PRIVATE (self); + gboolean enabled; + + enabled = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)); + + if (enabled) { + gtk_combo_box_set_active (priv->speed, SPEED_DEFAULT); + gtk_combo_box_set_active (priv->duplex, DUPLEX_DEFAULT); + } + + gtk_widget_set_sensitive (GTK_WIDGET (priv->speed), !enabled); + gtk_widget_set_sensitive (GTK_WIDGET (priv->duplex), !enabled); + + stuff_changed (NULL, self); +} + static void wol_special_toggled_cb (GtkWidget *widget, gpointer user_data) { @@ -283,10 +303,10 @@ finish_setup (CEPageEthernet *self, gpointer unused, GError *error, gpointer use populate_ui (self); + g_signal_connect (priv->autonegotiate, "toggled", G_CALLBACK (link_special_toggled_cb), self); g_signal_connect (priv->port, "changed", G_CALLBACK (stuff_changed), self); g_signal_connect (priv->speed, "changed", G_CALLBACK (stuff_changed), self); g_signal_connect (priv->duplex, "changed", G_CALLBACK (stuff_changed), self); - g_signal_connect (priv->autonegotiate, "toggled", G_CALLBACK (stuff_changed), self); g_signal_connect (priv->mtu, "value-changed", G_CALLBACK (stuff_changed), self); g_signal_connect (priv->wol_default, "toggled", G_CALLBACK (wol_special_toggled_cb), self); @@ -308,19 +328,6 @@ finish_setup (CEPageEthernet *self, gpointer unused, GError *error, gpointer use gtk_widget_hide (widget); widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ethernet_port")); gtk_widget_hide (widget); - - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ethernet_speed_label")); - gtk_widget_hide (widget); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ethernet_speed")); - gtk_widget_hide (widget); - - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ethernet_duplex_label")); - gtk_widget_hide (widget); - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ethernet_duplex")); - gtk_widget_hide (widget); - - widget = GTK_WIDGET (gtk_builder_get_object (parent->builder, "ethernet_autonegotiate")); - gtk_widget_hide (widget); } CEPage * -- cgit v1.2.1