From 86b6b28409f3cb2982553da8f047be2b1656bebf Mon Sep 17 00:00:00 2001 From: pierre-luc <pierre-luc.bacon@savoirfairelinux.com> Date: Sun, 6 Sep 2009 21:01:01 -0400 Subject: [PATCH] [#2157] Hide "security" and "advanced" tabs for IAX under account configuration dialog --- .../src/config/accountconfigdialog.c | 57 ++++++++++++------- 1 file changed, 35 insertions(+), 22 deletions(-) diff --git a/sflphone-client-gnome/src/config/accountconfigdialog.c b/sflphone-client-gnome/src/config/accountconfigdialog.c index 2fe773469b..b103db80ba 100644 --- a/sflphone-client-gnome/src/config/accountconfigdialog.c +++ b/sflphone-client-gnome/src/config/accountconfigdialog.c @@ -50,7 +50,7 @@ GtkWidget * hbox; GtkWidget * label; GtkWidget * entryID; GtkWidget * entryAlias; -GtkWidget * entryProtocol; +GtkWidget * protocolComboBox; GtkWidget * entryUsername; GtkWidget * entryHostname; GtkWidget * entryPassword; @@ -78,6 +78,9 @@ GtkWidget * stunServerLabel; GtkWidget * stunServerEntry; GtkWidget * displayNameEntry; + +GtkWidget * security_tab; +GtkWidget * advanced_tab; // Credentials enum { @@ -88,11 +91,19 @@ enum { COLUMN_CREDENTIAL_COUNT }; -/* Signal to entryProtocol 'changed' */ +/* Signal to protocolComboBox 'changed' */ void -change_protocol (account_t * currentAccount UNUSED) +change_protocol_cb (account_t * currentAccount UNUSED) { - (gchar *)gtk_combo_box_get_active_text(GTK_COMBO_BOX(entryProtocol)); + gchar * protocol = gtk_combo_box_get_active_text(GTK_COMBO_BOX(protocolComboBox)); + + if (g_strcasecmp(protocol, "IAX") == 0) { + gtk_widget_hide(security_tab); + gtk_widget_hide(advanced_tab); + } else { + gtk_widget_show(security_tab); + gtk_widget_show(advanced_tab); + } } int @@ -170,29 +181,29 @@ static GtkWidget * create_basic_tab(account_t **a) label = gtk_label_new_with_mnemonic (_("_Protocol")); gtk_table_attach ( GTK_TABLE( table ), label, 0, 1, 1, 2, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); gtk_misc_set_alignment(GTK_MISC (label), 0, 0.5); - entryProtocol = gtk_combo_box_new_text(); - gtk_label_set_mnemonic_widget (GTK_LABEL (label), entryProtocol); - gtk_combo_box_append_text(GTK_COMBO_BOX(entryProtocol), "SIP"); - if( is_iax_enabled() ) gtk_combo_box_append_text(GTK_COMBO_BOX(entryProtocol), "IAX"); + protocolComboBox = gtk_combo_box_new_text(); + gtk_label_set_mnemonic_widget (GTK_LABEL (label), protocolComboBox); + gtk_combo_box_append_text(GTK_COMBO_BOX(protocolComboBox), "SIP"); + if( is_iax_enabled() ) gtk_combo_box_append_text(GTK_COMBO_BOX(protocolComboBox), "IAX"); if(strcmp(curAccountType, "SIP") == 0) { - gtk_combo_box_set_active(GTK_COMBO_BOX(entryProtocol),0); + gtk_combo_box_set_active(GTK_COMBO_BOX(protocolComboBox),0); } else if(strcmp(curAccountType, "IAX") == 0) { - gtk_combo_box_set_active(GTK_COMBO_BOX(entryProtocol),1); + gtk_combo_box_set_active(GTK_COMBO_BOX(protocolComboBox),1); } else { /* Should never come here, add debug message. */ - gtk_combo_box_append_text(GTK_COMBO_BOX(entryProtocol), _("Unknown")); - gtk_combo_box_set_active(GTK_COMBO_BOX(entryProtocol),2); + gtk_combo_box_append_text(GTK_COMBO_BOX(protocolComboBox), _("Unknown")); + gtk_combo_box_set_active(GTK_COMBO_BOX(protocolComboBox),2); } - gtk_table_attach ( GTK_TABLE( table ), entryProtocol, 1, 2, 1, 2, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); + gtk_table_attach ( GTK_TABLE( table ), protocolComboBox, 1, 2, 1, 2, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); /* Link signal 'changed' */ - g_signal_connect (G_OBJECT (GTK_COMBO_BOX(entryProtocol)), "changed", - G_CALLBACK (change_protocol), + g_signal_connect (G_OBJECT (GTK_COMBO_BOX(protocolComboBox)), "changed", + G_CALLBACK (change_protocol_cb), currentAccount); label = gtk_label_new_with_mnemonic (_("_Host name")); @@ -890,22 +901,24 @@ show_account_window (account_t * a) gtk_notebook_page_num(GTK_NOTEBOOK(notebook), tab); /* Advanced */ - tab = create_advanced_tab(¤tAccount); - gtk_notebook_append_page(GTK_NOTEBOOK(notebook), tab, gtk_label_new(_("Advanced"))); - gtk_notebook_page_num(GTK_NOTEBOOK(notebook), tab); + advanced_tab = create_advanced_tab(¤tAccount); + gtk_notebook_append_page(GTK_NOTEBOOK(notebook), advanced_tab, gtk_label_new(_("Advanced"))); + gtk_notebook_page_num(GTK_NOTEBOOK(notebook), advanced_tab); /* Security */ - tab = create_security_tab(¤tAccount); - gtk_notebook_append_page(GTK_NOTEBOOK(notebook), tab, gtk_label_new(_("Security"))); - gtk_notebook_page_num(GTK_NOTEBOOK(notebook), tab); + security_tab = create_security_tab(¤tAccount); + gtk_notebook_append_page(GTK_NOTEBOOK(notebook), security_tab, gtk_label_new(_("Security"))); + gtk_notebook_page_num(GTK_NOTEBOOK(notebook),security_tab); gtk_notebook_set_current_page( GTK_NOTEBOOK( notebook) , 0); + g_signal_emit_by_name(protocolComboBox, "changed", NULL); + response = gtk_dialog_run (GTK_DIALOG (dialog)); if(response == GTK_RESPONSE_ACCEPT) { - gchar* proto = (gchar *)gtk_combo_box_get_active_text(GTK_COMBO_BOX(entryProtocol)); + gchar* proto = (gchar *)gtk_combo_box_get_active_text(GTK_COMBO_BOX(protocolComboBox)); g_hash_table_replace(currentAccount->properties, g_strdup(ACCOUNT_RESOLVE_ONCE), -- GitLab