Mercurial > pidgin.yaz
comparison pidgin/gtkaccount.c @ 31824:4f2aac5967bb
Make the simple silence suppression stuff optional per-account. Fixes #13180.
committer: John Bailey <rekkanoryo@rekkanoryo.org>
author | jakub.adam@ktknet.cz |
---|---|
date | Sun, 13 Mar 2011 18:17:14 +0000 |
parents | 917c597beb97 |
children | 62dc884f2dec |
comparison
equal
deleted
inserted
replaced
31823:d72d728226dc | 31824:4f2aac5967bb |
---|---|
141 GtkWidget *proxy_host_entry; | 141 GtkWidget *proxy_host_entry; |
142 GtkWidget *proxy_port_entry; | 142 GtkWidget *proxy_port_entry; |
143 GtkWidget *proxy_user_entry; | 143 GtkWidget *proxy_user_entry; |
144 GtkWidget *proxy_pass_entry; | 144 GtkWidget *proxy_pass_entry; |
145 | 145 |
146 /* Voice & Video Options*/ | |
147 GtkWidget *voice_frame; | |
148 GtkWidget *suppression_check; | |
149 | |
146 } AccountPrefsDialog; | 150 } AccountPrefsDialog; |
147 | 151 |
148 static AccountsWindow *accounts_window = NULL; | 152 static AccountsWindow *accounts_window = NULL; |
149 static GHashTable *account_pref_wins; | 153 static GHashTable *account_pref_wins; |
150 | 154 |
157 **************************************************************************/ | 161 **************************************************************************/ |
158 static void add_login_options(AccountPrefsDialog *dialog, GtkWidget *parent); | 162 static void add_login_options(AccountPrefsDialog *dialog, GtkWidget *parent); |
159 static void add_user_options(AccountPrefsDialog *dialog, GtkWidget *parent); | 163 static void add_user_options(AccountPrefsDialog *dialog, GtkWidget *parent); |
160 static void add_protocol_options(AccountPrefsDialog *dialog); | 164 static void add_protocol_options(AccountPrefsDialog *dialog); |
161 static void add_proxy_options(AccountPrefsDialog *dialog, GtkWidget *parent); | 165 static void add_proxy_options(AccountPrefsDialog *dialog, GtkWidget *parent); |
166 static void add_voice_options(AccountPrefsDialog *dialog); | |
162 | 167 |
163 static GtkWidget * | 168 static GtkWidget * |
164 add_pref_box(AccountPrefsDialog *dialog, GtkWidget *parent, | 169 add_pref_box(AccountPrefsDialog *dialog, GtkWidget *parent, |
165 const char *text, GtkWidget *widget) | 170 const char *text, GtkWidget *widget) |
166 { | 171 { |
235 purple_account_clear_settings(dialog->account); | 240 purple_account_clear_settings(dialog->account); |
236 | 241 |
237 add_login_options(dialog, dialog->top_vbox); | 242 add_login_options(dialog, dialog->top_vbox); |
238 add_user_options(dialog, dialog->top_vbox); | 243 add_user_options(dialog, dialog->top_vbox); |
239 add_protocol_options(dialog); | 244 add_protocol_options(dialog); |
245 add_voice_options(dialog); | |
240 | 246 |
241 gtk_widget_grab_focus(dialog->protocol_menu); | 247 gtk_widget_grab_focus(dialog->protocol_menu); |
242 | 248 |
243 if (!dialog->prpl_info || !dialog->prpl_info->register_user || | 249 if (!dialog->prpl_info || !dialog->prpl_info->register_user || |
244 g_object_get_data(G_OBJECT(item), "fake")) { | 250 g_object_get_data(G_OBJECT(item), "fake")) { |
1159 } | 1165 } |
1160 | 1166 |
1161 /* Connect signals. */ | 1167 /* Connect signals. */ |
1162 g_signal_connect(G_OBJECT(dialog->proxy_dropdown), "changed", | 1168 g_signal_connect(G_OBJECT(dialog->proxy_dropdown), "changed", |
1163 G_CALLBACK(proxy_type_changed_cb), dialog); | 1169 G_CALLBACK(proxy_type_changed_cb), dialog); |
1170 } | |
1171 | |
1172 static void | |
1173 add_voice_options(AccountPrefsDialog *dialog) | |
1174 { | |
1175 #ifdef USE_VV | |
1176 if (!dialog->prpl_info || !dialog->prpl_info->initiate_media) { | |
1177 if (dialog->voice_frame) { | |
1178 gtk_widget_destroy(dialog->voice_frame); | |
1179 dialog->voice_frame = NULL; | |
1180 dialog->suppression_check = NULL; | |
1181 } | |
1182 return; | |
1183 } | |
1184 | |
1185 if (!dialog->voice_frame) { | |
1186 dialog->voice_frame = gtk_vbox_new(FALSE, PIDGIN_HIG_BORDER); | |
1187 gtk_container_set_border_width(GTK_CONTAINER(dialog->voice_frame), | |
1188 PIDGIN_HIG_BORDER); | |
1189 | |
1190 dialog->suppression_check = | |
1191 gtk_check_button_new_with_mnemonic(_("Use _silence suppression")); | |
1192 gtk_box_pack_start(GTK_BOX(dialog->voice_frame), dialog->suppression_check, | |
1193 FALSE, FALSE, 0); | |
1194 | |
1195 gtk_notebook_append_page(GTK_NOTEBOOK(dialog->notebook), | |
1196 dialog->voice_frame, gtk_label_new_with_mnemonic(_("_Voice and Video"))); | |
1197 gtk_widget_show_all(dialog->voice_frame); | |
1198 } | |
1199 | |
1200 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->suppression_check), | |
1201 purple_account_get_silence_suppression(dialog->account)); | |
1202 #endif | |
1164 } | 1203 } |
1165 | 1204 |
1166 static gboolean | 1205 static gboolean |
1167 account_win_destroy_cb(GtkWidget *w, GdkEvent *event, | 1206 account_win_destroy_cb(GtkWidget *w, GdkEvent *event, |
1168 AccountPrefsDialog *dialog) | 1207 AccountPrefsDialog *dialog) |
1435 { | 1474 { |
1436 purple_account_set_proxy_info(account, NULL); | 1475 purple_account_set_proxy_info(account, NULL); |
1437 proxy_info = NULL; | 1476 proxy_info = NULL; |
1438 } | 1477 } |
1439 | 1478 |
1479 /* Voice and Video settings */ | |
1480 if (dialog->voice_frame) { | |
1481 purple_account_set_silence_suppression(account, | |
1482 gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->suppression_check))); | |
1483 } | |
1484 | |
1440 /* If this is a new account, add it to our list */ | 1485 /* If this is a new account, add it to our list */ |
1441 if (new_acct) | 1486 if (new_acct) |
1442 purple_accounts_add(account); | 1487 purple_accounts_add(account); |
1443 else | 1488 else |
1444 purple_signal_emit(pidgin_account_get_handle(), "account-modified", account); | 1489 purple_signal_emit(pidgin_account_get_handle(), "account-modified", account); |
1555 gtk_container_set_border_width(GTK_CONTAINER(dbox), PIDGIN_HIG_BORDER); | 1600 gtk_container_set_border_width(GTK_CONTAINER(dbox), PIDGIN_HIG_BORDER); |
1556 gtk_notebook_append_page(GTK_NOTEBOOK(notebook), dbox, | 1601 gtk_notebook_append_page(GTK_NOTEBOOK(notebook), dbox, |
1557 gtk_label_new_with_mnemonic(_("P_roxy"))); | 1602 gtk_label_new_with_mnemonic(_("P_roxy"))); |
1558 gtk_widget_show(dbox); | 1603 gtk_widget_show(dbox); |
1559 add_proxy_options(dialog, dbox); | 1604 add_proxy_options(dialog, dbox); |
1605 | |
1606 add_voice_options(dialog); | |
1560 | 1607 |
1561 /* Cancel button */ | 1608 /* Cancel button */ |
1562 pidgin_dialog_add_button(GTK_DIALOG(win), GTK_STOCK_CANCEL, G_CALLBACK(cancel_account_prefs_cb), dialog); | 1609 pidgin_dialog_add_button(GTK_DIALOG(win), GTK_STOCK_CANCEL, G_CALLBACK(cancel_account_prefs_cb), dialog); |
1563 | 1610 |
1564 /* Save button */ | 1611 /* Save button */ |