From aa65f7c58c05511bdb6969f2c8a04759cd4619ca Mon Sep 17 00:00:00 2001 From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)> Date: Tue, 10 Nov 2009 11:03:17 -0500 Subject: [PATCH] [#2383] Separate network interface and published address in account config --- .../src/config/accountconfigdialog.c | 80 ++++++++++++------- 1 file changed, 50 insertions(+), 30 deletions(-) diff --git a/sflphone-client-gnome/src/config/accountconfigdialog.c b/sflphone-client-gnome/src/config/accountconfigdialog.c index 5ca3abb70b..c5077214cc 100644 --- a/sflphone-client-gnome/src/config/accountconfigdialog.c +++ b/sflphone-client-gnome/src/config/accountconfigdialog.c @@ -67,9 +67,11 @@ GtkWidget * useSipTlsCheckBox; GtkWidget * publishedAddressEntry; GtkWidget * localAddressCombo; -GtkWidget * useStunRadioButton; +GtkWidget * useStunCheckBox; GtkWidget * sameAsLocalRadioButton; GtkWidget * publishedAddrRadioButton; +GtkWidget * sameAsLocalLabel; +GtkWidget * publishedAddrLabel; GtkWidget * publishedPortSpinBox; GtkWidget * localPortSpinBox; GtkWidget * publishedAddressLabel; @@ -599,9 +601,14 @@ static use_stun_cb(GtkWidget * widget, gpointer data UNUSED) DEBUG("Showing stun options"); gtk_widget_show(stunServerLabel); gtk_widget_show(stunServerEntry); + gtk_widget_set_sensitive(sameAsLocalRadioButton, FALSE); + gtk_widget_set_sensitive(publishedAddrRadioButton, FALSE); } else { gtk_widget_hide(stunServerLabel); gtk_widget_hide(stunServerEntry); + gtk_widget_set_sensitive(sameAsLocalRadioButton, TRUE); + gtk_widget_set_sensitive(publishedAddrRadioButton, TRUE); + // sameAsLocalLabel } } @@ -693,7 +700,7 @@ GtkWidget * create_advanced_tab(account_t **a) gtk_widget_set_sensitive( GTK_WIDGET( entryResolveNameOnlyOnce ) , TRUE ); - gnome_main_section_new_with_table (_("Network"), &frame, &table, 2, 3); + gnome_main_section_new_with_table (_("Network Interface"), &frame, &table, 2, 2); gtk_box_pack_start(GTK_BOX(ret), frame, FALSE, FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER(table), 10); gtk_table_set_row_spacings( GTK_TABLE(table), 5); @@ -753,56 +760,62 @@ GtkWidget * create_advanced_tab(account_t **a) gtk_table_attach_defaults(GTK_TABLE(table), localPortSpinBox, 1, 2, 1, 2); - label = gtk_label_new_with_mnemonic (_("Set published address and port:")); - gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 2, 2, 3); - gtk_misc_set_alignment(GTK_MISC (label), 0, 0.5); - useStunRadioButton = gtk_radio_button_new_with_mnemonic(NULL,_("Using STUN ")); - gtk_table_attach_defaults(GTK_TABLE(table), useStunRadioButton, 0, 2, 3, 4); - gtk_widget_set_sensitive (GTK_WIDGET(useStunRadioButton), + gnome_main_section_new_with_table (_("Published address"), &frame, &table, 2, 3); + gtk_box_pack_start(GTK_BOX(ret), frame, FALSE, FALSE, 0); + gtk_container_set_border_width (GTK_CONTAINER(table), 10); + gtk_table_set_row_spacings( GTK_TABLE(table), 5); + + + useStunCheckBox = gtk_check_button_new_with_mnemonic(_("Using STUN")); + gtk_table_attach_defaults(GTK_TABLE(table), useStunCheckBox, 0, 1, 0, 1); + gtk_widget_set_sensitive (GTK_WIDGET(useStunCheckBox), g_strcasecmp(use_tls,"true") == 0 ? FALSE: TRUE); + + stunServerLabel = gtk_label_new_with_mnemonic (_("STUN server URL")); + gtk_table_attach_defaults(GTK_TABLE(table), stunServerLabel, 0, 1, 1, 2); + gtk_misc_set_alignment(GTK_MISC(stunServerLabel), 0, 0.5); + stunServerEntry = gtk_entry_new(); + gtk_label_set_mnemonic_widget(GTK_LABEL(stunServerLabel), stunServerEntry); + gtk_entry_set_text(GTK_ENTRY(stunServerEntry), stun_server); + gtk_table_attach_defaults(GTK_TABLE(table), stunServerEntry, 1, 2, 1, 2); + + // label = gtk_label_new_with_mnemonic (_("Set published address and port:")); + // gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 2, 2, 3); + // gtk_misc_set_alignment(GTK_MISC (label), 0, 0.5); - sameAsLocalRadioButton = gtk_radio_button_new_with_mnemonic_from_widget(GTK_RADIO_BUTTON(useStunRadioButton), _("Same as local parameters")); - gtk_table_attach_defaults(GTK_TABLE(table), sameAsLocalRadioButton, 0, 2, 4, 5); + sameAsLocalRadioButton = gtk_radio_button_new_with_mnemonic_from_widget(NULL, _("Same as local parameters")); + gtk_table_attach_defaults(GTK_TABLE(table), sameAsLocalRadioButton, 0, 2, 3, 4); - publishedAddrRadioButton = gtk_radio_button_new_with_mnemonic_from_widget(GTK_RADIO_BUTTON(useStunRadioButton), _("Manually")); - gtk_table_attach_defaults(GTK_TABLE(table), publishedAddrRadioButton, 0, 2, 5, 6); + publishedAddrRadioButton = gtk_radio_button_new_with_mnemonic_from_widget(GTK_RADIO_BUTTON(sameAsLocalRadioButton), _("Set published address and port:")); + gtk_table_attach_defaults(GTK_TABLE(table), publishedAddrRadioButton, 0, 2, 4, 5); gtk_widget_show_all(ret); publishedAddressLabel = gtk_label_new_with_mnemonic (_("Published address")); - gtk_table_attach_defaults( GTK_TABLE(table), publishedAddressLabel, 0, 1, 6, 7); + gtk_table_attach_defaults( GTK_TABLE(table), publishedAddressLabel, 0, 1, 5, 6); gtk_misc_set_alignment(GTK_MISC (publishedAddressLabel), 0, 0.5); publishedAddressEntry = gtk_entry_new(); gtk_label_set_mnemonic_widget (GTK_LABEL (publishedAddressLabel), publishedAddressEntry); gtk_entry_set_text(GTK_ENTRY(publishedAddressEntry), published_address); - gtk_table_attach_defaults( GTK_TABLE(table), publishedAddressEntry, 1, 2, 6, 7); + gtk_table_attach_defaults( GTK_TABLE(table), publishedAddressEntry, 1, 2, 5, 6); publishedPortLabel = gtk_label_new_with_mnemonic(_("Published port")); - gtk_table_attach_defaults(GTK_TABLE(table), publishedPortLabel, 0, 1, 7, 8); + gtk_table_attach_defaults(GTK_TABLE(table), publishedPortLabel, 0, 1, 6, 7); gtk_misc_set_alignment(GTK_MISC(publishedPortLabel), 0, 0.5); publishedPortSpinBox = gtk_spin_button_new_with_range(1, 65535, 1); gtk_label_set_mnemonic_widget(GTK_LABEL (publishedPortLabel), publishedPortSpinBox); gtk_spin_button_set_value(GTK_SPIN_BUTTON(publishedPortSpinBox), g_ascii_strtod(published_port, NULL)); - gtk_table_attach_defaults(GTK_TABLE(table), publishedPortSpinBox, 1, 2, 7, 8); - - - stunServerLabel = gtk_label_new_with_mnemonic (_("STUN server URL")); - gtk_table_attach_defaults(GTK_TABLE(table), stunServerLabel, 0, 1, 8, 9); - gtk_misc_set_alignment(GTK_MISC(stunServerLabel), 0, 0.5); - stunServerEntry = gtk_entry_new(); - gtk_label_set_mnemonic_widget(GTK_LABEL(stunServerLabel), stunServerEntry); - gtk_entry_set_text(GTK_ENTRY(stunServerEntry), stun_server); - gtk_table_attach_defaults(GTK_TABLE(table), stunServerEntry, 1, 2, 8, 9); + gtk_table_attach_defaults(GTK_TABLE(table), publishedPortSpinBox, 1, 2, 6, 7); - use_stun_cb (GTK_WIDGET (useStunRadioButton), NULL); + use_stun_cb (GTK_WIDGET (useStunCheckBox), NULL); // This will trigger a signal, and the above two // widgets need to be instanciated before that. - g_signal_connect(useStunRadioButton, "toggled", G_CALLBACK(use_stun_cb), useStunRadioButton); + g_signal_connect(useStunCheckBox, "toggled", G_CALLBACK(use_stun_cb), useStunCheckBox); g_signal_connect(sameAsLocalRadioButton, "toggled", G_CALLBACK(same_as_local_cb), sameAsLocalRadioButton); g_signal_connect(publishedAddrRadioButton, "toggled", G_CALLBACK(set_published_addr_manually_cb), publishedAddrRadioButton); - + /* if (g_strcasecmp(stun_enable,"true") == 0) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(useStunRadioButton), TRUE); } else if ((g_strcasecmp(published_address, local_address) == 0) @@ -811,7 +824,14 @@ GtkWidget * create_advanced_tab(account_t **a) } else { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(publishedAddrRadioButton), TRUE); } - + */ + + if ((g_strcasecmp(published_address, local_address) == 0) + && (g_strcasecmp(published_port, local_port) == 0)) { + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(sameAsLocalRadioButton), TRUE); + } else { + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(publishedAddrRadioButton), TRUE); + } return ret; } @@ -955,7 +975,7 @@ show_account_window (account_t * a) if (strcmp(proto, "SIP") == 0) { g_hash_table_replace(currentAccount->properties, g_strdup(ACCOUNT_SIP_STUN_ENABLED), - g_strdup(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(useStunRadioButton)) ? "true":"false")); + g_strdup(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(useStunCheckBox)) ? "true":"false")); g_hash_table_replace(currentAccount->properties, g_strdup(ACCOUNT_SIP_STUN_SERVER), g_strdup(gtk_entry_get_text(GTK_ENTRY(stunServerEntry)))); -- GitLab