diff --git a/sflphone-client-gnome/src/config/accountconfigdialog.c b/sflphone-client-gnome/src/config/accountconfigdialog.c index 385102184d1b49cee16577caa44f9dd62bd13293..b931e28873cbad832d9843810b9bbb602b6d42a1 100644 --- a/sflphone-client-gnome/src/config/accountconfigdialog.c +++ b/sflphone-client-gnome/src/config/accountconfigdialog.c @@ -119,15 +119,14 @@ void change_protocol_cb (account_t *currentAccount UNUSED) { // Only if tabs are not NULL if(security_tab && advanced_tab) { - DEBUG("------------------------------------"); if (g_strcasecmp (protocol, "IAX") == 0) { gtk_widget_hide (GTK_WIDGET(security_tab)); gtk_widget_hide (GTK_WIDGET(advanced_tab)); - } else { + } + else { gtk_widget_show (GTK_WIDGET(security_tab)); gtk_widget_show (GTK_WIDGET(advanced_tab)); } - DEBUG("------------------------------------"); } } @@ -1277,29 +1276,21 @@ void show_account_window (account_t * a) { gtk_notebook_append_page(GTK_NOTEBOOK(notebook), tab, gtk_label_new(_("Basic"))); gtk_notebook_page_num(GTK_NOTEBOOK(notebook), tab); - // TODO: Fix this GTK critical (when opening account config dialog twice) - // DEBUG("---------------------------"); - g_signal_emit_by_name (GTK_WIDGET(protocolComboBox), "changed", NULL); - // DEBUG("---------------------------"); + } /* Codecs */ codecs_tab = create_codecs_configuration (¤tAccount); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), codecs_tab, gtk_label_new(_("Codecs"))); - gtk_notebook_page_num (GTK_NOTEBOOK (notebook), codecs_tab); - - + gtk_notebook_page_num (GTK_NOTEBOOK (notebook), codecs_tab); - // Get protocol - gchar *proto = "SIP"; - proto = (gchar *)gtk_combo_box_get_active_text(GTK_COMBO_BOX(protocolComboBox)); + // Get current protocol for this account protocol + gchar *currentProtocol = "SIP"; + currentProtocol = (gchar *)gtk_combo_box_get_active_text(GTK_COMBO_BOX(protocolComboBox)); // Do not need advanced or security one for the IP2IP account if (g_strcasecmp (currentAccount->accountID, IP2IP) != 0) { - // Do not need advanced or Security tab for IAX either - if (strcmp(proto, "SIP") == 0) { - /* Advanced */ advanced_tab = create_advanced_tab(¤tAccount); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), advanced_tab, gtk_label_new(_("Advanced"))); @@ -1309,8 +1300,7 @@ void show_account_window (account_t * a) { 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); - - } + } else { @@ -1320,6 +1310,9 @@ void show_account_window (account_t * a) { gtk_notebook_page_num (GTK_NOTEBOOK (notebook), ip_tab); } + // Emit signal to hide advanced and security tabs in case of IAX + g_signal_emit_by_name (GTK_WIDGET(protocolComboBox), "changed", NULL); + gtk_notebook_set_current_page (GTK_NOTEBOOK (notebook) , 0); /**************/ @@ -1328,7 +1321,7 @@ void show_account_window (account_t * a) { response = gtk_dialog_run (GTK_DIALOG (dialog)); // Update protocol in case it changed - proto = (gchar *)gtk_combo_box_get_active_text(GTK_COMBO_BOX(protocolComboBox)); + gchar *proto = (gchar *)gtk_combo_box_get_active_text(GTK_COMBO_BOX(protocolComboBox)); // If cancel button is pressed if(response == GTK_RESPONSE_CANCEL) { @@ -1451,6 +1444,9 @@ void show_account_window (account_t * a) { g_strdup(LOCAL_PORT), g_strdup((gchar *)gtk_entry_get_text(GTK_ENTRY(localPortSpinBox)))); + } + + if (strcmp(currentProtocol, "SIP") == 0) { /* Set new credentials if any */ DEBUG("Config: Setting credentials");