diff --git a/sflphone-client-gnome/src/config/accountconfigdialog.c b/sflphone-client-gnome/src/config/accountconfigdialog.c index 6dcaf3bad47f8a0d6871446f241921010c37208f..295ba4aa7924c6282895ab00327eaaa440490ff2 100644 --- a/sflphone-client-gnome/src/config/accountconfigdialog.c +++ b/sflphone-client-gnome/src/config/accountconfigdialog.c @@ -54,6 +54,7 @@ GtkWidget * entryID; GtkWidget * entryAlias; GtkWidget * protocolComboBox; GtkWidget * entryUsername; +GtkWidget * entryDomainName; GtkWidget * entryHostname; GtkWidget * entryPassword; GtkWidget * entryMailbox; @@ -239,6 +240,7 @@ static GtkWidget* create_basic_tab (account_t **a) { gchar *curAccountType = "SIP"; gchar *curAlias = ""; gchar *curUsername = ""; + gchar *curDomainName = ""; gchar *curHostname = ""; gchar *curPassword = ""; /* TODO: add curProxy, and add boxes for Proxy support */ @@ -247,6 +249,8 @@ static GtkWidget* create_basic_tab (account_t **a) { currentAccount = *a; + int row = 0; + // Load from SIP/IAX/Unknown ? if(currentAccount) { @@ -258,6 +262,7 @@ static GtkWidget* create_basic_tab (account_t **a) { curHostname = g_hash_table_lookup(currentAccount->properties, ACCOUNT_HOSTNAME); curPassword = g_hash_table_lookup(currentAccount->properties, ACCOUNT_PASSWORD); curUsername = g_hash_table_lookup(currentAccount->properties, ACCOUNT_USERNAME); + curDomainName = g_hash_table_lookup(currentAccount->properties, ACCOUNT_DOMAIN); curMailbox = g_hash_table_lookup(currentAccount->properties, ACCOUNT_MAILBOX); curUseragent = g_hash_table_lookup(currentAccount->properties, ACCOUNT_USERAGENT); } @@ -266,22 +271,30 @@ static GtkWidget* create_basic_tab (account_t **a) { gnome_main_section_new (_("Account Parameters"), &frame); gtk_widget_show(frame); - table = gtk_table_new (8, 2 , FALSE/* homogeneous */); + if(strcmp(curAccountType, "SIP") == 0) { + table = gtk_table_new (9, 2, FALSE/* homogeneous */); + } + else if(strcmp(curAccountType, "IAX") == 0) { + table = gtk_table_new (8, 2, FALSE); + } + gtk_table_set_row_spacings( GTK_TABLE(table), 10); gtk_table_set_col_spacings( GTK_TABLE(table), 10); gtk_widget_show (table); gtk_container_add( GTK_CONTAINER( frame) , table ); label = gtk_label_new_with_mnemonic (_("_Alias")); - gtk_table_attach ( GTK_TABLE( table ), label, 0, 1, 0, 1, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); + gtk_table_attach ( GTK_TABLE( table ), label, 0, 1, row, row+1, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); gtk_misc_set_alignment(GTK_MISC (label), 0, 0.5); entryAlias = gtk_entry_new(); gtk_label_set_mnemonic_widget (GTK_LABEL (label), entryAlias); gtk_entry_set_text(GTK_ENTRY(entryAlias), curAlias); - gtk_table_attach ( GTK_TABLE( table ), entryAlias, 1, 2, 0, 1, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); + gtk_table_attach ( GTK_TABLE( table ), entryAlias, 1, 2, row, row+1, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); + + row++; 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_table_attach ( GTK_TABLE( table ), label, 0, 1, row, row+1, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); gtk_misc_set_alignment(GTK_MISC (label), 0, 0.5); protocolComboBox = gtk_combo_box_new_text(); gtk_label_set_mnemonic_widget (GTK_LABEL (label), protocolComboBox); @@ -301,23 +314,25 @@ static GtkWidget* create_basic_tab (account_t **a) { 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 ), protocolComboBox, 1, 2, 1, 2, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); + gtk_table_attach ( GTK_TABLE( table ), protocolComboBox, 1, 2, row, row+1, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); /* Link signal 'changed' */ g_signal_connect (G_OBJECT (GTK_COMBO_BOX(protocolComboBox)), "changed", G_CALLBACK (change_protocol_cb), currentAccount); + row++; label = gtk_label_new_with_mnemonic (_("_Host name")); - gtk_table_attach ( GTK_TABLE( table ), label, 0, 1, 2, 3, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); + gtk_table_attach ( GTK_TABLE( table ), label, 0, 1, row, row+1, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); gtk_misc_set_alignment(GTK_MISC (label), 0, 0.5); entryHostname = gtk_entry_new(); gtk_label_set_mnemonic_widget (GTK_LABEL (label), entryHostname); gtk_entry_set_text(GTK_ENTRY(entryHostname), curHostname); - gtk_table_attach ( GTK_TABLE( table ), entryHostname, 1, 2, 2, 3, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); + gtk_table_attach ( GTK_TABLE( table ), entryHostname, 1, 2, row, row+1, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); + row++; label = gtk_label_new_with_mnemonic (_("_User name")); - gtk_table_attach ( GTK_TABLE( table ), label, 0, 1, 3, 4, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); + gtk_table_attach ( GTK_TABLE( table ), label, 0, 1, row, row+1, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); gtk_misc_set_alignment(GTK_MISC (label), 0, 0.5); #if GTK_CHECK_VERSION(2,16,0) entryUsername = gtk_entry_new(); @@ -329,12 +344,25 @@ static GtkWidget* create_basic_tab (account_t **a) { #endif gtk_label_set_mnemonic_widget (GTK_LABEL (label), entryUsername); gtk_entry_set_text(GTK_ENTRY(entryUsername), curUsername); - gtk_table_attach ( GTK_TABLE( table ), entryUsername, 1, 2, 3, 4, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); + gtk_table_attach ( GTK_TABLE( table ), entryUsername, 1, 2, row, row+1, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); g_signal_connect(G_OBJECT (entryUsername), "changed", G_CALLBACK (update_credential_cb), NULL); g_object_set_data (G_OBJECT (entryUsername), "column", GINT_TO_POINTER (COLUMN_CREDENTIAL_USERNAME)); + // Domain name can be update only for SIP account + if(strcmp(curAccountType, "SIP") == 0) { + row++; + label = gtk_label_new_with_mnemonic(_("_Domain name")); + gtk_table_attach(GTK_TABLE( table ), label, 0, 1, row, row+1, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); + gtk_misc_set_alignment(GTK_MISC (label), 0, 0.5); + entryDomainName = gtk_entry_new(); + gtk_label_set_mnemonic_widget(GTK_LABEL(label), entryDomainName); + gtk_entry_set_text(GTK_ENTRY(entryDomainName), curDomainName); + gtk_table_attach (GTK_TABLE(table), entryDomainName, 1, 2, row, row+1, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); + } + + row++; label = gtk_label_new_with_mnemonic (_("_Password")); - gtk_table_attach ( GTK_TABLE( table ), label, 0, 1, 4, 5, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); + gtk_table_attach ( GTK_TABLE( table ), label, 0, 1, row, row+1, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); gtk_misc_set_alignment(GTK_MISC (label), 0, 0.5); #if GTK_CHECK_VERSION(2,16,0) entryPassword = gtk_entry_new(); @@ -349,29 +377,32 @@ static GtkWidget* create_basic_tab (account_t **a) { gtk_entry_set_visibility(GTK_ENTRY(entryPassword), FALSE); gtk_label_set_mnemonic_widget (GTK_LABEL (label), entryPassword); gtk_entry_set_text(GTK_ENTRY(entryPassword), curPassword); - gtk_table_attach ( GTK_TABLE( table ), entryPassword, 1, 2, 4, 5, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); + gtk_table_attach ( GTK_TABLE( table ), entryPassword, 1, 2, row, row+1, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); g_signal_connect (G_OBJECT (entryPassword), "changed", G_CALLBACK (update_credential_cb), NULL); g_object_set_data (G_OBJECT (entryPassword), "column", GINT_TO_POINTER (COLUMN_CREDENTIAL_PASSWORD)); + row++; clearTextCheckbox = gtk_check_button_new_with_mnemonic (_("Show password")); g_signal_connect (clearTextCheckbox, "toggled", G_CALLBACK (show_password_cb), entryPassword); - gtk_table_attach (GTK_TABLE (table), clearTextCheckbox, 1, 2, 5, 6, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); + gtk_table_attach (GTK_TABLE (table), clearTextCheckbox, 1, 2, row, row+1, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); + row++; label = gtk_label_new_with_mnemonic (_("_Voicemail number")); - gtk_table_attach ( GTK_TABLE( table ), label, 0, 1, 6, 7, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); + gtk_table_attach ( GTK_TABLE( table ), label, 0, 1, row, row+1, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); gtk_misc_set_alignment(GTK_MISC (label), 0, 0.5); entryMailbox = gtk_entry_new(); gtk_label_set_mnemonic_widget (GTK_LABEL (label), entryMailbox); gtk_entry_set_text(GTK_ENTRY(entryMailbox), curMailbox); - gtk_table_attach ( GTK_TABLE( table ), entryMailbox, 1, 2, 6, 7, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); + gtk_table_attach ( GTK_TABLE( table ), entryMailbox, 1, 2, row, row+1, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); + row++; label = gtk_label_new_with_mnemonic (_("_User-agent")); - gtk_table_attach (GTK_TABLE (table), label, 0, 1, 7, 8, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); + gtk_table_attach (GTK_TABLE (table), label, 0, 1, row, row+1, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5); entryUseragent = gtk_entry_new (); gtk_label_set_mnemonic_widget (GTK_LABEL (label), entryUseragent); gtk_entry_set_text (GTK_ENTRY (entryUseragent), curUseragent); - gtk_table_attach ( GTK_TABLE( table ), entryUseragent, 1, 2, 7, 8, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); + gtk_table_attach ( GTK_TABLE( table ), entryUseragent, 1, 2, row, row+1, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); gtk_widget_show_all( table ); @@ -782,7 +813,7 @@ GtkWidget* create_credential_widget (account_t **a) { GtkRequisition requisitionTreeView; gtk_widget_size_request (GTK_WIDGET(treeViewCredential), &requisitionTreeView); gtk_widget_size_request (GTK_WIDGET(table), &requisitionTable); - gtk_widget_set_size_request (GTK_WIDGET(scrolledWindowCredential), 400, /*requisitionTable.width,*/ 120); + gtk_widget_set_size_request (GTK_WIDGET(scrolledWindowCredential), 400, 120); // same_as_local_cb (sameAsLocalRadioButton, NULL); // set_published_addr_manually_cb (publishedAddrRadioButton, NULL); @@ -886,7 +917,7 @@ GtkWidget * create_security_tab (account_t **a) published_port = g_hash_table_lookup(currentAccount->properties, PUBLISHED_PORT); DEBUG("TLS is enabled to %s", curTLSEnabled); - } */ + } */ // Credentials frame frame = create_credential_widget (a); diff --git a/sflphone-client-gnome/src/sflphone_const.h b/sflphone-client-gnome/src/sflphone_const.h index 919bf1d30d4f3d0458cffeca1533de4315ae0f0e..0f081fbad59e94ccb50924a1e683a21d3b470eb1 100644 --- a/sflphone-client-gnome/src/sflphone_const.h +++ b/sflphone-client-gnome/src/sflphone_const.h @@ -65,6 +65,7 @@ #define ACCOUNT_DTMF_TYPE "Account.dtmfType" #define ACCOUNT_HOSTNAME "hostname" #define ACCOUNT_USERNAME "username" +#define ACCOUNT_DOMAIN "domainame" #define ACCOUNT_PASSWORD "password" #define ACCOUNT_AUTHENTICATION_USERNAME "authenticationUsername" #define ACCOUNT_REALM "realm" diff --git a/sflphone-common/src/managerimpl.cpp b/sflphone-common/src/managerimpl.cpp index de47bba165a4bfe5353c885846220fdff37c15c8..89441cf5e003d7830ca27cf15a5235766dd0a175 100644 --- a/sflphone-common/src/managerimpl.cpp +++ b/sflphone-common/src/managerimpl.cpp @@ -1988,7 +1988,7 @@ int ManagerImpl::createSettingsPath (void) { * Initialization: Main Thread */ void ManagerImpl::initConfigFile (bool load_user_value, std::string alternate) { - _debug ("ManagerImpl::InitConfigFile"); + _debug ("Manager: InitConfigFile"); // Default values, that will be overwritten by the call to // 'populateFromFile' below.