| 251 if (pref_request.showing) { |
251 if (pref_request.showing) { |
| 252 gnt_window_present(pref_request.window); |
252 gnt_window_present(pref_request.window); |
| 253 return; |
253 return; |
| 254 } |
254 } |
| 255 |
255 |
| |
256 if (pref_request.keyring_window != NULL) |
| |
257 purple_request_close(PURPLE_REQUEST_FIELDS, |
| |
258 pref_request.keyring_window); |
| |
259 |
| 256 fields = purple_request_fields_new(); |
260 fields = purple_request_fields_new(); |
| 257 |
261 |
| 258 add_pref_group(fields, _("Buddy List"), blist); |
262 add_pref_group(fields, _("Buddy List"), blist); |
| 259 add_pref_group(fields, _("Conversations"), convs); |
263 add_pref_group(fields, _("Conversations"), convs); |
| 260 add_pref_group(fields, _("Keyring"), keyring); |
264 add_pref_group(fields, _("Keyring"), keyring); |
| 266 _("Save"), G_CALLBACK(save_cb), _("Cancel"), free_strings, |
270 _("Save"), G_CALLBACK(save_cb), _("Cancel"), free_strings, |
| 267 NULL, NULL, NULL, |
271 NULL, NULL, NULL, |
| 268 NULL); |
272 NULL); |
| 269 } |
273 } |
| 270 |
274 |
| |
275 static void |
| |
276 finch_prefs_keyring_save(void *data, PurpleRequestFields *fields) |
| |
277 { |
| |
278 pref_request.keyring_window = NULL; |
| |
279 |
| |
280 purple_keyring_apply_settings(NULL, fields); |
| |
281 } |
| |
282 |
| |
283 static void |
| |
284 finch_prefs_keyring_cancel(void) |
| |
285 { |
| |
286 pref_request.keyring_window = NULL; |
| |
287 } |
| |
288 |
| |
289 void finch_prefs_show_keyring(void) |
| |
290 { |
| |
291 PurpleRequestFields *fields; |
| |
292 |
| |
293 if (pref_request.keyring_window != NULL) { |
| |
294 gnt_window_present(pref_request.keyring_window); |
| |
295 return; |
| |
296 } |
| |
297 |
| |
298 fields = purple_keyring_read_settings(); |
| |
299 if (fields == NULL) { |
| |
300 purple_notify_info(NULL, _("Keyring settings"), |
| |
301 _("Selected keyring doesn't allow any configuration"), |
| |
302 NULL); |
| |
303 return; |
| |
304 } |
| |
305 |
| |
306 pref_request.keyring_window = purple_request_fields(NULL, |
| |
307 _("Keyring settings"), NULL, NULL, fields, |
| |
308 _("Save"), G_CALLBACK(finch_prefs_keyring_save), |
| |
309 _("Cancel"), G_CALLBACK(finch_prefs_keyring_cancel), |
| |
310 NULL, NULL, NULL, NULL); |
| |
311 } |