pidgin/gtkprefs.c

branch
soc.2008.masterpassword
changeset 34034
f508fa47f2ac
parent 34023
6bc30809f7fe
child 34045
c6e1b9834463
equal deleted inserted replaced
34033:910f2ed3988b 34034:f508fa47f2ac
2346 2346
2347 return ret; 2347 return ret;
2348 } 2348 }
2349 2349
2350 static void 2350 static void
2351 change_master_password_cb(GtkWidget * button, gpointer ptr) 2351 change_master_password_cb(GtkWidget *button, gpointer ptr)
2352 { 2352 {
2353 purple_keyring_change_master(NULL, NULL); 2353 purple_keyring_change_master(NULL, NULL);
2354 } 2354 }
2355 2355
2356 static void 2356 static void
2357 keyring_page_pref_changed(const char *name, PurplePrefType type, gconstpointer val, gpointer data) 2357 keyring_page_pref_changed(const char *name, PurplePrefType type, gconstpointer val, gpointer data)
2358 { 2358 {
2359 GtkWidget * button = data; 2359 GtkWidget *button = data;
2360 PurpleKeyring * keyring; 2360 PurpleKeyring *keyring;
2361 2361
2362 g_return_if_fail(type == PURPLE_PREF_STRING); 2362 g_return_if_fail(type == PURPLE_PREF_STRING);
2363 g_return_if_fail(g_strcmp0(name,"/purple/keyring/active") == 0); 2363 g_return_if_fail(g_strcmp0(name, "/purple/keyring/active") == 0);
2364 2364
2365 /** 2365 /**
2366 * This part is annoying. 2366 * This part is annoying.
2367 * Since we do not know if purple_keyring_inuse was changed yet, 2367 * Since we do not know if purple_keyring_inuse was changed yet,
2368 * as we do not know the order the callbacks are called in, we 2368 * as we do not know the order the callbacks are called in, we
2371 */ 2371 */
2372 2372
2373 keyring = purple_keyring_get_keyring_by_id(val); 2373 keyring = purple_keyring_get_keyring_by_id(val);
2374 2374
2375 if (purple_keyring_get_change_master(keyring)) 2375 if (purple_keyring_get_change_master(keyring))
2376 gtk_widget_set_sensitive(button,TRUE); 2376 gtk_widget_set_sensitive(button, TRUE);
2377 else 2377 else
2378 gtk_widget_set_sensitive(button,FALSE); 2378 gtk_widget_set_sensitive(button, FALSE);
2379 } 2379 }
2380
2381 2380
2382 static GtkWidget * 2381 static GtkWidget *
2383 keyring_page(void) 2382 keyring_page(void)
2384 { 2383 {
2385 GtkWidget *ret; 2384 GtkWidget *ret;
2386 GtkWidget *vbox; 2385 GtkWidget *vbox;
2387 GtkWidget * button; 2386 GtkWidget *button;
2388 GList *names; 2387 GList *names;
2389 void * prefs; 2388 void *prefs;
2390 const char * keyring_id; 2389 const char *keyring_id;
2391 PurpleKeyring * keyring; 2390 PurpleKeyring *keyring;
2392 2391
2393 keyring_id = purple_prefs_get_string("/purple/keyring/active"); 2392 keyring_id = purple_prefs_get_string("/purple/keyring/active");
2394 keyring = purple_keyring_get_keyring_by_id(keyring_id); 2393 keyring = purple_keyring_get_keyring_by_id(keyring_id);
2395 2394
2396 prefs = purple_prefs_get_handle(); 2395 prefs = purple_prefs_get_handle();
2397 2396
2398 ret = gtk_vbox_new(FALSE, PIDGIN_HIG_CAT_SPACE); 2397 ret = gtk_vbox_new(FALSE, PIDGIN_HIG_CAT_SPACE);
2399 gtk_container_set_border_width (GTK_CONTAINER (ret), PIDGIN_HIG_BORDER); 2398 gtk_container_set_border_width(GTK_CONTAINER (ret), PIDGIN_HIG_BORDER);
2400 2399
2401 /* Keyring selection */ 2400 /* Keyring selection */
2402 vbox = pidgin_make_frame (ret, _("Keyring")); 2401 vbox = pidgin_make_frame(ret, _("Keyring"));
2403 names = purple_keyring_get_options(); 2402 names = purple_keyring_get_options();
2404 pidgin_prefs_dropdown_from_list(vbox, _("Keyring :"), PURPLE_PREF_STRING, 2403 pidgin_prefs_dropdown_from_list(vbox, _("Keyring :"), PURPLE_PREF_STRING,
2405 "/purple/keyring/active", names); 2404 "/purple/keyring/active", names);
2406 g_list_free(names); 2405 g_list_free(names);
2407 2406
2410 2409
2411 g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(change_master_password_cb), NULL); 2410 g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(change_master_password_cb), NULL);
2412 purple_prefs_connect_callback (prefs, "/purple/keyring/active", keyring_page_pref_changed, button); 2411 purple_prefs_connect_callback (prefs, "/purple/keyring/active", keyring_page_pref_changed, button);
2413 2412
2414 if (purple_keyring_get_change_master(keyring)) 2413 if (purple_keyring_get_change_master(keyring))
2415 gtk_widget_set_sensitive(button,TRUE); 2414 gtk_widget_set_sensitive(button, TRUE);
2416 else 2415 else
2417 gtk_widget_set_sensitive(button,FALSE); 2416 gtk_widget_set_sensitive(button, FALSE);
2418 2417
2419 gtk_box_pack_start(GTK_BOX(vbox), button, FALSE, FALSE, 1); 2418 gtk_box_pack_start(GTK_BOX(vbox), button, FALSE, FALSE, 1);
2420 gtk_widget_show_all(ret); 2419 gtk_widget_show_all(ret);
2420
2421 return ret; 2421 return ret;
2422 } 2422 }
2423 2423
2424 #ifndef _WIN32 2424 #ifndef _WIN32
2425 static gint 2425 static gint

mercurial