pidgin/gtkprefs.c

changeset 37886
d4ed67195cbf
parent 37677
0db23c801fde
child 37888
b091d0c4c8dd
equal deleted inserted replaced
37885:f12d4064eeae 37886:d4ed67195cbf
125 static GtkListStore *prefs_conv_variants; 125 static GtkListStore *prefs_conv_variants;
126 static GtkListStore *prefs_status_icon_themes; 126 static GtkListStore *prefs_status_icon_themes;
127 static GtkListStore *prefs_smiley_themes; 127 static GtkListStore *prefs_smiley_themes;
128 128
129 #ifdef USE_VV 129 #ifdef USE_VV
130
131 static const gchar *AUDIO_SRC_PLUGINS[] = {
132 "alsasrc", "ALSA",
133 "directsoundsrc", "DirectSound",
134 /* "esdmon", "ESD", ? */
135 "osssrc", "OSS",
136 "pulsesrc", "PulseAudio",
137 "sndiosrc", "sndio",
138 /* "audiotestsrc wave=silence", "Silence", */
139 /* Translators: This is a noun that refers to one possible audio input
140 plugin. The plugin can be used by the user to sanity check basic audio
141 functionality within Pidgin. */
142 "audiotestsrc", N_("Test Sound"),
143 NULL
144 };
145
146 static const gchar *AUDIO_SINK_PLUGINS[] = {
147 "alsasink", "ALSA",
148 "directsoundsink", "DirectSound",
149 /* "gconfaudiosink", "GConf", */
150 "artsdsink", "aRts",
151 "esdsink", "ESD",
152 "osssink", "OSS",
153 "pulsesink", "PulseAudio",
154 "sndiosink", "sndio",
155 NULL
156 };
157
158 static const gchar *VIDEO_SRC_PLUGINS[] = {
159 "videodisabledsrc", N_("Disabled"),
160 /* Translators: This is a noun that refers to one possible video input
161 plugin. The plugin can be used by the user to sanity check basic video
162 functionality within Pidgin. */
163 "videotestsrc", N_("Test Input"),
164 "dshowvideosrc","DirectDraw",
165 "ksvideosrc", "KS Video",
166 "qcamsrc", "Quickcam",
167 "v4lsrc", "Video4Linux",
168 "v4l2src", "Video4Linux2",
169 "v4lmjpegsrc", "Video4Linux MJPEG",
170 NULL
171 };
172
173 static const gchar *VIDEO_SINK_PLUGINS[] = {
174 /* "aasink", "AALib", Didn't work for me */
175 "directdrawsink", "DirectDraw",
176 /* "gconfvideosink", "GConf", */
177 "glimagesink", "OpenGL",
178 "ximagesink", "X Window System",
179 "xvimagesink", "X Window System (Xv)",
180 NULL
181 };
182 130
183 static GtkWidget *voice_level; 131 static GtkWidget *voice_level;
184 static GtkWidget *voice_threshold; 132 static GtkWidget *voice_threshold;
185 static GtkWidget *voice_volume; 133 static GtkWidget *voice_volume;
186 static GstElement *voice_pipeline; 134 static GstElement *voice_pipeline;
3390 return ret; 3338 return ret;
3391 } 3339 }
3392 3340
3393 #ifdef USE_VV 3341 #ifdef USE_VV
3394 static GList * 3342 static GList *
3395 get_vv_element_devices(const gchar *element_name) 3343 get_vv_device_menuitems(PurpleMediaElementType type)
3396 { 3344 {
3397 GList *ret = NULL; 3345 GList *result = NULL;
3398 GstElement *element; 3346 GList *i;
3399 GObjectClass *klass; 3347
3400 3348 i = purple_media_manager_enumerate_elements(purple_media_manager_get(),
3401 ret = g_list_prepend(ret, g_strdup(_("Default"))); 3349 type);
3402 ret = g_list_prepend(ret, g_strdup("")); 3350 for (; i; i = g_list_delete_link(i, i)) {
3403 3351 PurpleMediaElementInfo *info = i->data;
3404 if (!strcmp(element_name, "<custom>") || (*element_name == '\0')) { 3352
3405 return g_list_reverse(ret); 3353 result = g_list_append(result,
3406 } 3354 purple_media_element_info_get_name(info));
3407 3355 result = g_list_append(result,
3408 if (g_strcmp0(element_name, "videodisabledsrc") == 0) { 3356 purple_media_element_info_get_id(info));
3409 /* Translators: This string refers to 'static' or 'snow' sometimes 3357 g_object_unref(info);
3410 seen when trying to tune a TV to a non-existant analog station. */ 3358 }
3411 ret = g_list_prepend(ret, g_strdup(_("Random noise"))); 3359
3412 ret = g_list_prepend(ret, g_strdup("snow")); 3360 return result;
3413
3414 return g_list_reverse(ret);
3415 }
3416
3417 element = gst_element_factory_make(element_name, "test");
3418 if (!element) {
3419 purple_debug_info("vvconfig", "'%s' - unable to find element\n",
3420 element_name);
3421 return g_list_reverse(ret);
3422 }
3423
3424 klass = G_OBJECT_GET_CLASS (element);
3425 if (!klass) {
3426 purple_debug_info("vvconfig", "'%s' - unable to find GObject "
3427 "Class\n", element_name);
3428 return g_list_reverse(ret);
3429 }
3430
3431 purple_debug_info("vvconfig", "'%s' - gstreamer-1.0 doesn't suport "
3432 "property probing\n", element_name);
3433
3434 gst_object_unref(element);
3435 return g_list_reverse(ret);
3436 }
3437
3438 static GList *
3439 get_vv_element_plugins(const gchar **plugins)
3440 {
3441 GList *ret = NULL;
3442
3443 ret = g_list_prepend(ret, (gpointer)_("Default"));
3444 ret = g_list_prepend(ret, "");
3445 for (; plugins[0] && plugins[1]; plugins += 2) {
3446 #if GST_CHECK_VERSION(1,0,0)
3447 if (gst_registry_check_feature_version(gst_registry_get(),
3448 plugins[0], 0, 0, 0)
3449 #else
3450 if (gst_default_registry_check_feature_version(plugins[0], 0, 0, 0)
3451 #endif
3452 || g_strcmp0(plugins[0], "videodisabledsrc") == 0)
3453 {
3454 ret = g_list_prepend(ret, (gpointer)_(plugins[1]));
3455 ret = g_list_prepend(ret, (gpointer)plugins[0]);
3456 }
3457 }
3458
3459 return g_list_reverse(ret);
3460 } 3361 }
3461 3362
3462 static GstElement * 3363 static GstElement *
3463 create_test_element(PurpleMediaElementType type) 3364 create_test_element(PurpleMediaElementType type)
3464 { 3365 {
3841 g_signal_connect(test, "toggled", 3742 g_signal_connect(test, "toggled",
3842 G_CALLBACK(toggle_video_test_cb), NULL); 3743 G_CALLBACK(toggle_video_test_cb), NULL);
3843 } 3744 }
3844 3745
3845 static void 3746 static void
3846 vv_plugin_changed_cb(const gchar *name, PurplePrefType type, 3747 vv_device_changed_cb(const gchar *name, PurplePrefType type,
3847 gconstpointer value, gpointer data) 3748 gconstpointer value, gpointer data)
3848 { 3749 {
3849 GtkWidget *vbox = data; 3750 PurpleMediaManager *manager;
3850 GtkSizeGroup *sg; 3751 PurpleMediaElementInfo *info;
3851 GtkWidget *widget; 3752
3852 gchar *pref; 3753 manager = purple_media_manager_get();
3853 GList *devices; 3754 info = purple_media_manager_get_element_info(manager, value);
3854 3755 purple_media_manager_set_active_element(manager, info);
3855 sg = g_object_get_data(G_OBJECT(vbox), "size-group");
3856 widget = g_object_get_data(G_OBJECT(vbox), "device-hbox");
3857 gtk_widget_destroy(widget);
3858
3859 pref = g_strdup(name);
3860 strcpy(pref + strlen(pref) - strlen("plugin"), "device");
3861 devices = get_vv_element_devices(value);
3862 if (g_list_find_custom(devices, purple_prefs_get_string(pref),
3863 (GCompareFunc)strcmp) == NULL)
3864 {
3865 GList *next = g_list_next(devices);
3866 if (next)
3867 purple_prefs_set_string(pref, next->data);
3868 }
3869 widget = pidgin_prefs_dropdown_from_list(vbox, _("_Device"),
3870 PURPLE_PREF_STRING, pref, devices);
3871 g_list_free_full(devices, g_free);
3872 gtk_size_group_add_widget(sg, widget);
3873 gtk_widget_set_halign(widget, GTK_ALIGN_START);
3874 gtk_widget_set_valign(widget, GTK_ALIGN_CENTER);
3875
3876 g_object_set_data(G_OBJECT(vbox), "device-hbox",
3877 gtk_widget_get_parent(widget));
3878 g_signal_connect_swapped(widget, "destroy", G_CALLBACK(g_free), pref);
3879 3756
3880 /* Refresh test viewers */ 3757 /* Refresh test viewers */
3881 if (strstr(name, "audio") && voice_pipeline) { 3758 if (strstr(name, "audio") && voice_pipeline) {
3882 voice_test_destroy_cb(NULL, NULL); 3759 voice_test_destroy_cb(NULL, NULL);
3883 enable_voice_test(); 3760 enable_voice_test();
3887 } 3764 }
3888 } 3765 }
3889 3766
3890 static void 3767 static void
3891 make_vv_frame(GtkWidget *parent, GtkSizeGroup *sg, 3768 make_vv_frame(GtkWidget *parent, GtkSizeGroup *sg,
3892 const gchar *name, const gchar **plugin_strs, 3769 const gchar *name, PurpleMediaElementType element_type,
3893 const gchar *plugin_pref, const gchar *device_pref) 3770 const gchar *preference_key)
3894 { 3771 {
3895 GtkWidget *vbox, *widget; 3772 GtkWidget *vbox, *widget;
3896 GList *plugins, *devices; 3773 GList *devices;
3897 3774
3898 vbox = pidgin_make_frame(parent, name); 3775 vbox = pidgin_make_frame(parent, name);
3899 3776
3900 /* Setup plugin preference */
3901 plugins = get_vv_element_plugins(plugin_strs);
3902 widget = pidgin_prefs_dropdown_from_list(vbox, _("_Plugin"),
3903 PURPLE_PREF_STRING, plugin_pref,
3904 plugins);
3905 g_list_free(plugins);
3906 gtk_size_group_add_widget(sg, widget);
3907 gtk_widget_set_halign(widget, GTK_ALIGN_START);
3908 gtk_widget_set_valign(widget, GTK_ALIGN_CENTER);
3909
3910 /* Setup device preference */ 3777 /* Setup device preference */
3911 devices = get_vv_element_devices(purple_prefs_get_string(plugin_pref)); 3778 devices = get_vv_device_menuitems(element_type);
3912 if (g_list_find_custom(devices, purple_prefs_get_string(device_pref), 3779 if (g_list_find_custom(devices, purple_prefs_get_string(preference_key),
3913 (GCompareFunc)strcmp) == NULL) 3780 (GCompareFunc)strcmp) == NULL)
3914 { 3781 {
3915 GList *next = g_list_next(devices); 3782 GList *next = g_list_next(devices);
3916 if (next) 3783 if (next)
3917 purple_prefs_set_string(device_pref, next->data); 3784 purple_prefs_set_string(preference_key, next->data);
3918 } 3785 }
3919 widget = pidgin_prefs_dropdown_from_list(vbox, _("_Device"), 3786 widget = pidgin_prefs_dropdown_from_list(vbox, _("_Device"),
3920 PURPLE_PREF_STRING, device_pref, 3787 PURPLE_PREF_STRING, preference_key, devices);
3921 devices);
3922 g_list_free_full(devices, g_free); 3788 g_list_free_full(devices, g_free);
3923 gtk_size_group_add_widget(sg, widget); 3789 gtk_size_group_add_widget(sg, widget);
3924 gtk_widget_set_halign(widget, GTK_ALIGN_START); 3790 gtk_widget_set_halign(widget, GTK_ALIGN_START);
3925 gtk_widget_set_valign(widget, GTK_ALIGN_CENTER); 3791 gtk_widget_set_valign(widget, GTK_ALIGN_CENTER);
3926 3792
3927 widget = gtk_widget_get_parent(widget); 3793 purple_prefs_connect_callback(vbox, preference_key,
3928 g_object_set_data(G_OBJECT(vbox), "size-group", sg); 3794 vv_device_changed_cb, vbox);
3929 g_object_set_data(G_OBJECT(vbox), "device-hbox", widget);
3930 purple_prefs_connect_callback(vbox, plugin_pref, vv_plugin_changed_cb,
3931 vbox);
3932 g_signal_connect_swapped(vbox, "destroy", 3795 g_signal_connect_swapped(vbox, "destroy",
3933 G_CALLBACK(purple_prefs_disconnect_by_handle), vbox); 3796 G_CALLBACK(purple_prefs_disconnect_by_handle), vbox);
3934 } 3797 }
3935 3798
3936 static GtkWidget * 3799 static GtkWidget *
3944 gtk_container_set_border_width(GTK_CONTAINER(ret), PIDGIN_HIG_BORDER); 3807 gtk_container_set_border_width(GTK_CONTAINER(ret), PIDGIN_HIG_BORDER);
3945 3808
3946 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); 3809 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
3947 3810
3948 vbox = pidgin_make_frame(ret, _("Audio")); 3811 vbox = pidgin_make_frame(ret, _("Audio"));
3949 make_vv_frame(vbox, sg, _("Input"), AUDIO_SRC_PLUGINS, 3812 make_vv_frame(vbox, sg, _("Input"),
3950 PIDGIN_PREFS_ROOT "/vvconfig/audio/src/plugin", 3813 PURPLE_MEDIA_ELEMENT_AUDIO | PURPLE_MEDIA_ELEMENT_SRC,
3951 PIDGIN_PREFS_ROOT "/vvconfig/audio/src/device"); 3814 PIDGIN_PREFS_ROOT "/vvconfig/audio/src/device");
3952 make_vv_frame(vbox, sg, _("Output"), AUDIO_SINK_PLUGINS, 3815 make_vv_frame(vbox, sg, _("Output"),
3953 PIDGIN_PREFS_ROOT "/vvconfig/audio/sink/plugin", 3816 PURPLE_MEDIA_ELEMENT_AUDIO | PURPLE_MEDIA_ELEMENT_SINK,
3954 PIDGIN_PREFS_ROOT "/vvconfig/audio/sink/device"); 3817 PIDGIN_PREFS_ROOT "/vvconfig/audio/sink/device");
3955 make_voice_test(vbox); 3818 make_voice_test(vbox);
3956 3819
3957 vbox = pidgin_make_frame(ret, _("Video")); 3820 vbox = pidgin_make_frame(ret, _("Video"));
3958 make_vv_frame(vbox, sg, _("Input"), VIDEO_SRC_PLUGINS, 3821 make_vv_frame(vbox, sg, _("Input"),
3959 PIDGIN_PREFS_ROOT "/vvconfig/video/src/plugin", 3822 PURPLE_MEDIA_ELEMENT_VIDEO | PURPLE_MEDIA_ELEMENT_SRC,
3960 PIDGIN_PREFS_ROOT "/vvconfig/video/src/device"); 3823 PIDGIN_PREFS_ROOT "/vvconfig/video/src/device");
3961 make_vv_frame(vbox, sg, _("Output"), VIDEO_SINK_PLUGINS, 3824 make_vv_frame(vbox, sg, _("Output"),
3962 PIDGIN_PREFS_ROOT "/vvconfig/video/sink/plugin", 3825 PURPLE_MEDIA_ELEMENT_VIDEO | PURPLE_MEDIA_ELEMENT_SINK,
3963 PIDGIN_PREFS_ROOT "/vvconfig/video/sink/device"); 3826 PIDGIN_PREFS_ROOT "/vvconfig/video/sink/device");
3964 make_video_test(vbox); 3827 make_video_test(vbox);
3965 3828
3966 gtk_widget_show_all(ret); 3829 gtk_widget_show_all(ret);
3967 3830
4138 #ifdef USE_VV 4001 #ifdef USE_VV
4139 /* Voice/Video */ 4002 /* Voice/Video */
4140 purple_prefs_add_none(PIDGIN_PREFS_ROOT "/vvconfig"); 4003 purple_prefs_add_none(PIDGIN_PREFS_ROOT "/vvconfig");
4141 purple_prefs_add_none(PIDGIN_PREFS_ROOT "/vvconfig/audio"); 4004 purple_prefs_add_none(PIDGIN_PREFS_ROOT "/vvconfig/audio");
4142 purple_prefs_add_none(PIDGIN_PREFS_ROOT "/vvconfig/audio/src"); 4005 purple_prefs_add_none(PIDGIN_PREFS_ROOT "/vvconfig/audio/src");
4143 purple_prefs_add_string(PIDGIN_PREFS_ROOT "/vvconfig/audio/src/plugin", "");
4144 purple_prefs_add_string(PIDGIN_PREFS_ROOT "/vvconfig/audio/src/device", ""); 4006 purple_prefs_add_string(PIDGIN_PREFS_ROOT "/vvconfig/audio/src/device", "");
4145 purple_prefs_add_none(PIDGIN_PREFS_ROOT "/vvconfig/audio/sink"); 4007 purple_prefs_add_none(PIDGIN_PREFS_ROOT "/vvconfig/audio/sink");
4146 purple_prefs_add_string(PIDGIN_PREFS_ROOT "/vvconfig/audio/sink/plugin", "");
4147 purple_prefs_add_string(PIDGIN_PREFS_ROOT "/vvconfig/audio/sink/device", ""); 4008 purple_prefs_add_string(PIDGIN_PREFS_ROOT "/vvconfig/audio/sink/device", "");
4148 purple_prefs_add_none(PIDGIN_PREFS_ROOT "/vvconfig/video"); 4009 purple_prefs_add_none(PIDGIN_PREFS_ROOT "/vvconfig/video");
4149 purple_prefs_add_none(PIDGIN_PREFS_ROOT "/vvconfig/video/src"); 4010 purple_prefs_add_none(PIDGIN_PREFS_ROOT "/vvconfig/video/src");
4150 purple_prefs_add_string(PIDGIN_PREFS_ROOT "/vvconfig/video/src/plugin", "");
4151 purple_prefs_add_string(PIDGIN_PREFS_ROOT "/vvconfig/video/src/device", ""); 4011 purple_prefs_add_string(PIDGIN_PREFS_ROOT "/vvconfig/video/src/device", "");
4152 purple_prefs_add_none(PIDGIN_PREFS_ROOT "/vvconfig/video"); 4012 purple_prefs_add_none(PIDGIN_PREFS_ROOT "/vvconfig/video");
4153 purple_prefs_add_none(PIDGIN_PREFS_ROOT "/vvconfig/video/sink"); 4013 purple_prefs_add_none(PIDGIN_PREFS_ROOT "/vvconfig/video/sink");
4154 purple_prefs_add_string(PIDGIN_PREFS_ROOT "/vvconfig/video/sink/plugin", "");
4155 purple_prefs_add_string(PIDGIN_PREFS_ROOT "/vvconfig/video/sink/device", ""); 4014 purple_prefs_add_string(PIDGIN_PREFS_ROOT "/vvconfig/video/sink/device", "");
4156 #endif 4015 #endif
4157 4016
4158 pidgin_prefs_update_old(); 4017 pidgin_prefs_update_old();
4159 } 4018 }
4248 PIDGIN_PREFS_ROOT "/conversations/im/x"); 4107 PIDGIN_PREFS_ROOT "/conversations/im/x");
4249 purple_prefs_rename(PIDGIN_PREFS_ROOT "/conversations/y", 4108 purple_prefs_rename(PIDGIN_PREFS_ROOT "/conversations/y",
4250 PIDGIN_PREFS_ROOT "/conversations/im/y"); 4109 PIDGIN_PREFS_ROOT "/conversations/im/y");
4251 4110
4252 /* Fixup vvconfig plugin prefs */ 4111 /* Fixup vvconfig plugin prefs */
4253 if (purple_prefs_exists("/plugins/core/vvconfig/audio/src/plugin")) {
4254 purple_prefs_set_string(PIDGIN_PREFS_ROOT "/vvconfig/audio/src/plugin",
4255 purple_prefs_get_string("/plugins/core/vvconfig/audio/src/plugin"));
4256 }
4257 if (purple_prefs_exists("/plugins/core/vvconfig/audio/src/device")) { 4112 if (purple_prefs_exists("/plugins/core/vvconfig/audio/src/device")) {
4258 purple_prefs_set_string(PIDGIN_PREFS_ROOT "/vvconfig/audio/src/device", 4113 purple_prefs_set_string(PIDGIN_PREFS_ROOT "/vvconfig/audio/src/device",
4259 purple_prefs_get_string("/plugins/core/vvconfig/audio/src/device")); 4114 purple_prefs_get_string("/plugins/core/vvconfig/audio/src/device"));
4260 } 4115 }
4261 if (purple_prefs_exists("/plugins/core/vvconfig/audio/sink/plugin")) {
4262 purple_prefs_set_string(PIDGIN_PREFS_ROOT "/vvconfig/audio/sink/plugin",
4263 purple_prefs_get_string("/plugins/core/vvconfig/audio/sink/plugin"));
4264 }
4265 if (purple_prefs_exists("/plugins/core/vvconfig/audio/sink/device")) { 4116 if (purple_prefs_exists("/plugins/core/vvconfig/audio/sink/device")) {
4266 purple_prefs_set_string(PIDGIN_PREFS_ROOT "/vvconfig/audio/sink/device", 4117 purple_prefs_set_string(PIDGIN_PREFS_ROOT "/vvconfig/audio/sink/device",
4267 purple_prefs_get_string("/plugins/core/vvconfig/audio/sink/device")); 4118 purple_prefs_get_string("/plugins/core/vvconfig/audio/sink/device"));
4268 } 4119 }
4269 if (purple_prefs_exists("/plugins/core/vvconfig/video/src/plugin")) {
4270 purple_prefs_set_string(PIDGIN_PREFS_ROOT "/vvconfig/video/src/plugin",
4271 purple_prefs_get_string("/plugins/core/vvconfig/video/src/plugin"));
4272 }
4273 if (purple_prefs_exists("/plugins/core/vvconfig/video/src/device")) { 4120 if (purple_prefs_exists("/plugins/core/vvconfig/video/src/device")) {
4274 purple_prefs_set_string(PIDGIN_PREFS_ROOT "/vvconfig/video/src/device", 4121 purple_prefs_set_string(PIDGIN_PREFS_ROOT "/vvconfig/video/src/device",
4275 purple_prefs_get_string("/plugins/core/vvconfig/video/src/device")); 4122 purple_prefs_get_string("/plugins/core/vvconfig/video/src/device"));
4276 } 4123 }
4277 if (purple_prefs_exists("/plugins/gtk/vvconfig/video/sink/plugin")) {
4278 purple_prefs_set_string(PIDGIN_PREFS_ROOT "/vvconfig/video/sink/plugin",
4279 purple_prefs_get_string("/plugins/gtk/vvconfig/video/sink/plugin"));
4280 }
4281 if (purple_prefs_exists("/plugins/gtk/vvconfig/video/sink/device")) { 4124 if (purple_prefs_exists("/plugins/gtk/vvconfig/video/sink/device")) {
4282 purple_prefs_set_string(PIDGIN_PREFS_ROOT "/vvconfig/video/sink/device", 4125 purple_prefs_set_string(PIDGIN_PREFS_ROOT "/vvconfig/video/sink/device",
4283 purple_prefs_get_string("/plugins/gtk/vvconfig/video/sink/device")); 4126 purple_prefs_get_string("/plugins/gtk/vvconfig/video/sink/device"));
4284 } 4127 }
4285 4128
4286 purple_prefs_remove("/plugins/core/vvconfig"); 4129 purple_prefs_remove("/plugins/core/vvconfig");
4287 purple_prefs_remove("/plugins/gtk/vvconfig"); 4130 purple_prefs_remove("/plugins/gtk/vvconfig");
4131
4132 purple_prefs_remove(PIDGIN_PREFS_ROOT "/vvconfig/audio/src/plugin");
4133 purple_prefs_remove(PIDGIN_PREFS_ROOT "/vvconfig/audio/sink/plugin");
4134 purple_prefs_remove(PIDGIN_PREFS_ROOT "/vvconfig/video/src/plugin");
4135 purple_prefs_remove(PIDGIN_PREFS_ROOT "/vvconfig/video/sink/plugin");
4288 4136
4289 #ifndef _WIN32 4137 #ifndef _WIN32
4290 /* Added in 3.0.0. */ 4138 /* Added in 3.0.0. */
4291 if (purple_prefs_get_int(PIDGIN_PREFS_ROOT "/browsers/place") == 1) { 4139 if (purple_prefs_get_int(PIDGIN_PREFS_ROOT "/browsers/place") == 1) {
4292 /* If the "open link in" pref is set to the old value for "existing 4140 /* If the "open link in" pref is set to the old value for "existing

mercurial