Thu, 02 Mar 2023 23:58:21 -0600
Fix leaks in debug window
Fixes two leaks from the debug window:
```
22 bytes in 1 blocks are definitely lost in loss record 7,038 of 41,972
at 0x484386F: malloc (vg_replace_malloc.c:393)
by 0x4980168: g_malloc (gmem.c:130)
by 0x4995602: g_strdup (gstrfuncs.c:363)
by 0x4CFB782: purple_prefs_connect_callback (prefs.c:1301)
by 0x48AA524: pidgin_debug_init (pidgindebug.c:918)
by 0x48B8F9E: pidgin_ui_start (pidginui.c:146)
by 0x4D37B01: purple_ui_start (purpleui.c:397)
by 0x4CE3BA6: purple_core_init (core.c:211)
by 0x48A384F: pidgin_application_startup (pidginapplication.c:820)
by 0x4DD3553: UnknownInlinedFun (gclosure.c:895)
by 0x4DD3553: g_signal_emit_valist (gsignal.c:3456)
by 0x4DD3632: g_signal_emit (gsignal.c:3606)
by 0x5815B82: g_application_register (gapplication.c:2211)
```
and
```
32 bytes in 1 blocks are definitely lost in loss record 15,308 of 41,972
at 0x484386F: malloc (vg_replace_malloc.c:393)
by 0x4980168: g_malloc (gmem.c:130)
by 0x4997AB5: g_slice_alloc (gslice.c:1074)
by 0x495E14C: UnknownInlinedFun (gdatetime.c:678)
by 0x495E14C: g_date_time_from_instant (gdatetime.c:774)
by 0x495F4E9: g_date_time_new_now_local (gdatetime.c:989)
by 0x48A82F9: save_response_cb (pidgindebug.c:136)
by 0x4DB4375: g_cclosure_marshal_VOID__INTv (gmarshal.c:596)
by 0x4DD3553: UnknownInlinedFun (gclosure.c:895)
by 0x4DD3553: g_signal_emit_valist (gsignal.c:3456)
by 0x4DD3632: g_signal_emit (gsignal.c:3606)
by 0x4DB5FBF: g_closure_invoke (gclosure.c:832)
by 0x4DE3D85: signal_emit_unlocked_R.isra.0 (gsignal.c:3796)
by 0x4DD3419: g_signal_emit_valist (gsignal.c:3549)
```
Testing Done:
Ran in valgrind, saved the debug logs to a file, and the above leaks were gone.
Reviewed at https://reviews.imfreedom.org/r/2304/
|
20147
66f05a854eee
applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents:
19859
diff
changeset
|
1 | /* pidgin |
| 8713 | 2 | * |
|
15931
716b5fac1895
Re-sed the copyright notices so they don't all talk about Purple.
Richard Laager <rlaager@pidgin.im>
parents:
15884
diff
changeset
|
3 | * Pidgin is the legal property of its developers, whose names are too numerous |
| 8713 | 4 | * to list here. Please refer to the COPYRIGHT file distributed with this |
| 5 | * source distribution. | |
| 6 | * | |
| 7 | * This program is free software; you can redistribute it and/or modify | |
| 8 | * it under the terms of the GNU General Public License as published by | |
| 9 | * the Free Software Foundation; either version 2 of the License, or | |
| 10 | * (at your option) any later version. | |
| 11 | * | |
| 12 | * This program is distributed in the hope that it will be useful, | |
| 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 15 | * GNU General Public License for more details. | |
| 16 | * | |
| 17 | * You should have received a copy of the GNU General Public License | |
| 18 | * along with this program; if not, write to the Free Software | |
|
19859
71d37b57eff2
The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
16254
diff
changeset
|
19 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
| 8713 | 20 | */ |
|
39227
291b3c800668
Move GtkPluginPref to use Talkatu instead of Webkit
Gary Kramlich <grim@reaperworld.com>
parents:
38007
diff
changeset
|
21 | #include <talkatu.h> |
|
291b3c800668
Move GtkPluginPref to use Talkatu instead of Webkit
Gary Kramlich <grim@reaperworld.com>
parents:
38007
diff
changeset
|
22 | |
|
40360
e21f3bbcc2a5
Update all of the pidgin code to include purple.h
Gary Kramlich <grim@reaperworld.com>
parents:
40197
diff
changeset
|
23 | #include <purple.h> |
| 8713 | 24 | |
| 25 | #include "gtkpluginpref.h" | |
| 26 | #include "gtkutils.h" | |
|
40886
198bf5bc58ce
Move Pidgin preferences code into a subdirectory.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
40490
diff
changeset
|
27 | #include "pidginprefs.h" |
| 8713 | 28 | |
| 29 | static gboolean | |
| 30 | entry_cb(GtkWidget *entry, gpointer data) { | |
| 31 | char *pref = data; | |
| 32 | ||
|
41531
2b86501d13fe
Replace gtk_entry_[gs]et_text with gtk_editable_[gs]et_text
Gary Kramlich <grim@reaperworld.com>
parents:
40886
diff
changeset
|
33 | purple_prefs_set_string(pref, gtk_editable_get_text(GTK_EDITABLE(entry))); |
| 8713 | 34 | |
| 35 | return FALSE; | |
| 36 | } | |
| 37 | ||
|
12712
21ea46d3dee9
[gaim-migrate @ 15056]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11986
diff
changeset
|
38 | |
|
21ea46d3dee9
[gaim-migrate @ 15056]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11986
diff
changeset
|
39 | static void |
|
41947
7b3312d0760c
Bump C standard to C99 for Pidgin files and fix warnings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41629
diff
changeset
|
40 | multiline_cb(GtkTextBuffer *buffer, G_GNUC_UNUSED gpointer data) { |
|
39227
291b3c800668
Move GtkPluginPref to use Talkatu instead of Webkit
Gary Kramlich <grim@reaperworld.com>
parents:
38007
diff
changeset
|
41 | gchar *pref = NULL, *text = NULL; |
|
12712
21ea46d3dee9
[gaim-migrate @ 15056]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11986
diff
changeset
|
42 | |
|
39229
f2c79c2fc99f
Correct a signal connection and comment out a broken one with a warning to fix it when talkatu has a solution for it
Gary Kramlich <grim@reaperworld.com>
parents:
39228
diff
changeset
|
43 | pref = g_object_get_data(G_OBJECT(buffer), "pref-key"); |
|
12712
21ea46d3dee9
[gaim-migrate @ 15056]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11986
diff
changeset
|
44 | g_return_if_fail(pref); |
|
21ea46d3dee9
[gaim-migrate @ 15056]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11986
diff
changeset
|
45 | |
|
39227
291b3c800668
Move GtkPluginPref to use Talkatu instead of Webkit
Gary Kramlich <grim@reaperworld.com>
parents:
38007
diff
changeset
|
46 | text = talkatu_markup_get_html(buffer, NULL); |
| 15884 | 47 | purple_prefs_set_string(pref, text); |
|
12712
21ea46d3dee9
[gaim-migrate @ 15056]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11986
diff
changeset
|
48 | g_free(text); |
|
21ea46d3dee9
[gaim-migrate @ 15056]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11986
diff
changeset
|
49 | } |
|
21ea46d3dee9
[gaim-migrate @ 15056]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11986
diff
changeset
|
50 | |
| 8713 | 51 | static void |
| 15884 | 52 | make_string_pref(GtkWidget *parent, PurplePluginPref *pref, GtkSizeGroup *sg) { |
|
13107
704041197f4d
[gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents:
12794
diff
changeset
|
53 | GtkWidget *box, *gtk_label, *entry; |
|
704041197f4d
[gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents:
12794
diff
changeset
|
54 | const gchar *pref_name; |
|
704041197f4d
[gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents:
12794
diff
changeset
|
55 | const gchar *pref_label; |
| 15884 | 56 | PurpleStringFormatType format; |
| 8713 | 57 | |
| 15884 | 58 | pref_name = purple_plugin_pref_get_name(pref); |
| 59 | pref_label = purple_plugin_pref_get_label(pref); | |
| 60 | format = purple_plugin_pref_get_format_type(pref); | |
| 8713 | 61 | |
|
35378
5d9e2581005b
gtk-doc prep: *_get_type() functions are hidden as standard GType-returning funcs, so rename them.
Ankit Vani <a@nevitus.org>
parents:
34274
diff
changeset
|
62 | switch(purple_plugin_pref_get_pref_type(pref)) { |
| 15884 | 63 | case PURPLE_PLUGIN_PREF_CHOICE: |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15435
diff
changeset
|
64 | gtk_label = pidgin_prefs_dropdown_from_list(parent, pref_label, |
| 15884 | 65 | PURPLE_PREF_STRING, pref_name, |
| 66 | purple_plugin_pref_get_choices(pref)); | |
|
38007
3b971d2ecae1
Simplify gtk_label_set_[xy]align calls.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37990
diff
changeset
|
67 | gtk_label_set_xalign(GTK_LABEL(gtk_label), 0); |
| 8713 | 68 | |
| 69 | if(sg) | |
| 70 | gtk_size_group_add_widget(sg, gtk_label); | |
| 71 | ||
| 72 | break; | |
| 15884 | 73 | case PURPLE_PLUGIN_PREF_NONE: |
| 8713 | 74 | default: |
| 15884 | 75 | if (format == PURPLE_STRING_FORMAT_TYPE_NONE) |
|
25888
d0fdd378a635
Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
25457
diff
changeset
|
76 | { |
|
12712
21ea46d3dee9
[gaim-migrate @ 15056]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11986
diff
changeset
|
77 | entry = gtk_entry_new(); |
|
41531
2b86501d13fe
Replace gtk_entry_[gs]et_text with gtk_editable_[gs]et_text
Gary Kramlich <grim@reaperworld.com>
parents:
40886
diff
changeset
|
78 | gtk_editable_set_text(GTK_EDITABLE(entry), purple_prefs_get_string(pref_name)); |
|
12712
21ea46d3dee9
[gaim-migrate @ 15056]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11986
diff
changeset
|
79 | gtk_entry_set_max_length(GTK_ENTRY(entry), |
| 15884 | 80 | purple_plugin_pref_get_max_length(pref)); |
| 81 | if (purple_plugin_pref_get_masked(pref)) | |
|
12712
21ea46d3dee9
[gaim-migrate @ 15056]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11986
diff
changeset
|
82 | { |
|
21ea46d3dee9
[gaim-migrate @ 15056]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11986
diff
changeset
|
83 | gtk_entry_set_visibility(GTK_ENTRY(entry), FALSE); |
|
21ea46d3dee9
[gaim-migrate @ 15056]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11986
diff
changeset
|
84 | } |
|
21ea46d3dee9
[gaim-migrate @ 15056]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11986
diff
changeset
|
85 | g_signal_connect(G_OBJECT(entry), "changed", |
|
21ea46d3dee9
[gaim-migrate @ 15056]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11986
diff
changeset
|
86 | G_CALLBACK(entry_cb), |
|
21ea46d3dee9
[gaim-migrate @ 15056]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11986
diff
changeset
|
87 | (gpointer)pref_name); |
|
22139
f0f4a10114ea
An additional push from Gabriel's omgp.pidgin.add-widget-util branch.
Ethan Blanton <elb@pidgin.im>
parents:
20289
diff
changeset
|
88 | pidgin_add_widget_to_vbox(GTK_BOX(parent), pref_label, sg, entry, TRUE, NULL); |
|
12712
21ea46d3dee9
[gaim-migrate @ 15056]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11986
diff
changeset
|
89 | } |
|
21ea46d3dee9
[gaim-migrate @ 15056]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11986
diff
changeset
|
90 | else |
|
11986
21d2ab6421a7
[gaim-migrate @ 14279]
Mark Doliner <markdoliner@pidgin.im>
parents:
11243
diff
changeset
|
91 | { |
|
13107
704041197f4d
[gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents:
12794
diff
changeset
|
92 | GtkWidget *hbox; |
|
704041197f4d
[gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents:
12794
diff
changeset
|
93 | GtkWidget *spacer; |
|
39227
291b3c800668
Move GtkPluginPref to use Talkatu instead of Webkit
Gary Kramlich <grim@reaperworld.com>
parents:
38007
diff
changeset
|
94 | GtkWidget *editor; |
|
40484
7df95db772d8
Update a a few things that were changed in talkatu
Gary Kramlich <grim@reaperworld.com>
parents:
40439
diff
changeset
|
95 | GtkWidget *input; |
|
39227
291b3c800668
Move GtkPluginPref to use Talkatu instead of Webkit
Gary Kramlich <grim@reaperworld.com>
parents:
38007
diff
changeset
|
96 | GtkTextBuffer *buffer; |
|
42094
2707c81648a0
Update to talkatu 0.2.0
Gary Kramlich <grim@reaperworld.com>
parents:
41947
diff
changeset
|
97 | GSimpleActionGroup *ag = NULL; |
|
13107
704041197f4d
[gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents:
12794
diff
changeset
|
98 | |
|
40490
fb6e46c4c63c
Remove PIDGIN_HIG_* constants
Gary Kramlich <grim@reaperworld.com>
parents:
40484
diff
changeset
|
99 | box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 6); |
|
22139
f0f4a10114ea
An additional push from Gabriel's omgp.pidgin.add-widget-util branch.
Ethan Blanton <elb@pidgin.im>
parents:
20289
diff
changeset
|
100 | |
|
f0f4a10114ea
An additional push from Gabriel's omgp.pidgin.add-widget-util branch.
Ethan Blanton <elb@pidgin.im>
parents:
20289
diff
changeset
|
101 | gtk_widget_show(box); |
|
41533
bca738fd139b
Convert PidginPluginPref to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41531
diff
changeset
|
102 | gtk_box_append(GTK_BOX(parent), box); |
|
22139
f0f4a10114ea
An additional push from Gabriel's omgp.pidgin.add-widget-util branch.
Ethan Blanton <elb@pidgin.im>
parents:
20289
diff
changeset
|
103 | |
|
f0f4a10114ea
An additional push from Gabriel's omgp.pidgin.add-widget-util branch.
Ethan Blanton <elb@pidgin.im>
parents:
20289
diff
changeset
|
104 | gtk_label = gtk_label_new_with_mnemonic(pref_label); |
|
38007
3b971d2ecae1
Simplify gtk_label_set_[xy]align calls.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37990
diff
changeset
|
105 | gtk_label_set_xalign(GTK_LABEL(gtk_label), 0); |
|
22139
f0f4a10114ea
An additional push from Gabriel's omgp.pidgin.add-widget-util branch.
Ethan Blanton <elb@pidgin.im>
parents:
20289
diff
changeset
|
106 | gtk_widget_show(gtk_label); |
|
41533
bca738fd139b
Convert PidginPluginPref to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41531
diff
changeset
|
107 | gtk_box_append(GTK_BOX(box), gtk_label); |
|
22139
f0f4a10114ea
An additional push from Gabriel's omgp.pidgin.add-widget-util branch.
Ethan Blanton <elb@pidgin.im>
parents:
20289
diff
changeset
|
108 | |
|
f0f4a10114ea
An additional push from Gabriel's omgp.pidgin.add-widget-util branch.
Ethan Blanton <elb@pidgin.im>
parents:
20289
diff
changeset
|
109 | if(sg) |
|
f0f4a10114ea
An additional push from Gabriel's omgp.pidgin.add-widget-util branch.
Ethan Blanton <elb@pidgin.im>
parents:
20289
diff
changeset
|
110 | gtk_size_group_add_widget(sg, gtk_label); |
|
f0f4a10114ea
An additional push from Gabriel's omgp.pidgin.add-widget-util branch.
Ethan Blanton <elb@pidgin.im>
parents:
20289
diff
changeset
|
111 | |
|
40490
fb6e46c4c63c
Remove PIDGIN_HIG_* constants
Gary Kramlich <grim@reaperworld.com>
parents:
40484
diff
changeset
|
112 | hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6); |
|
41533
bca738fd139b
Convert PidginPluginPref to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41531
diff
changeset
|
113 | gtk_box_append(GTK_BOX(box), hbox); |
|
13107
704041197f4d
[gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents:
12794
diff
changeset
|
114 | gtk_widget_show(hbox); |
|
704041197f4d
[gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents:
12794
diff
changeset
|
115 | |
|
704041197f4d
[gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents:
12794
diff
changeset
|
116 | spacer = gtk_label_new(" "); |
|
41533
bca738fd139b
Convert PidginPluginPref to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41531
diff
changeset
|
117 | gtk_box_append(GTK_BOX(hbox), spacer); |
|
13107
704041197f4d
[gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents:
12794
diff
changeset
|
118 | gtk_widget_show(spacer); |
|
12712
21ea46d3dee9
[gaim-migrate @ 15056]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11986
diff
changeset
|
119 | |
|
39227
291b3c800668
Move GtkPluginPref to use Talkatu instead of Webkit
Gary Kramlich <grim@reaperworld.com>
parents:
38007
diff
changeset
|
120 | editor = talkatu_editor_new(); |
|
40484
7df95db772d8
Update a a few things that were changed in talkatu
Gary Kramlich <grim@reaperworld.com>
parents:
40439
diff
changeset
|
121 | input = talkatu_editor_get_input(TALKATU_EDITOR(editor)); |
|
39227
291b3c800668
Move GtkPluginPref to use Talkatu instead of Webkit
Gary Kramlich <grim@reaperworld.com>
parents:
38007
diff
changeset
|
122 | |
|
34274
9169710b5af5
Hide GtkWebViewToolbar stuff within the GtkWebView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33683
diff
changeset
|
123 | if ((format & PURPLE_STRING_FORMAT_TYPE_HTML) != 0) { |
|
42094
2707c81648a0
Update to talkatu 0.2.0
Gary Kramlich <grim@reaperworld.com>
parents:
41947
diff
changeset
|
124 | ag = talkatu_action_group_new(TALKATU_FORMAT_HTML); |
|
33252
abcaf61b570d
Disable formatting if the pluginpref doesn't allow HTML.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33199
diff
changeset
|
125 | } |
|
12712
21ea46d3dee9
[gaim-migrate @ 15056]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11986
diff
changeset
|
126 | |
|
42094
2707c81648a0
Update to talkatu 0.2.0
Gary Kramlich <grim@reaperworld.com>
parents:
41947
diff
changeset
|
127 | buffer = talkatu_buffer_new(ag); |
|
2707c81648a0
Update to talkatu 0.2.0
Gary Kramlich <grim@reaperworld.com>
parents:
41947
diff
changeset
|
128 | if(TALKATU_IS_ACTION_GROUP(ag)) { |
|
2707c81648a0
Update to talkatu 0.2.0
Gary Kramlich <grim@reaperworld.com>
parents:
41947
diff
changeset
|
129 | talkatu_action_group_set_buffer(TALKATU_ACTION_GROUP(ag), |
|
2707c81648a0
Update to talkatu 0.2.0
Gary Kramlich <grim@reaperworld.com>
parents:
41947
diff
changeset
|
130 | buffer); |
|
2707c81648a0
Update to talkatu 0.2.0
Gary Kramlich <grim@reaperworld.com>
parents:
41947
diff
changeset
|
131 | } |
|
2707c81648a0
Update to talkatu 0.2.0
Gary Kramlich <grim@reaperworld.com>
parents:
41947
diff
changeset
|
132 | g_clear_object(&ag); |
|
2707c81648a0
Update to talkatu 0.2.0
Gary Kramlich <grim@reaperworld.com>
parents:
41947
diff
changeset
|
133 | |
|
40484
7df95db772d8
Update a a few things that were changed in talkatu
Gary Kramlich <grim@reaperworld.com>
parents:
40439
diff
changeset
|
134 | gtk_text_view_set_buffer(GTK_TEXT_VIEW(input), buffer); |
|
39227
291b3c800668
Move GtkPluginPref to use Talkatu instead of Webkit
Gary Kramlich <grim@reaperworld.com>
parents:
38007
diff
changeset
|
135 | |
|
33199
e82a9f0fa7ec
Convert plugin prefs to GtkWebView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33170
diff
changeset
|
136 | if (format & PURPLE_STRING_FORMAT_TYPE_MULTILINE) { |
|
e82a9f0fa7ec
Convert plugin prefs to GtkWebView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33170
diff
changeset
|
137 | gchar *tmp = purple_strreplace(purple_prefs_get_string(pref_name), "\n", "<br>"); |
|
39227
291b3c800668
Move GtkPluginPref to use Talkatu instead of Webkit
Gary Kramlich <grim@reaperworld.com>
parents:
38007
diff
changeset
|
138 | talkatu_markup_set_html(TALKATU_BUFFER(buffer), tmp, -1); |
|
33199
e82a9f0fa7ec
Convert plugin prefs to GtkWebView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33170
diff
changeset
|
139 | g_free(tmp); |
|
39227
291b3c800668
Move GtkPluginPref to use Talkatu instead of Webkit
Gary Kramlich <grim@reaperworld.com>
parents:
38007
diff
changeset
|
140 | } else { |
|
291b3c800668
Move GtkPluginPref to use Talkatu instead of Webkit
Gary Kramlich <grim@reaperworld.com>
parents:
38007
diff
changeset
|
141 | talkatu_markup_set_html(TALKATU_BUFFER(buffer), purple_prefs_get_string(pref_name), -1); |
|
291b3c800668
Move GtkPluginPref to use Talkatu instead of Webkit
Gary Kramlich <grim@reaperworld.com>
parents:
38007
diff
changeset
|
142 | } |
|
291b3c800668
Move GtkPluginPref to use Talkatu instead of Webkit
Gary Kramlich <grim@reaperworld.com>
parents:
38007
diff
changeset
|
143 | |
|
40484
7df95db772d8
Update a a few things that were changed in talkatu
Gary Kramlich <grim@reaperworld.com>
parents:
40439
diff
changeset
|
144 | gtk_label_set_mnemonic_widget(GTK_LABEL(gtk_label), input); |
|
39229
f2c79c2fc99f
Correct a signal connection and comment out a broken one with a warning to fix it when talkatu has a solution for it
Gary Kramlich <grim@reaperworld.com>
parents:
39228
diff
changeset
|
145 | g_object_set_data(G_OBJECT(buffer), "pref-key", (gpointer)pref_name); |
|
f2c79c2fc99f
Correct a signal connection and comment out a broken one with a warning to fix it when talkatu has a solution for it
Gary Kramlich <grim@reaperworld.com>
parents:
39228
diff
changeset
|
146 | g_signal_connect(G_OBJECT(buffer), "changed", |
|
39227
291b3c800668
Move GtkPluginPref to use Talkatu instead of Webkit
Gary Kramlich <grim@reaperworld.com>
parents:
38007
diff
changeset
|
147 | G_CALLBACK(multiline_cb), NULL); |
|
39229
f2c79c2fc99f
Correct a signal connection and comment out a broken one with a warning to fix it when talkatu has a solution for it
Gary Kramlich <grim@reaperworld.com>
parents:
39228
diff
changeset
|
148 | #warning fix this when talkatu has a solution |
|
f2c79c2fc99f
Correct a signal connection and comment out a broken one with a warning to fix it when talkatu has a solution for it
Gary Kramlich <grim@reaperworld.com>
parents:
39228
diff
changeset
|
149 | /* |
|
39227
291b3c800668
Move GtkPluginPref to use Talkatu instead of Webkit
Gary Kramlich <grim@reaperworld.com>
parents:
38007
diff
changeset
|
150 | g_signal_connect(G_OBJECT(view), "format-toggled", |
|
291b3c800668
Move GtkPluginPref to use Talkatu instead of Webkit
Gary Kramlich <grim@reaperworld.com>
parents:
38007
diff
changeset
|
151 | G_CALLBACK(multiline_cb), NULL); |
|
39229
f2c79c2fc99f
Correct a signal connection and comment out a broken one with a warning to fix it when talkatu has a solution for it
Gary Kramlich <grim@reaperworld.com>
parents:
39228
diff
changeset
|
152 | */ |
|
41533
bca738fd139b
Convert PidginPluginPref to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41531
diff
changeset
|
153 | gtk_box_append(GTK_BOX(hbox), editor); |
|
bca738fd139b
Convert PidginPluginPref to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41531
diff
changeset
|
154 | gtk_widget_set_hexpand(editor, TRUE); |
|
11986
21d2ab6421a7
[gaim-migrate @ 14279]
Mark Doliner <markdoliner@pidgin.im>
parents:
11243
diff
changeset
|
155 | } |
| 8713 | 156 | |
| 157 | break; | |
| 158 | } | |
| 159 | } | |
| 160 | ||
| 161 | static void | |
| 15884 | 162 | make_int_pref(GtkWidget *parent, PurplePluginPref *pref, GtkSizeGroup *sg) { |
| 8713 | 163 | GtkWidget *gtk_label; |
|
13107
704041197f4d
[gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents:
12794
diff
changeset
|
164 | const gchar *pref_name; |
|
704041197f4d
[gaim-migrate @ 15468]
Richard Laager <rlaager@pidgin.im>
parents:
12794
diff
changeset
|
165 | const gchar *pref_label; |
| 8713 | 166 | gint max, min; |
| 167 | ||
| 15884 | 168 | pref_name = purple_plugin_pref_get_name(pref); |
| 169 | pref_label = purple_plugin_pref_get_label(pref); | |
| 8713 | 170 | |
|
35378
5d9e2581005b
gtk-doc prep: *_get_type() functions are hidden as standard GType-returning funcs, so rename them.
Ankit Vani <a@nevitus.org>
parents:
34274
diff
changeset
|
171 | switch(purple_plugin_pref_get_pref_type(pref)) { |
| 15884 | 172 | case PURPLE_PLUGIN_PREF_CHOICE: |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15435
diff
changeset
|
173 | gtk_label = pidgin_prefs_dropdown_from_list(parent, pref_label, |
| 15884 | 174 | PURPLE_PREF_INT, pref_name, purple_plugin_pref_get_choices(pref)); |
|
38007
3b971d2ecae1
Simplify gtk_label_set_[xy]align calls.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37990
diff
changeset
|
175 | gtk_label_set_xalign(GTK_LABEL(gtk_label), 0); |
| 8713 | 176 | |
| 177 | if(sg) | |
| 178 | gtk_size_group_add_widget(sg, gtk_label); | |
| 179 | ||
| 180 | break; | |
| 15884 | 181 | case PURPLE_PLUGIN_PREF_NONE: |
| 8713 | 182 | default: |
| 15884 | 183 | purple_plugin_pref_get_bounds(pref, &min, &max); |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15435
diff
changeset
|
184 | pidgin_prefs_labeled_spin_button(parent, pref_label, |
|
9529
377b70382202
[gaim-migrate @ 10356]
Christopher O'Brien <siege@pidgin.im>
parents:
8713
diff
changeset
|
185 | pref_name, min, max, sg); |
| 8713 | 186 | break; |
| 187 | } | |
| 188 | } | |
| 189 | ||
|
9529
377b70382202
[gaim-migrate @ 10356]
Christopher O'Brien <siege@pidgin.im>
parents:
8713
diff
changeset
|
190 | |
|
377b70382202
[gaim-migrate @ 10356]
Christopher O'Brien <siege@pidgin.im>
parents:
8713
diff
changeset
|
191 | static void |
| 15884 | 192 | make_info_pref(GtkWidget *parent, PurplePluginPref *pref) { |
| 193 | GtkWidget *gtk_label = gtk_label_new(purple_plugin_pref_get_label(pref)); | |
|
38007
3b971d2ecae1
Simplify gtk_label_set_[xy]align calls.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37990
diff
changeset
|
194 | gtk_label_set_xalign(GTK_LABEL(gtk_label), 0); |
|
3b971d2ecae1
Simplify gtk_label_set_[xy]align calls.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37990
diff
changeset
|
195 | gtk_label_set_yalign(GTK_LABEL(gtk_label), 0); |
|
41533
bca738fd139b
Convert PidginPluginPref to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41531
diff
changeset
|
196 | gtk_label_set_wrap(GTK_LABEL(gtk_label), TRUE); |
|
bca738fd139b
Convert PidginPluginPref to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41531
diff
changeset
|
197 | gtk_box_append(GTK_BOX(parent), gtk_label); |
|
9529
377b70382202
[gaim-migrate @ 10356]
Christopher O'Brien <siege@pidgin.im>
parents:
8713
diff
changeset
|
198 | gtk_widget_show(gtk_label); |
|
377b70382202
[gaim-migrate @ 10356]
Christopher O'Brien <siege@pidgin.im>
parents:
8713
diff
changeset
|
199 | } |
|
377b70382202
[gaim-migrate @ 10356]
Christopher O'Brien <siege@pidgin.im>
parents:
8713
diff
changeset
|
200 | |
|
377b70382202
[gaim-migrate @ 10356]
Christopher O'Brien <siege@pidgin.im>
parents:
8713
diff
changeset
|
201 | |
| 8713 | 202 | GtkWidget * |
| 15884 | 203 | pidgin_plugin_pref_create_frame(PurplePluginPrefFrame *frame) { |
| 8713 | 204 | GtkWidget *ret, *parent; |
| 205 | GtkSizeGroup *sg; | |
| 206 | GList *pp; | |
| 207 | ||
| 208 | g_return_val_if_fail(frame, NULL); | |
| 209 | ||
| 210 | sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); | |
| 211 | ||
|
35527
707c3c2b2c8a
Fix more gtk_[hv]box_new gtk3 deprecation warnings
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents:
35500
diff
changeset
|
212 | parent = ret = gtk_box_new(GTK_ORIENTATION_VERTICAL, 16); |
| 8713 | 213 | gtk_widget_show(ret); |
| 214 | ||
| 15884 | 215 | for(pp = purple_plugin_pref_frame_get_prefs(frame); |
| 8713 | 216 | pp != NULL; |
| 217 | pp = pp->next) | |
| 218 | { | |
| 15884 | 219 | PurplePluginPref *pref = (PurplePluginPref *)pp->data; |
| 8713 | 220 | |
| 15884 | 221 | const char *name = purple_plugin_pref_get_name(pref); |
| 222 | const char *label = purple_plugin_pref_get_label(pref); | |
| 8713 | 223 | |
| 224 | if(name == NULL) { | |
| 225 | if(label == NULL) | |
| 226 | continue; | |
|
9529
377b70382202
[gaim-migrate @ 10356]
Christopher O'Brien <siege@pidgin.im>
parents:
8713
diff
changeset
|
227 | |
|
35378
5d9e2581005b
gtk-doc prep: *_get_type() functions are hidden as standard GType-returning funcs, so rename them.
Ankit Vani <a@nevitus.org>
parents:
34274
diff
changeset
|
228 | if(purple_plugin_pref_get_pref_type(pref) == PURPLE_PLUGIN_PREF_INFO) { |
|
9529
377b70382202
[gaim-migrate @ 10356]
Christopher O'Brien <siege@pidgin.im>
parents:
8713
diff
changeset
|
229 | make_info_pref(parent, pref); |
|
377b70382202
[gaim-migrate @ 10356]
Christopher O'Brien <siege@pidgin.im>
parents:
8713
diff
changeset
|
230 | } else { |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15435
diff
changeset
|
231 | parent = pidgin_make_frame(ret, label); |
|
9529
377b70382202
[gaim-migrate @ 10356]
Christopher O'Brien <siege@pidgin.im>
parents:
8713
diff
changeset
|
232 | gtk_widget_show(parent); |
|
377b70382202
[gaim-migrate @ 10356]
Christopher O'Brien <siege@pidgin.im>
parents:
8713
diff
changeset
|
233 | } |
| 8713 | 234 | |
| 235 | continue; | |
| 236 | } | |
| 237 | ||
|
35378
5d9e2581005b
gtk-doc prep: *_get_type() functions are hidden as standard GType-returning funcs, so rename them.
Ankit Vani <a@nevitus.org>
parents:
34274
diff
changeset
|
238 | switch(purple_prefs_get_pref_type(name)) { |
| 15884 | 239 | case PURPLE_PREF_BOOLEAN: |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15435
diff
changeset
|
240 | pidgin_prefs_checkbox(label, name, parent); |
| 8713 | 241 | break; |
| 15884 | 242 | case PURPLE_PREF_INT: |
| 8713 | 243 | make_int_pref(parent, pref, sg); |
| 244 | break; | |
| 15884 | 245 | case PURPLE_PREF_STRING: |
| 8713 | 246 | make_string_pref(parent, pref, sg); |
| 247 | break; | |
| 248 | default: | |
| 249 | break; | |
| 250 | } | |
| 251 | } | |
| 252 | ||
|
20289
5c844288fbec
applied changes from 32f31e981f0618a4167aa98bcc22c2dab13d1550
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
20147
diff
changeset
|
253 | g_object_unref(sg); |
|
5c844288fbec
applied changes from 32f31e981f0618a4167aa98bcc22c2dab13d1550
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
20147
diff
changeset
|
254 | |
| 8713 | 255 | return ret; |
| 256 | } |