pidgin/pidgindebug.c

Thu, 23 Mar 2023 23:11:59 -0500

author
Elliott Sales de Andrade <quantum.analyst@gmail.com>
date
Thu, 23 Mar 2023 23:11:59 -0500
changeset 42184
4e1bf25f5575
parent 42182
3fc2d2b7b7a8
child 42352
1c53950f9052
permissions
-rw-r--r--

Fix several leaks in tests

All of these are specific to tests, not the library code.

For the moment, `protocol_xfer` still leaks connections (and anything they hold on to) because it is very difficult to disentangle them from the connection manager in the partially implemented state they are in.

This fixes leaks of options in the account option test (these two leaks occur for every test since they all leak the option):
```
61 (48 direct, 13 indirect) bytes in 1 blocks are definitely lost in loss record 133 of 276
at 0x4848464: calloc (vg_replace_malloc.c:1340)
by 0x49F75F0: g_malloc0 (gmem.c:163)
by 0x48C3B2E: purple_account_option_new (purpleaccountoption.c:78)
by 0x4014AF: test_purple_account_option_copy_int (test_account_option.c:67)
by 0x4A1CC7D: UnknownInlinedFun (gtestutils.c:2933)
by 0x4A1CC7D: g_test_run_suite_internal (gtestutils.c:3021)
by 0x4A1C9E4: g_test_run_suite_internal (gtestutils.c:3038)
by 0x4A1C9E4: g_test_run_suite_internal (gtestutils.c:3038)
by 0x4A1D181: g_test_run_suite (gtestutils.c:3115)
by 0x4A156EC: UnknownInlinedFun (gtestutils.c:2234)
by 0x4A156EC: g_test_run (gtestutils.c:2221)
by 0x401721: main (test_account_option.c:157)

61 (48 direct, 13 indirect) bytes in 1 blocks are definitely lost in loss record 134 of 276
at 0x4848464: calloc (vg_replace_malloc.c:1340)
by 0x49F75F0: g_malloc0 (gmem.c:163)
by 0x48C3BC7: purple_account_option_copy (purpleaccountoption.c:93)
by 0x4014BF: test_purple_account_option_copy_int (test_account_option.c:68)
by 0x4A1CC7D: UnknownInlinedFun (gtestutils.c:2933)
by 0x4A1CC7D: g_test_run_suite_internal (gtestutils.c:3021)
by 0x4A1C9E4: g_test_run_suite_internal (gtestutils.c:3038)
by 0x4A1C9E4: g_test_run_suite_internal (gtestutils.c:3038)
by 0x4A1D181: g_test_run_suite (gtestutils.c:3115)
by 0x4A156EC: UnknownInlinedFun (gtestutils.c:2234)
by 0x4A156EC: g_test_run (gtestutils.c:2221)
by 0x401721: main (test_account_option.c:157)
```
leaks in the credential manager test (times 3 for read/write/cancel tests):
```
69 (16 direct, 53 indirect) bytes in 1 blocks are definitely lost in loss record 2,427 of 3,503
at 0x484386F: malloc (vg_replace_malloc.c:393)
by 0x4A58168: g_malloc (gmem.c:130)
by 0x4A6FAB5: g_slice_alloc (gslice.c:1074)
by 0x4A700EC: g_slice_alloc0 (gslice.c:1100)
by 0x4A3BECB: g_error_allocate (gerror.c:710)
by 0x4A3C93F: UnknownInlinedFun (gerror.c:724)
by 0x4A3C93F: g_error_new_valist (gerror.c:766)
by 0x4BEE558: g_task_return_new_error (gtask.c:1941)
by 0x48D82C0: purple_credential_manager_read_password_async (purplecredentialmanager.c:492)
by 0x403634: test_purple_credential_manager_no_provider_read_password_idle (test_credential_manager.c:329)
by 0x4A4ECB1: g_idle_dispatch (gmain.c:6124)
by 0x4A4FCBE: UnknownInlinedFun (gmain.c:3444)
by 0x4A4FCBE: g_main_context_dispatch (gmain.c:4162)
by 0x4AA5597: g_main_context_iterate.constprop.0 (gmain.c:4238)
by 0x4A4F28E: g_main_loop_run (gmain.c:4438)
by 0x40369F: test_purple_credential_manager_no_provider_read_password_async (test_credential_manager.c:345)
by 0x4A7DC7D: UnknownInlinedFun (gtestutils.c:2933)
by 0x4A7DC7D: g_test_run_suite_internal (gtestutils.c:3021)
by 0x4A7D9E4: g_test_run_suite_internal (gtestutils.c:3038)
by 0x4A7D9E4: g_test_run_suite_internal (gtestutils.c:3038)
by 0x4A7E181: g_test_run_suite (gtestutils.c:3115)
by 0x4A766EC: UnknownInlinedFun (gtestutils.c:2234)
by 0x4A766EC: g_test_run (gtestutils.c:2221)
by 0x4048F6: main (test_credential_manager.c:695)
```
a leak in the image test:
```
161 bytes in 1 blocks are definitely lost in loss record 260 of 274
at 0x484386F: malloc (vg_replace_malloc.c:393)
by 0x4A55363: g_try_malloc (gmem.c:286)
by 0x4A3D630: UnknownInlinedFun (gfileutils.c:819)
by 0x4A3D630: UnknownInlinedFun (gfileutils.c:924)
by 0x4A3D630: g_file_get_contents (gfileutils.c:1027)
by 0x401890: test_image_new_from_file (test_image.c:144)
by 0x4A7DC7D: UnknownInlinedFun (gtestutils.c:2933)
by 0x4A7DC7D: g_test_run_suite_internal (gtestutils.c:3021)
by 0x4A7D9E4: g_test_run_suite_internal (gtestutils.c:3038)
by 0x4A7E181: g_test_run_suite (gtestutils.c:3115)
by 0x4A766EC: UnknownInlinedFun (gtestutils.c:2234)
by 0x4A766EC: g_test_run (gtestutils.c:2221)
by 0x40195D: main (test_image.c:172)
```
a leak in queued output stream test:
```
72 (40 direct, 32 indirect) bytes in 1 blocks are definitely lost in loss record 219 of 396
at 0x49D51EF: g_type_create_instance (gtype.c:1909)
by 0x49BAC1F: g_object_new_internal (gobject.c:2228)
by 0x49BC247: g_object_new_with_properties (gobject.c:2391)
by 0x49BCFF0: g_object_new (gobject.c:2037)
by 0x402003: test_queued_output_stream_push_bytes_async_error (test_queued_output_stream.c:219)
by 0x4A7DC7D: UnknownInlinedFun (gtestutils.c:2933)
by 0x4A7DC7D: g_test_run_suite_internal (gtestutils.c:3021)
by 0x4A7D9E4: g_test_run_suite_internal (gtestutils.c:3038)
by 0x4A7E181: g_test_run_suite (gtestutils.c:3115)
by 0x4A766EC: UnknownInlinedFun (gtestutils.c:2234)
by 0x4A766EC: g_test_run (gtestutils.c:2221)
by 0x402429: main (test_queued_output_stream.c:280)
```
and protocol xfer tests (times 3 for each test that creates a test protocol object):
```
112 (48 direct, 64 indirect) bytes in 1 blocks are definitely lost in loss record 3,430 of 3,698
at 0x49D51EF: g_type_create_instance (gtype.c:1909)
by 0x49BAC1F: g_object_new_internal (gobject.c:2228)
by 0x49BC247: g_object_new_with_properties (gobject.c:2391)
by 0x49BCFF0: g_object_new (gobject.c:2037)
by 0x40291C: test_purple_protocol_xfer_send_file_func (test_protocol_xfer.c:146)
by 0x4A7DC7D: UnknownInlinedFun (gtestutils.c:2933)
by 0x4A7DC7D: g_test_run_suite_internal (gtestutils.c:3021)
by 0x4A7D9E4: g_test_run_suite_internal (gtestutils.c:3038)
by 0x4A7E181: g_test_run_suite (gtestutils.c:3115)
by 0x4A766EC: UnknownInlinedFun (gtestutils.c:2234)
by 0x4A766EC: g_test_run (gtestutils.c:2221)
by 0x402B64: main (test_protocol_xfer.c:195)
```
and util tests (times 3 for each call to `purple_text_strip_mnemonic` in the test):
```
5 bytes in 1 blocks are definitely lost in loss record 5 of 247
at 0x484386F: malloc (vg_replace_malloc.c:393)
by 0x49F7168: g_malloc (gmem.c:130)
by 0x491975B: purple_text_strip_mnemonic (util.c:895)
by 0x4015B0: test_util_text_strip_mnemonic (test_util.c:49)
by 0x4A1CC7D: UnknownInlinedFun (gtestutils.c:2933)
by 0x4A1CC7D: g_test_run_suite_internal (gtestutils.c:3021)
by 0x4A1C9E4: g_test_run_suite_internal (gtestutils.c:3038)
by 0x4A1C9E4: g_test_run_suite_internal (gtestutils.c:3038)
by 0x4A1D181: g_test_run_suite (gtestutils.c:3115)
by 0x4A156EC: UnknownInlinedFun (gtestutils.c:2234)
by 0x4A156EC: g_test_run (gtestutils.c:2221)
by 0x401901: main (test_util.c:224)
```
and these leaks in any test that initializes the test UI:
```
4,104 bytes in 1 blocks are possibly lost in loss record 3,451 of 3,457
at 0x484386F: malloc (vg_replace_malloc.c:393)
by 0x5235B67: sqlite3MemMalloc.lto_priv.0 (sqlite3.c:25493)
by 0x5232797: UnknownInlinedFun (sqlite3.c:29181)
by 0x5232797: UnknownInlinedFun (sqlite3.c:29227)
by 0x5232797: sqlite3Malloc.lto_priv.0 (sqlite3.c:29221)
by 0x523BD8B: pcache1Alloc.lto_priv.0 (sqlite3.c:53546)
by 0x5249A8B: UnknownInlinedFun (sqlite3.c:53675)
by 0x5249A8B: allocateTempSpace (sqlite3.c:70848)
by 0x52625A6: sqlite3VdbeExec.lto_priv.0 (sqlite3.c:93857)
by 0x525CBEE: UnknownInlinedFun (sqlite3.c:87995)
by 0x525CBEE: UnknownInlinedFun (sqlite3.c:88056)
by 0x525CBEE: sqlite3_step (sqlite3.c:88045)
by 0x529B324: sqlite3_exec (sqlite3.c:131002)
by 0x48FD558: purple_sqlite3_run_migration (purplesqlite3.c:37)
by 0x48FDBB4: purple_sqlite3_run_migrations_from_resources (purplesqlite3.c:195)
by 0x48FDED9: purple_sqlite_history_adapter_run_migrations (purplesqlitehistoryadapter.c:69)
by 0x48FE7F0: purple_sqlite_history_adapter_activate (purplesqlitehistoryadapter.c:287)
by 0x48DB656: purple_history_adapter_activate (purplehistoryadapter.c:181)
by 0x48DC9BC: purple_history_manager_set_active (purplehistorymanager.c:308)
by 0x402BA8: test_ui_init_history (test_ui.c:132)
by 0x402C80: test_ui_purple_init (test_ui.c:167)
by 0x4027BB: main (test_contact.c:88)

4,368 bytes in 1 blocks are possibly lost in loss record 3,453 of 3,457
at 0x484386F: malloc (vg_replace_malloc.c:393)
by 0x5235B67: sqlite3MemMalloc.lto_priv.0 (sqlite3.c:25493)
by 0x5232797: UnknownInlinedFun (sqlite3.c:29181)
by 0x5232797: UnknownInlinedFun (sqlite3.c:29227)
by 0x5232797: sqlite3Malloc.lto_priv.0 (sqlite3.c:29221)
by 0x523BD8B: pcache1Alloc.lto_priv.0 (sqlite3.c:53546)
by 0x5240077: UnknownInlinedFun (sqlite3.c:53634)
by 0x5240077: pcache1FetchStage2 (sqlite3.c:54104)
by 0x5243E9C: UnknownInlinedFun (sqlite3.c:52671)
by 0x5243E9C: getPageNormal.lto_priv.0 (sqlite3.c:60628)
by 0x524A510: UnknownInlinedFun (sqlite3.c:60805)
by 0x524A510: btreeGetPage.lto_priv.0 (sqlite3.c:70289)
by 0x524C2F6: UnknownInlinedFun (sqlite3.c:71257)
by 0x524C2F6: sqlite3BtreeBeginTrans.lto_priv.0 (sqlite3.c:71647)
by 0x5266B3A: sqlite3VdbeExec.lto_priv.0 (sqlite3.c:93532)
by 0x525CBEE: UnknownInlinedFun (sqlite3.c:87995)
by 0x525CBEE: UnknownInlinedFun (sqlite3.c:88056)
by 0x525CBEE: sqlite3_step (sqlite3.c:88045)
by 0x48FD715: purple_sqlite3_get_schema_version (purplesqlite3.c:79)
by 0x48FD9DD: purple_sqlite3_run_migrations_from_resources (purplesqlite3.c:146)
by 0x48FDED9: purple_sqlite_history_adapter_run_migrations (purplesqlitehistoryadapter.c:69)
by 0x48FE7F0: purple_sqlite_history_adapter_activate (purplesqlitehistoryadapter.c:287)
by 0x48DB656: purple_history_adapter_activate (purplehistoryadapter.c:181)
by 0x48DC9BC: purple_history_manager_set_active (purplehistorymanager.c:308)
by 0x402BA8: test_ui_init_history (test_ui.c:132)
by 0x402C80: test_ui_purple_init (test_ui.c:167)
by 0x4027BB: main (test_contact.c:88)

4,368 bytes in 1 blocks are possibly lost in loss record 3,454 of 3,457
at 0x484386F: malloc (vg_replace_malloc.c:393)
by 0x5235B67: sqlite3MemMalloc.lto_priv.0 (sqlite3.c:25493)
by 0x5232797: UnknownInlinedFun (sqlite3.c:29181)
by 0x5232797: UnknownInlinedFun (sqlite3.c:29227)
by 0x5232797: sqlite3Malloc.lto_priv.0 (sqlite3.c:29221)
by 0x523BD8B: pcache1Alloc.lto_priv.0 (sqlite3.c:53546)
by 0x5240077: UnknownInlinedFun (sqlite3.c:53634)
by 0x5240077: pcache1FetchStage2 (sqlite3.c:54104)
by 0x5243E9C: UnknownInlinedFun (sqlite3.c:52671)
by 0x5243E9C: getPageNormal.lto_priv.0 (sqlite3.c:60628)
by 0x52499BC: UnknownInlinedFun (sqlite3.c:60805)
by 0x52499BC: UnknownInlinedFun (sqlite3.c:70289)
by 0x52499BC: btreeGetUnusedPage (sqlite3.c:70432)
by 0x524F504: allocateBtreePage.lto_priv.0 (sqlite3.c:74604)
by 0x5256209: btreeCreateTable.lto_priv.0 (sqlite3.c:77830)
by 0x5265EB2: UnknownInlinedFun (sqlite3.c:77849)
by 0x5265EB2: sqlite3VdbeExec.lto_priv.0 (sqlite3.c:96382)
by 0x525CBEE: UnknownInlinedFun (sqlite3.c:87995)
by 0x525CBEE: UnknownInlinedFun (sqlite3.c:88056)
by 0x525CBEE: sqlite3_step (sqlite3.c:88045)
by 0x529B324: sqlite3_exec (sqlite3.c:131002)
by 0x48FD558: purple_sqlite3_run_migration (purplesqlite3.c:37)
by 0x48FDBB4: purple_sqlite3_run_migrations_from_resources (purplesqlite3.c:195)
by 0x48FDED9: purple_sqlite_history_adapter_run_migrations (purplesqlitehistoryadapter.c:69)
by 0x48FE7F0: purple_sqlite_history_adapter_activate (purplesqlitehistoryadapter.c:287)
by 0x48DB656: purple_history_adapter_activate (purplehistoryadapter.c:181)
by 0x48DC9BC: purple_history_manager_set_active (purplehistorymanager.c:308)
by 0x402BA8: test_ui_init_history (test_ui.c:132)
by 0x402C80: test_ui_purple_init (test_ui.c:167)
by 0x4027BB: main (test_contact.c:88)
```

Testing Done:
Ran tests in valgrind, and all above leaks were gone except for noted `protocol_xfer` issues, and a bunch of leaks of the `PurpleBuddy`-`PurpleContact` compatibility bindings, which will go away in their entirety eventually.

Reviewed at https://reviews.imfreedom.org/r/2385/

39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
1 /* pidgin
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
2 *
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
3 * Pidgin is the legal property of its developers, whose names are too numerous
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
4 * to list here. Please refer to the COPYRIGHT file distributed with this
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
5 * source distribution.
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
6 *
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
7 * This program is free software; you can redistribute it and/or modify
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
8 * it under the terms of the GNU General Public License as published by
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
9 * the Free Software Foundation; either version 2 of the License, or
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
10 * (at your option) any later version.
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
11 *
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
12 * This program is distributed in the hope that it will be useful,
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
15 * GNU General Public License for more details.
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
16 *
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
17 * You should have received a copy of the GNU General Public License
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
18 * along with this program; if not, write to the Free Software
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
20 */
40439
e9838d634d5e Make sure that internal.h can only be included by libpurple and split out some pieces to purpleprivate.h
Gary Kramlich <grim@reaperworld.com>
parents: 40360
diff changeset
21
e9838d634d5e Make sure that internal.h can only be included by libpurple and split out some pieces to purpleprivate.h
Gary Kramlich <grim@reaperworld.com>
parents: 40360
diff changeset
22 #ifdef HAVE_CONFIG_H
e9838d634d5e Make sure that internal.h can only be included by libpurple and split out some pieces to purpleprivate.h
Gary Kramlich <grim@reaperworld.com>
parents: 40360
diff changeset
23 # include <config.h>
e9838d634d5e Make sure that internal.h can only be included by libpurple and split out some pieces to purpleprivate.h
Gary Kramlich <grim@reaperworld.com>
parents: 40360
diff changeset
24 #endif
e9838d634d5e Make sure that internal.h can only be included by libpurple and split out some pieces to purpleprivate.h
Gary Kramlich <grim@reaperworld.com>
parents: 40360
diff changeset
25
e9838d634d5e Make sure that internal.h can only be included by libpurple and split out some pieces to purpleprivate.h
Gary Kramlich <grim@reaperworld.com>
parents: 40360
diff changeset
26 #include <glib/gi18n-lib.h>
e9838d634d5e Make sure that internal.h can only be included by libpurple and split out some pieces to purpleprivate.h
Gary Kramlich <grim@reaperworld.com>
parents: 40360
diff changeset
27 #include <glib/gstdio.h>
e9838d634d5e Make sure that internal.h can only be included by libpurple and split out some pieces to purpleprivate.h
Gary Kramlich <grim@reaperworld.com>
parents: 40360
diff changeset
28
40496
6941fece679b phase2 of pidgin.h: move existing file to pidgincore.h
Gary Kramlich <grim@reaperworld.com>
parents: 40439
diff changeset
29 #include <gtk/gtk.h>
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
30
40360
e21f3bbcc2a5 Update all of the pidgin code to include purple.h
Gary Kramlich <grim@reaperworld.com>
parents: 40197
diff changeset
31 #include <purple.h>
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
32
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
33 #include "gtkdialogs.h"
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
34 #include "gtkutils.h"
41748
fb13b6986266 Make the debug window transient for whatever window created it.
Gary Kramlich <grim@reaperworld.com>
parents: 41642
diff changeset
35 #include "pidginapplication.h"
40496
6941fece679b phase2 of pidgin.h: move existing file to pidgincore.h
Gary Kramlich <grim@reaperworld.com>
parents: 40439
diff changeset
36 #include "pidgincore.h"
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
37 #include "pidgindebug.h"
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
38
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
39 #include <gdk/gdkkeysyms.h>
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
40
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
41
39156
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
42 struct _PidginDebugWindow {
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
43 GtkWindow parent;
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
44
39157
5f00c06934cc Re-add autoscroll to debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39156
diff changeset
45 GtkWidget *textview;
39154
ac28e667a064 Convert debug window to GtkTextView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39153
diff changeset
46 GtkTextBuffer *buffer;
39160
709de61bd2d3 debugwin: Also filter new messages as they come in.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39159
diff changeset
47 GtkTextMark *start_mark;
39157
5f00c06934cc Re-add autoscroll to debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39156
diff changeset
48 GtkTextMark *end_mark;
39154
ac28e667a064 Convert debug window to GtkTextView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39153
diff changeset
49 struct {
ac28e667a064 Convert debug window to GtkTextView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39153
diff changeset
50 GtkTextTag *level[PURPLE_DEBUG_FATAL + 1];
ac28e667a064 Convert debug window to GtkTextView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39153
diff changeset
51 GtkTextTag *category;
39159
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
52 GtkTextTag *filtered_invisible;
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
53 GtkTextTag *filtered_visible;
39154
ac28e667a064 Convert debug window to GtkTextView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39153
diff changeset
54 GtkTextTag *match;
39159
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
55 GtkTextTag *paused;
39154
ac28e667a064 Convert debug window to GtkTextView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39153
diff changeset
56 } tags;
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
57 GtkWidget *filter;
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
58 GtkWidget *expression;
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
59 GtkWidget *filterlevel;
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
60
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
61 gboolean paused;
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
62
39163
c38b26076992 debugwin: Make filter options into popover when available.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39162
diff changeset
63 GtkWidget *popover;
39674
166671cecb8c Merge debug window Glade files.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39673
diff changeset
64 GtkWidget *popover_invert;
166671cecb8c Merge debug window Glade files.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39673
diff changeset
65 GtkWidget *popover_highlight;
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
66 gboolean invert;
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
67 gboolean highlight;
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
68 GRegex *regex;
39156
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
69 };
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
70
41267
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
71 typedef struct {
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
72 GDateTime *timestamp;
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
73 PurpleDebugLevel level;
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
74 gchar *domain;
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
75 gchar *message;
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
76 } PidginDebugMessage;
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
77
41127
cd297cfc56f3 Move debug command-line option to the UIs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41120
diff changeset
78 static gboolean debug_print_enabled = FALSE;
39156
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
79 static PidginDebugWindow *debug_win = NULL;
42109
27c84f0b3258 Fix leaks in debug window
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41947
diff changeset
80 static guint pref_callback_id = 0;
41117
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
81 static guint debug_enabled_timer = 0;
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
82
39156
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
83 G_DEFINE_TYPE(PidginDebugWindow, pidgin_debug_window, GTK_TYPE_WINDOW);
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
84
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
85 static gboolean
41540
cb35b9603c41 Convert debug window to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
86 save_default_size_cb(GObject *gobject, G_GNUC_UNUSED GParamSpec *pspec,
cb35b9603c41 Convert debug window to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
87 G_GNUC_UNUSED gpointer data)
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
88 {
41540
cb35b9603c41 Convert debug window to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
89 if (gtk_widget_get_visible(GTK_WIDGET(gobject))) {
cb35b9603c41 Convert debug window to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
90 gint width, height;
cb35b9603c41 Convert debug window to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
91 gtk_window_get_default_size(GTK_WINDOW(gobject), &width, &height);
cb35b9603c41 Convert debug window to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
92 purple_prefs_set_int(PIDGIN_PREFS_ROOT "/debug/width", width);
cb35b9603c41 Convert debug window to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
93 purple_prefs_set_int(PIDGIN_PREFS_ROOT "/debug/height", height);
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
94 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
95
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
96 return FALSE;
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
97 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
98
39157
5f00c06934cc Re-add autoscroll to debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39156
diff changeset
99 static gboolean
5f00c06934cc Re-add autoscroll to debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39156
diff changeset
100 view_near_bottom(PidginDebugWindow *win)
5f00c06934cc Re-add autoscroll to debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39156
diff changeset
101 {
5f00c06934cc Re-add autoscroll to debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39156
diff changeset
102 GtkAdjustment *adj = gtk_scrollable_get_vadjustment(
5f00c06934cc Re-add autoscroll to debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39156
diff changeset
103 GTK_SCROLLABLE(win->textview));
5f00c06934cc Re-add autoscroll to debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39156
diff changeset
104 return (gtk_adjustment_get_value(adj) >=
5f00c06934cc Re-add autoscroll to debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39156
diff changeset
105 (gtk_adjustment_get_upper(adj) -
5f00c06934cc Re-add autoscroll to debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39156
diff changeset
106 gtk_adjustment_get_page_size(adj) * 1.5));
5f00c06934cc Re-add autoscroll to debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39156
diff changeset
107 }
5f00c06934cc Re-add autoscroll to debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39156
diff changeset
108
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
109 static void
41604
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
110 save_response_cb(GtkNativeDialog *self, gint response_id, gpointer data)
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
111 {
41604
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
112 PidginDebugWindow *win = (PidginDebugWindow *)data;
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
113
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
114 if(response_id == GTK_RESPONSE_ACCEPT) {
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
115 GFile *file = NULL;
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
116 GFileOutputStream *output = NULL;
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
117 GtkTextIter start, end;
41763
4a51008d3f64 Remove purple_date_format_full
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41748
diff changeset
118 GDateTime *date = NULL;
4a51008d3f64 Remove purple_date_format_full
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41748
diff changeset
119 gchar *date_str = NULL;
41604
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
120 gchar *tmp = NULL;
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
121 GError *error = NULL;
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
122
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
123 file = gtk_file_chooser_get_file(GTK_FILE_CHOOSER(self));
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
124 output = g_file_replace(file, NULL, FALSE, G_FILE_CREATE_NONE, NULL,
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
125 &error);
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
126 g_object_unref(file);
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
127
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
128 if(output == NULL) {
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
129 purple_debug_error("debug",
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
130 "Unable to open file to save debug log: %s",
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
131 error->message);
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
132 g_error_free(error);
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
133 g_object_unref(self);
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
134 return;
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
135 }
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
136
41763
4a51008d3f64 Remove purple_date_format_full
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41748
diff changeset
137 date = g_date_time_new_now_local();
4a51008d3f64 Remove purple_date_format_full
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41748
diff changeset
138 date_str = g_date_time_format(date, "%c");
42109
27c84f0b3258 Fix leaks in debug window
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41947
diff changeset
139 g_date_time_unref(date);
41763
4a51008d3f64 Remove purple_date_format_full
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41748
diff changeset
140
4a51008d3f64 Remove purple_date_format_full
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41748
diff changeset
141 tmp = g_strdup_printf("Pidgin Debug Log : %s\n", date_str);
41604
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
142 g_output_stream_write_all(G_OUTPUT_STREAM(output), tmp, strlen(tmp),
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
143 NULL, NULL, &error);
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
144 g_free(tmp);
41763
4a51008d3f64 Remove purple_date_format_full
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41748
diff changeset
145 g_free(date_str);
41604
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
146
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
147 if(error != NULL) {
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
148 purple_debug_error("debug", "Unable to save debug log: %s",
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
149 error->message);
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
150 g_error_free(error);
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
151 g_object_unref(output);
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
152 g_object_unref(self);
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
153 return;
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
154 }
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
155
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
156 gtk_text_buffer_get_bounds(win->buffer, &start, &end);
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
157 tmp = gtk_text_buffer_get_text(win->buffer, &start, &end, TRUE);
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
158 g_output_stream_write_all(G_OUTPUT_STREAM(output), tmp, strlen(tmp),
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
159 NULL, NULL, &error);
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
160 g_free(tmp);
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
161
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
162 if(error != NULL) {
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
163 purple_debug_error("debug", "Unable to save debug log: %s",
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
164 error->message);
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
165 g_error_free(error);
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
166 g_object_unref(output);
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
167 g_object_unref(self);
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
168 return;
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
169 }
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
170
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
171 g_object_unref(output);
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
172 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
173
41604
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
174 g_object_unref(self);
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
175 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
176
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
177 static void
41947
7b3312d0760c Bump C standard to C99 for Pidgin files and fix warnings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41840
diff changeset
178 save_cb(G_GNUC_UNUSED GtkWidget *w, PidginDebugWindow *win)
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
179 {
41604
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
180 GtkFileChooserNative *filesel;
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
181
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
182 filesel = gtk_file_chooser_native_new(_("Save Debug Log"), GTK_WINDOW(win),
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
183 GTK_FILE_CHOOSER_ACTION_SAVE,
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
184 _("_Save"), _("_Cancel"));
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
185
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
186 gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(filesel),
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
187 "purple-debug.log");
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
188
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
189 g_signal_connect(filesel, "response", G_CALLBACK(save_response_cb), win);
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
190
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
191 gtk_native_dialog_set_modal(GTK_NATIVE_DIALOG(filesel), TRUE);
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
192 gtk_native_dialog_show(GTK_NATIVE_DIALOG(filesel));
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
193 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
194
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
195 static void
41947
7b3312d0760c Bump C standard to C99 for Pidgin files and fix warnings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41840
diff changeset
196 clear_cb(G_GNUC_UNUSED GtkWidget *w, PidginDebugWindow *win)
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
197 {
39154
ac28e667a064 Convert debug window to GtkTextView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39153
diff changeset
198 gtk_text_buffer_set_text(win->buffer, "", 0);
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
199 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
200
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
201 static void
39156
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
202 pause_cb(GtkWidget *w, PidginDebugWindow *win)
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
203 {
41540
cb35b9603c41 Convert debug window to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
204 win->paused = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w));
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
205
39154
ac28e667a064 Convert debug window to GtkTextView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39153
diff changeset
206 if (!win->paused) {
ac28e667a064 Convert debug window to GtkTextView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39153
diff changeset
207 GtkTextIter start, end;
ac28e667a064 Convert debug window to GtkTextView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39153
diff changeset
208 gtk_text_buffer_get_bounds(win->buffer, &start, &end);
39159
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
209 gtk_text_buffer_remove_tag(win->buffer, win->tags.paused,
39154
ac28e667a064 Convert debug window to GtkTextView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39153
diff changeset
210 &start, &end);
39157
5f00c06934cc Re-add autoscroll to debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39156
diff changeset
211 gtk_text_view_scroll_to_mark(GTK_TEXT_VIEW(win->textview),
5f00c06934cc Re-add autoscroll to debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39156
diff changeset
212 win->end_mark, 0, TRUE, 0, 1);
39154
ac28e667a064 Convert debug window to GtkTextView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39153
diff changeset
213 }
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
214 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
215
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
216 /******************************************************************************
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
217 * regex stuff
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
218 *****************************************************************************/
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
219 static void
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
220 regex_clear_color(GtkWidget *w) {
41618
7e9ad20d503a Use success/error CSS for Public IP entry
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41617
diff changeset
221 gtk_widget_remove_css_class(w, "error");
7e9ad20d503a Use success/error CSS for Public IP entry
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41617
diff changeset
222 gtk_widget_remove_css_class(w, "success");
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
223 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
224
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
225 static void
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
226 regex_change_color(GtkWidget *w, gboolean success) {
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
227 if (success) {
41618
7e9ad20d503a Use success/error CSS for Public IP entry
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41617
diff changeset
228 gtk_widget_remove_css_class(w, "error");
7e9ad20d503a Use success/error CSS for Public IP entry
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41617
diff changeset
229 gtk_widget_add_css_class(w, "success");
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
230 } else {
41618
7e9ad20d503a Use success/error CSS for Public IP entry
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41617
diff changeset
231 gtk_widget_remove_css_class(w, "success");
7e9ad20d503a Use success/error CSS for Public IP entry
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41617
diff changeset
232 gtk_widget_add_css_class(w, "error");
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
233 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
234 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
235
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
236 static void
39159
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
237 do_regex(PidginDebugWindow *win, GtkTextIter *start, GtkTextIter *end)
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
238 {
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
239 GMatchInfo *match;
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
240 gint initial_position;
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
241 gint start_pos, end_pos;
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
242 GtkTextIter match_start, match_end;
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
243 gchar *text;
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
244
41642
eaf836c5f87b Modernize debug window a little
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
245 if (!win->regex) {
39162
e84a120599f7 debugwin: Don't crash if no regex during message load.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39161
diff changeset
246 return;
41642
eaf836c5f87b Modernize debug window a little
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
247 }
39162
e84a120599f7 debugwin: Don't crash if no regex during message load.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39161
diff changeset
248
39159
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
249 initial_position = gtk_text_iter_get_offset(start);
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
250
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
251 if (!win->invert) {
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
252 /* First hide everything. */
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
253 gtk_text_buffer_apply_tag(win->buffer,
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
254 win->tags.filtered_invisible, start, end);
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
255 }
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
256
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
257 text = gtk_text_buffer_get_text(win->buffer, start, end, TRUE);
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
258 g_regex_match(win->regex, text, 0, &match);
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
259 while (g_match_info_matches(match)) {
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
260 g_match_info_fetch_pos(match, 0, &start_pos, &end_pos);
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
261 start_pos += initial_position;
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
262 end_pos += initial_position;
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
263
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
264 /* Expand match to full line of message. */
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
265 gtk_text_buffer_get_iter_at_offset(win->buffer,
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
266 &match_start, start_pos);
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
267 gtk_text_iter_set_line_index(&match_start, 0);
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
268 gtk_text_buffer_get_iter_at_offset(win->buffer,
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
269 &match_end, end_pos);
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
270 gtk_text_iter_forward_line(&match_end);
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
271
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
272 if (win->invert) {
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
273 /* Make invisible. */
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
274 gtk_text_buffer_apply_tag(win->buffer,
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
275 win->tags.filtered_invisible,
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
276 &match_start, &match_end);
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
277 } else {
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
278 /* Make visible again (with higher priority.) */
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
279 gtk_text_buffer_apply_tag(win->buffer,
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
280 win->tags.filtered_visible,
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
281 &match_start, &match_end);
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
282
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
283 if (win->highlight) {
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
284 gtk_text_buffer_get_iter_at_offset(
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
285 win->buffer,
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
286 &match_start,
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
287 start_pos);
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
288 gtk_text_buffer_get_iter_at_offset(
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
289 win->buffer,
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
290 &match_end,
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
291 end_pos);
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
292 gtk_text_buffer_apply_tag(win->buffer,
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
293 win->tags.match,
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
294 &match_start,
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
295 &match_end);
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
296 }
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
297 }
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
298
42182
3fc2d2b7b7a8 Fix leaked errors
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42175
diff changeset
299 g_match_info_next(match, NULL);
39159
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
300 }
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
301
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
302 g_match_info_free(match);
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
303 g_free(text);
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
304 }
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
305
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
306 static void
39156
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
307 regex_toggle_filter(PidginDebugWindow *win, gboolean filter)
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
308 {
39154
ac28e667a064 Convert debug window to GtkTextView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39153
diff changeset
309 GtkTextIter start, end;
ac28e667a064 Convert debug window to GtkTextView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39153
diff changeset
310
ac28e667a064 Convert debug window to GtkTextView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39153
diff changeset
311 gtk_text_buffer_get_bounds(win->buffer, &start, &end);
ac28e667a064 Convert debug window to GtkTextView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39153
diff changeset
312 gtk_text_buffer_remove_tag(win->buffer, win->tags.match, &start, &end);
39159
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
313 gtk_text_buffer_remove_tag(win->buffer, win->tags.filtered_invisible,
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
314 &start, &end);
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
315 gtk_text_buffer_remove_tag(win->buffer, win->tags.filtered_visible,
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
316 &start, &end);
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
317
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
318 if (filter) {
39159
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
319 do_regex(win, &start, &end);
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
320 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
321 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
322
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
323 static void
41947
7b3312d0760c Bump C standard to C99 for Pidgin files and fix warnings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41840
diff changeset
324 regex_pref_filter_cb(G_GNUC_UNUSED const gchar *name,
7b3312d0760c Bump C standard to C99 for Pidgin files and fix warnings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41840
diff changeset
325 G_GNUC_UNUSED PurplePrefType type,
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
326 gconstpointer val, gpointer data)
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
327 {
39156
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
328 PidginDebugWindow *win = (PidginDebugWindow *)data;
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
329 gboolean active = GPOINTER_TO_INT(val), current;
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
330
41642
eaf836c5f87b Modernize debug window a little
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
331 if (!win) {
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
332 return;
41642
eaf836c5f87b Modernize debug window a little
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
333 }
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
334
41540
cb35b9603c41 Convert debug window to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
335 current = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(win->filter));
cb35b9603c41 Convert debug window to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
336 if (active != current) {
cb35b9603c41 Convert debug window to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
337 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(win->filter), active);
cb35b9603c41 Convert debug window to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
338 }
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
339 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
340
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
341 static void
41947
7b3312d0760c Bump C standard to C99 for Pidgin files and fix warnings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41840
diff changeset
342 regex_pref_invert_cb(G_GNUC_UNUSED const gchar *name,
7b3312d0760c Bump C standard to C99 for Pidgin files and fix warnings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41840
diff changeset
343 G_GNUC_UNUSED PurplePrefType type,
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
344 gconstpointer val, gpointer data)
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
345 {
39156
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
346 PidginDebugWindow *win = (PidginDebugWindow *)data;
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
347 gboolean active = GPOINTER_TO_INT(val);
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
348
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
349 win->invert = active;
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
350
41540
cb35b9603c41 Convert debug window to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
351 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(win->filter))) {
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
352 regex_toggle_filter(win, TRUE);
41540
cb35b9603c41 Convert debug window to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
353 }
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
354 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
355
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
356 static void
41947
7b3312d0760c Bump C standard to C99 for Pidgin files and fix warnings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41840
diff changeset
357 regex_pref_highlight_cb(G_GNUC_UNUSED const gchar *name,
7b3312d0760c Bump C standard to C99 for Pidgin files and fix warnings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41840
diff changeset
358 G_GNUC_UNUSED PurplePrefType type,
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
359 gconstpointer val, gpointer data)
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
360 {
39156
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
361 PidginDebugWindow *win = (PidginDebugWindow *)data;
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
362 gboolean active = GPOINTER_TO_INT(val);
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
363
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
364 win->highlight = active;
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
365
41540
cb35b9603c41 Convert debug window to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
366 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(win->filter))) {
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
367 regex_toggle_filter(win, TRUE);
41540
cb35b9603c41 Convert debug window to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
368 }
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
369 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
370
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
371 static void
41947
7b3312d0760c Bump C standard to C99 for Pidgin files and fix warnings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41840
diff changeset
372 regex_changed_cb(G_GNUC_UNUSED GtkWidget *w, PidginDebugWindow *win) {
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
373 const gchar *text;
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
374
41540
cb35b9603c41 Convert debug window to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
375 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(win->filter))) {
cb35b9603c41 Convert debug window to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
376 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(win->filter), FALSE);
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
377 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
378
41531
2b86501d13fe Replace gtk_entry_[gs]et_text with gtk_editable_[gs]et_text
Gary Kramlich <grim@reaperworld.com>
parents: 41275
diff changeset
379 text = gtk_editable_get_text(GTK_EDITABLE(win->expression));
39153
186f64fbfe18 Use GtkSearchEntry for debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39152
diff changeset
380 purple_prefs_set_string(PIDGIN_PREFS_ROOT "/debug/regex", text);
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
381
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
382 if (text == NULL || *text == '\0') {
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
383 regex_clear_color(win->expression);
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
384 gtk_widget_set_sensitive(win->filter, FALSE);
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
385 return;
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
386 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
387
41642
eaf836c5f87b Modernize debug window a little
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
388 g_clear_pointer(&win->regex, g_regex_unref);
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
389
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
390 win->regex = g_regex_new(text, G_REGEX_CASELESS|G_REGEX_JAVASCRIPT_COMPAT, 0, NULL);
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
391
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
392 if (win->regex == NULL) {
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
393 /* failed to compile */
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
394 regex_change_color(win->expression, FALSE);
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
395 gtk_widget_set_sensitive(win->filter, FALSE);
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
396 } else {
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
397 /* compiled successfully */
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
398 regex_change_color(win->expression, TRUE);
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
399 gtk_widget_set_sensitive(win->filter, TRUE);
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
400 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
401 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
402
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
403 static void
41540
cb35b9603c41 Convert debug window to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
404 regex_key_released_cb(G_GNUC_UNUSED GtkEventControllerKey *controller,
cb35b9603c41 Convert debug window to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
405 guint keyval, G_GNUC_UNUSED guint keycode,
cb35b9603c41 Convert debug window to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
406 G_GNUC_UNUSED GdkModifierType state, gpointer data)
cb35b9603c41 Convert debug window to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
407 {
cb35b9603c41 Convert debug window to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
408 PidginDebugWindow *win = data;
cb35b9603c41 Convert debug window to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
409
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
410 if (gtk_widget_is_sensitive(win->filter)) {
41540
cb35b9603c41 Convert debug window to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
411 GtkToggleButton *tb = GTK_TOGGLE_BUTTON(win->filter);
cb35b9603c41 Convert debug window to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
412 if ((keyval == GDK_KEY_Return || keyval == GDK_KEY_KP_Enter) &&
cb35b9603c41 Convert debug window to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
413 !gtk_toggle_button_get_active(tb))
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
414 {
41540
cb35b9603c41 Convert debug window to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
415 gtk_toggle_button_set_active(tb, TRUE);
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
416 }
41540
cb35b9603c41 Convert debug window to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
417 if (keyval == GDK_KEY_Escape && gtk_toggle_button_get_active(tb)) {
cb35b9603c41 Convert debug window to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
418 gtk_toggle_button_set_active(tb, FALSE);
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
419 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
420 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
421 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
422
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
423 static void
39674
166671cecb8c Merge debug window Glade files.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39673
diff changeset
424 regex_menu_cb(GtkWidget *item, PidginDebugWindow *win)
166671cecb8c Merge debug window Glade files.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39673
diff changeset
425 {
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
426 gboolean active;
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
427
41604
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
428 active = gtk_check_button_get_active(GTK_CHECK_BUTTON(item));
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
429
39674
166671cecb8c Merge debug window Glade files.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39673
diff changeset
430 if (item == win->popover_highlight) {
166671cecb8c Merge debug window Glade files.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39673
diff changeset
431 purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/debug/highlight", active);
166671cecb8c Merge debug window Glade files.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39673
diff changeset
432 } else if (item == win->popover_invert) {
166671cecb8c Merge debug window Glade files.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39673
diff changeset
433 purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/debug/invert", active);
166671cecb8c Merge debug window Glade files.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39673
diff changeset
434 }
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
435 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
436
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
437 static void
41604
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
438 regex_popup_cb(G_GNUC_UNUSED GtkGestureClick* self, G_GNUC_UNUSED gint n_press,
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
439 gdouble x, gdouble y, gpointer data)
39155
f5359b7fab5f Move debug regex option menu to search entry icon.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39154
diff changeset
440 {
41604
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
441 PidginDebugWindow *win = data;
39674
166671cecb8c Merge debug window Glade files.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39673
diff changeset
442
41604
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
443 gtk_popover_set_pointing_to(GTK_POPOVER(win->popover),
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
444 &(const GdkRectangle){(int)x, (int)y, 0, 0});
39163
c38b26076992 debugwin: Make filter options into popover when available.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39162
diff changeset
445 gtk_popover_popup(GTK_POPOVER(win->popover));
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
446 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
447
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
448 static void
41540
cb35b9603c41 Convert debug window to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
449 regex_filter_toggled_cb(GtkToggleButton *button, PidginDebugWindow *win)
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
450 {
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
451 gboolean active;
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
452
41540
cb35b9603c41 Convert debug window to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
453 active = gtk_toggle_button_get_active(button);
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
454
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
455 purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/debug/filter", active);
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
456
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
457 regex_toggle_filter(win, active);
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
458 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
459
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
460 static void
39156
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
461 debug_window_set_filter_level(PidginDebugWindow *win, int level)
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
462 {
39157
5f00c06934cc Re-add autoscroll to debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39156
diff changeset
463 gboolean scroll;
39154
ac28e667a064 Convert debug window to GtkTextView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39153
diff changeset
464 int i;
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
465
41947
7b3312d0760c Bump C standard to C99 for Pidgin files and fix warnings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41840
diff changeset
466 if (level != (int)gtk_drop_down_get_selected(GTK_DROP_DOWN(win->filterlevel))) {
41642
eaf836c5f87b Modernize debug window a little
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
467 gtk_drop_down_set_selected(GTK_DROP_DOWN(win->filterlevel), level);
eaf836c5f87b Modernize debug window a little
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
468 }
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
469
39157
5f00c06934cc Re-add autoscroll to debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39156
diff changeset
470 scroll = view_near_bottom(win);
39154
ac28e667a064 Convert debug window to GtkTextView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39153
diff changeset
471 for (i = 0; i <= PURPLE_DEBUG_FATAL; i++) {
ac28e667a064 Convert debug window to GtkTextView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39153
diff changeset
472 g_object_set(G_OBJECT(win->tags.level[i]),
ac28e667a064 Convert debug window to GtkTextView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39153
diff changeset
473 "invisible", i < level,
ac28e667a064 Convert debug window to GtkTextView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39153
diff changeset
474 NULL);
ac28e667a064 Convert debug window to GtkTextView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39153
diff changeset
475 }
39157
5f00c06934cc Re-add autoscroll to debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39156
diff changeset
476 if (scroll) {
5f00c06934cc Re-add autoscroll to debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39156
diff changeset
477 gtk_text_view_scroll_to_mark(GTK_TEXT_VIEW(win->textview),
5f00c06934cc Re-add autoscroll to debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39156
diff changeset
478 win->end_mark, 0, TRUE, 0, 1);
5f00c06934cc Re-add autoscroll to debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39156
diff changeset
479 }
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
480 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
481
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
482 static void
41947
7b3312d0760c Bump C standard to C99 for Pidgin files and fix warnings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41840
diff changeset
483 filter_level_pref_changed(G_GNUC_UNUSED const char *name,
7b3312d0760c Bump C standard to C99 for Pidgin files and fix warnings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41840
diff changeset
484 G_GNUC_UNUSED PurplePrefType type,
7b3312d0760c Bump C standard to C99 for Pidgin files and fix warnings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41840
diff changeset
485 gconstpointer value, gpointer data)
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
486 {
39156
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
487 PidginDebugWindow *win = data;
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
488 int level = GPOINTER_TO_INT(value);
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
489
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
490 debug_window_set_filter_level(win, level);
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
491 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
492
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
493 static void
41642
eaf836c5f87b Modernize debug window a little
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
494 filter_level_changed_cb(GObject *obj, G_GNUC_UNUSED GParamSpec *pspec)
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
495 {
41642
eaf836c5f87b Modernize debug window a little
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
496 GtkDropDown *dropdown = GTK_DROP_DOWN(obj);
eaf836c5f87b Modernize debug window a little
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
497
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
498 purple_prefs_set_int(PIDGIN_PREFS_ROOT "/debug/filterlevel",
41642
eaf836c5f87b Modernize debug window a little
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
499 gtk_drop_down_get_selected(dropdown));
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
500 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
501
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
502 static void
41604
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
503 pidgin_debug_window_dispose(GObject *object)
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
504 {
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
505 PidginDebugWindow *win = PIDGIN_DEBUG_WINDOW(object);
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
506
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
507 gtk_widget_unparent(win->popover);
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
508
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
509 G_OBJECT_CLASS(pidgin_debug_window_parent_class)->dispose(object);
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
510 }
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
511
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
512 static void
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
513 pidgin_debug_window_finalize(GObject *object)
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
514 {
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
515 PidginDebugWindow *win = PIDGIN_DEBUG_WINDOW(object);
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
516
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
517 purple_prefs_disconnect_by_handle(pidgin_debug_get_handle());
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
518
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
519 g_clear_pointer(&win->regex, g_regex_unref);
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
520
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
521 debug_win = NULL;
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
522 purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/debug/enabled", FALSE);
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
523
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
524 G_OBJECT_CLASS(pidgin_debug_window_parent_class)->finalize(object);
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
525 }
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
526
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
527 static void
39156
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
528 pidgin_debug_window_class_init(PidginDebugWindowClass *klass) {
41604
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
529 GObjectClass *obj_class = G_OBJECT_CLASS(klass);
39156
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
530 GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass);
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
531
41604
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
532 obj_class->dispose = pidgin_debug_window_dispose;
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
533 obj_class->finalize = pidgin_debug_window_finalize;
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
534
39156
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
535 gtk_widget_class_set_template_from_resource(
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
536 widget_class,
41030
ec8b76f3bf0a Fix the resource path so we can use the automatic stuff that GtkApplication supports
Gary Kramlich <grim@reaperworld.com>
parents: 41012
diff changeset
537 "/im/pidgin/Pidgin3/Debug/debug.ui"
39156
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
538 );
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
539
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
540 gtk_widget_class_bind_template_child(
39157
5f00c06934cc Re-add autoscroll to debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39156
diff changeset
541 widget_class, PidginDebugWindow, textview);
5f00c06934cc Re-add autoscroll to debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39156
diff changeset
542 gtk_widget_class_bind_template_child(
39156
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
543 widget_class, PidginDebugWindow, buffer);
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
544 gtk_widget_class_bind_template_child(
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
545 widget_class, PidginDebugWindow, tags.category);
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
546 gtk_widget_class_bind_template_child(
39159
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
547 widget_class, PidginDebugWindow, tags.filtered_invisible);
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
548 gtk_widget_class_bind_template_child(
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
549 widget_class, PidginDebugWindow, tags.filtered_visible);
39156
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
550 gtk_widget_class_bind_template_child(
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
551 widget_class, PidginDebugWindow, tags.level[0]);
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
552 gtk_widget_class_bind_template_child(
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
553 widget_class, PidginDebugWindow, tags.level[1]);
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
554 gtk_widget_class_bind_template_child(
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
555 widget_class, PidginDebugWindow, tags.level[2]);
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
556 gtk_widget_class_bind_template_child(
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
557 widget_class, PidginDebugWindow, tags.level[3]);
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
558 gtk_widget_class_bind_template_child(
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
559 widget_class, PidginDebugWindow, tags.level[4]);
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
560 gtk_widget_class_bind_template_child(
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
561 widget_class, PidginDebugWindow, tags.level[5]);
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
562 gtk_widget_class_bind_template_child(
39159
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
563 widget_class, PidginDebugWindow, tags.paused);
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
564 gtk_widget_class_bind_template_child(
39156
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
565 widget_class, PidginDebugWindow, filter);
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
566 gtk_widget_class_bind_template_child(
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
567 widget_class, PidginDebugWindow, filterlevel);
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
568 gtk_widget_class_bind_template_child(
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
569 widget_class, PidginDebugWindow, expression);
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
570 gtk_widget_class_bind_template_child(
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
571 widget_class, PidginDebugWindow, tags.match);
39674
166671cecb8c Merge debug window Glade files.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39673
diff changeset
572 gtk_widget_class_bind_template_child(
166671cecb8c Merge debug window Glade files.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39673
diff changeset
573 widget_class, PidginDebugWindow, popover);
166671cecb8c Merge debug window Glade files.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39673
diff changeset
574 gtk_widget_class_bind_template_child(
166671cecb8c Merge debug window Glade files.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39673
diff changeset
575 widget_class, PidginDebugWindow, popover_invert);
166671cecb8c Merge debug window Glade files.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39673
diff changeset
576 gtk_widget_class_bind_template_child(
166671cecb8c Merge debug window Glade files.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39673
diff changeset
577 widget_class, PidginDebugWindow, popover_highlight);
39156
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
578 gtk_widget_class_bind_template_callback(widget_class, save_cb);
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
579 gtk_widget_class_bind_template_callback(widget_class, clear_cb);
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
580 gtk_widget_class_bind_template_callback(widget_class, pause_cb);
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
581 gtk_widget_class_bind_template_callback(widget_class,
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
582 regex_filter_toggled_cb);
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
583 gtk_widget_class_bind_template_callback(widget_class,
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
584 regex_changed_cb);
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
585 gtk_widget_class_bind_template_callback(widget_class, regex_popup_cb);
39674
166671cecb8c Merge debug window Glade files.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39673
diff changeset
586 gtk_widget_class_bind_template_callback(widget_class, regex_menu_cb);
39156
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
587 gtk_widget_class_bind_template_callback(widget_class,
41540
cb35b9603c41 Convert debug window to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
588 regex_key_released_cb);
39156
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
589 gtk_widget_class_bind_template_callback(widget_class,
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
590 filter_level_changed_cb);
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
591 }
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
592
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
593 static void
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
594 pidgin_debug_window_init(PidginDebugWindow *win)
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
595 {
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
596 gint width, height;
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
597 void *handle;
39157
5f00c06934cc Re-add autoscroll to debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39156
diff changeset
598 GtkTextIter end;
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
599
39156
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
600 gtk_widget_init_template(GTK_WIDGET(win));
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
601
41604
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
602 gtk_widget_set_parent(win->popover, win->filter);
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
603
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
604 width = purple_prefs_get_int(PIDGIN_PREFS_ROOT "/debug/width");
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
605 height = purple_prefs_get_int(PIDGIN_PREFS_ROOT "/debug/height");
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
606
40576
9616360d5943 Clean up g_log handling
Gary Kramlich <grim@reaperworld.com>
parents: 40552
diff changeset
607 purple_debug_info("pidgindebug", "Setting dimensions to %d, %d\n",
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
608 width, height);
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
609
39156
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
610 gtk_window_set_default_size(GTK_WINDOW(win), width, height);
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
611
41540
cb35b9603c41 Convert debug window to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
612 g_signal_connect(G_OBJECT(win), "notify::default-width",
cb35b9603c41 Convert debug window to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
613 G_CALLBACK(save_default_size_cb), NULL);
cb35b9603c41 Convert debug window to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
614 g_signal_connect(G_OBJECT(win), "notify::default-height",
cb35b9603c41 Convert debug window to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
615 G_CALLBACK(save_default_size_cb), NULL);
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
616
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
617 handle = pidgin_debug_get_handle();
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
618
41642
eaf836c5f87b Modernize debug window a little
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
619 /* we purposely disable the toggle button here in case
eaf836c5f87b Modernize debug window a little
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
620 * /purple/gtk/debug/expression has an empty string. If it does not have
eaf836c5f87b Modernize debug window a little
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
621 * an empty string, the change signal will get called and make the
eaf836c5f87b Modernize debug window a little
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
622 * toggle button sensitive.
eaf836c5f87b Modernize debug window a little
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
623 */
eaf836c5f87b Modernize debug window a little
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
624 gtk_widget_set_sensitive(win->filter, FALSE);
eaf836c5f87b Modernize debug window a little
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
625 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(win->filter),
eaf836c5f87b Modernize debug window a little
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
626 purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/debug/filter"));
eaf836c5f87b Modernize debug window a little
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
627 purple_prefs_connect_callback(handle, PIDGIN_PREFS_ROOT "/debug/filter",
eaf836c5f87b Modernize debug window a little
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
628 regex_pref_filter_cb, win);
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
629
41642
eaf836c5f87b Modernize debug window a little
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
630 /* regex entry */
eaf836c5f87b Modernize debug window a little
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
631 gtk_editable_set_text(GTK_EDITABLE(win->expression),
eaf836c5f87b Modernize debug window a little
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
632 purple_prefs_get_string(PIDGIN_PREFS_ROOT "/debug/regex"));
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
633
41642
eaf836c5f87b Modernize debug window a little
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
634 /* connect the rest of our pref callbacks */
eaf836c5f87b Modernize debug window a little
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
635 win->invert = purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/debug/invert");
eaf836c5f87b Modernize debug window a little
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
636 purple_prefs_connect_callback(handle, PIDGIN_PREFS_ROOT "/debug/invert",
eaf836c5f87b Modernize debug window a little
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
637 regex_pref_invert_cb, win);
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
638
41642
eaf836c5f87b Modernize debug window a little
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
639 win->highlight = purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/debug/highlight");
eaf836c5f87b Modernize debug window a little
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
640 purple_prefs_connect_callback(handle, PIDGIN_PREFS_ROOT "/debug/highlight",
eaf836c5f87b Modernize debug window a little
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
641 regex_pref_highlight_cb, win);
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
642
41642
eaf836c5f87b Modernize debug window a little
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
643 gtk_drop_down_set_selected(GTK_DROP_DOWN(win->filterlevel),
eaf836c5f87b Modernize debug window a little
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
644 purple_prefs_get_int(PIDGIN_PREFS_ROOT "/debug/filterlevel"));
39163
c38b26076992 debugwin: Make filter options into popover when available.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39162
diff changeset
645
41642
eaf836c5f87b Modernize debug window a little
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
646 purple_prefs_connect_callback(handle, PIDGIN_PREFS_ROOT "/debug/filterlevel",
eaf836c5f87b Modernize debug window a little
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
647 filter_level_pref_changed, win);
eaf836c5f87b Modernize debug window a little
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
648
eaf836c5f87b Modernize debug window a little
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
649 gtk_check_button_set_active(GTK_CHECK_BUTTON(win->popover_invert),
eaf836c5f87b Modernize debug window a little
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
650 win->invert);
eaf836c5f87b Modernize debug window a little
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
651 gtk_check_button_set_active(GTK_CHECK_BUTTON(win->popover_highlight),
eaf836c5f87b Modernize debug window a little
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
652 win->highlight);
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
653
39160
709de61bd2d3 debugwin: Also filter new messages as they come in.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39159
diff changeset
654 /* The *start* and *end* marks bound the beginning and end of an
709de61bd2d3 debugwin: Also filter new messages as they come in.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39159
diff changeset
655 insertion, used for filtering. The *end* mark is also used for
709de61bd2d3 debugwin: Also filter new messages as they come in.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39159
diff changeset
656 auto-scrolling. */
39157
5f00c06934cc Re-add autoscroll to debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39156
diff changeset
657 gtk_text_buffer_get_end_iter(win->buffer, &end);
39160
709de61bd2d3 debugwin: Also filter new messages as they come in.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39159
diff changeset
658 win->start_mark = gtk_text_buffer_create_mark(win->buffer,
709de61bd2d3 debugwin: Also filter new messages as they come in.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39159
diff changeset
659 "start", &end, TRUE);
709de61bd2d3 debugwin: Also filter new messages as they come in.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39159
diff changeset
660 win->end_mark = gtk_text_buffer_create_mark(win->buffer,
709de61bd2d3 debugwin: Also filter new messages as they come in.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39159
diff changeset
661 "end", &end, FALSE);
709de61bd2d3 debugwin: Also filter new messages as they come in.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39159
diff changeset
662
39154
ac28e667a064 Convert debug window to GtkTextView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39153
diff changeset
663 /* Set active filter level in textview */
ac28e667a064 Convert debug window to GtkTextView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39153
diff changeset
664 debug_window_set_filter_level(win,
ac28e667a064 Convert debug window to GtkTextView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39153
diff changeset
665 purple_prefs_get_int(PIDGIN_PREFS_ROOT "/debug/filterlevel"));
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
666
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
667 clear_cb(NULL, win);
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
668 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
669
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
670 static gboolean
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
671 debug_enabled_timeout_cb(gpointer data)
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
672 {
41117
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
673 gboolean enabled = GPOINTER_TO_INT(data);
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
674
41117
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
675 debug_enabled_timer = 0;
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
676
41117
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
677 if (enabled) {
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
678 pidgin_debug_window_show();
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
679 } else {
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
680 pidgin_debug_window_hide();
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
681 }
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
682
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
683 return FALSE;
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
684 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
685
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
686 static void
41117
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
687 debug_enabled_cb(G_GNUC_UNUSED const gchar *name,
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
688 G_GNUC_UNUSED PurplePrefType type,
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
689 gconstpointer value,
41947
7b3312d0760c Bump C standard to C99 for Pidgin files and fix warnings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41840
diff changeset
690 G_GNUC_UNUSED gpointer data)
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
691 {
41117
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
692 debug_enabled_timer = g_timeout_add(0, debug_enabled_timeout_cb,
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
693 (gpointer)value);
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
694 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
695
41267
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
696 static gboolean
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
697 pidgin_debug_g_log_handler_cb(gpointer data)
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
698 {
41267
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
699 PidginDebugMessage *message = data;
41110
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
700 GtkTextTag *level_tag = NULL;
41250
e82d07ed6862 Remove purple_utf8_strftime
Gary Kramlich <grim@reaperworld.com>
parents: 41127
diff changeset
701 gchar *local_time = NULL;
41110
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
702 GtkTextIter end;
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
703 gboolean scroll;
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
704
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
705 if (debug_win == NULL ||
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
706 !purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/debug/enabled")) {
41267
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
707 /* The Debug Window may have been closed/disabled after the thread that
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
708 * sent this message. */
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
709 g_date_time_unref(message->timestamp);
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
710 g_free(message->domain);
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
711 g_free(message->message);
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
712 g_free(message);
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
713 return FALSE;
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
714 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
715
41110
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
716 scroll = view_near_bottom(debug_win);
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
717 gtk_text_buffer_get_end_iter(debug_win->buffer, &end);
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
718 gtk_text_buffer_move_mark(debug_win->buffer, debug_win->start_mark, &end);
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
719
41267
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
720 level_tag = debug_win->tags.level[message->level];
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
721 local_time = g_date_time_format(message->timestamp, "(%H:%M:%S) ");
41250
e82d07ed6862 Remove purple_utf8_strftime
Gary Kramlich <grim@reaperworld.com>
parents: 41127
diff changeset
722
41110
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
723 gtk_text_buffer_insert_with_tags(
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
724 debug_win->buffer,
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
725 &end,
41250
e82d07ed6862 Remove purple_utf8_strftime
Gary Kramlich <grim@reaperworld.com>
parents: 41127
diff changeset
726 local_time,
41110
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
727 -1,
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
728 level_tag,
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
729 debug_win->paused ? debug_win->tags.paused : NULL,
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
730 NULL);
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
731
41267
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
732 if (message->domain != NULL && *message->domain != '\0') {
41110
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
733 gtk_text_buffer_insert_with_tags(
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
734 debug_win->buffer,
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
735 &end,
41267
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
736 message->domain,
41110
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
737 -1,
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
738 level_tag,
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
739 debug_win->tags.category,
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
740 debug_win->paused ? debug_win->tags.paused : NULL,
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
741 NULL);
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
742 gtk_text_buffer_insert_with_tags(
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
743 debug_win->buffer,
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
744 &end,
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
745 ": ",
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
746 2,
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
747 level_tag,
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
748 debug_win->tags.category,
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
749 debug_win->paused ? debug_win->tags.paused : NULL,
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
750 NULL);
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
751 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
752
41110
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
753 gtk_text_buffer_insert_with_tags(
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
754 debug_win->buffer,
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
755 &end,
41267
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
756 message->message,
41110
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
757 -1,
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
758 level_tag,
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
759 debug_win->paused ? debug_win->tags.paused : NULL,
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
760 NULL);
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
761 gtk_text_buffer_insert_with_tags(
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
762 debug_win->buffer,
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
763 &end,
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
764 "\n",
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
765 1,
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
766 level_tag,
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
767 debug_win->paused ? debug_win->tags.paused : NULL,
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
768 NULL);
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
769
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
770 if (purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/debug/filter") &&
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
771 debug_win->regex) {
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
772 /* Filter out any new messages. */
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
773 GtkTextIter start;
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
774
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
775 gtk_text_buffer_get_iter_at_mark(debug_win->buffer, &start,
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
776 debug_win->start_mark);
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
777 gtk_text_buffer_get_iter_at_mark(debug_win->buffer, &end,
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
778 debug_win->end_mark);
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
779
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
780 do_regex(debug_win, &start, &end);
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
781 }
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
782
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
783 if (scroll) {
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
784 gtk_text_view_scroll_to_mark(
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
785 GTK_TEXT_VIEW(debug_win->textview),
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
786 debug_win->end_mark, 0, TRUE, 0, 1);
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
787 }
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
788
41267
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
789 g_free(local_time);
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
790 g_date_time_unref(message->timestamp);
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
791 g_free(message->domain);
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
792 g_free(message->message);
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
793 g_free(message);
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
794
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
795 return FALSE;
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
796 }
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
797
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
798 static GLogWriterOutput
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
799 pidgin_debug_g_log_handler(GLogLevelFlags log_level, const GLogField *fields,
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
800 gsize n_fields, G_GNUC_UNUSED gpointer user_data)
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
801 {
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
802 PidginDebugMessage *message = NULL;
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
803 gsize i;
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
804
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
805 if (debug_win == NULL) {
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
806 if (debug_print_enabled) {
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
807 return g_log_writer_default(log_level, fields, n_fields, user_data);
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
808 } else {
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
809 return G_LOG_WRITER_UNHANDLED;
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
810 }
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
811 }
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
812
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
813 message = g_new0(PidginDebugMessage, 1);
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
814 message->timestamp = g_date_time_new_now_local();
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
815
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
816 for (i = 0; i < n_fields; i++) {
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
817 if (purple_strequal(fields[i].key, "GLIB_DOMAIN")) {
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
818 message->domain = g_strdup(fields[i].value);
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
819 } else if (purple_strequal(fields[i].key, "MESSAGE")) {
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
820 message->message = g_strdup(fields[i].value);
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
821 }
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
822 }
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
823
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
824 if((log_level & G_LOG_LEVEL_ERROR) != 0) {
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
825 message->level = PURPLE_DEBUG_ERROR;
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
826 } else if((log_level & G_LOG_LEVEL_CRITICAL) != 0) {
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
827 message->level = PURPLE_DEBUG_FATAL;
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
828 } else if((log_level & G_LOG_LEVEL_WARNING) != 0) {
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
829 message->level = PURPLE_DEBUG_WARNING;
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
830 } else if((log_level & G_LOG_LEVEL_MESSAGE) != 0) {
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
831 message->level = PURPLE_DEBUG_INFO;
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
832 } else if((log_level & G_LOG_LEVEL_INFO) != 0) {
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
833 message->level = PURPLE_DEBUG_INFO;
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
834 } else if((log_level & G_LOG_LEVEL_DEBUG) != 0) {
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
835 message->level = PURPLE_DEBUG_MISC;
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
836 } else {
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
837 message->level = PURPLE_DEBUG_MISC;
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
838 }
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
839
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
840 g_timeout_add(0, pidgin_debug_g_log_handler_cb, message);
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
841
41127
cd297cfc56f3 Move debug command-line option to the UIs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41120
diff changeset
842 if (debug_print_enabled) {
cd297cfc56f3 Move debug command-line option to the UIs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41120
diff changeset
843 return g_log_writer_default(log_level, fields, n_fields, user_data);
cd297cfc56f3 Move debug command-line option to the UIs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41120
diff changeset
844 } else {
cd297cfc56f3 Move debug command-line option to the UIs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41120
diff changeset
845 return G_LOG_WRITER_HANDLED;
cd297cfc56f3 Move debug command-line option to the UIs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41120
diff changeset
846 }
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
847 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
848
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
849 void
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
850 pidgin_debug_window_show(void)
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
851 {
39156
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
852 if (debug_win == NULL) {
41748
fb13b6986266 Make the debug window transient for whatever window created it.
Gary Kramlich <grim@reaperworld.com>
parents: 41642
diff changeset
853 GApplication *application = NULL;
fb13b6986266 Make the debug window transient for whatever window created it.
Gary Kramlich <grim@reaperworld.com>
parents: 41642
diff changeset
854 PidginApplication *pidgin_application = NULL;
fb13b6986266 Make the debug window transient for whatever window created it.
Gary Kramlich <grim@reaperworld.com>
parents: 41642
diff changeset
855 GtkWindow *parent = NULL;
fb13b6986266 Make the debug window transient for whatever window created it.
Gary Kramlich <grim@reaperworld.com>
parents: 41642
diff changeset
856
fb13b6986266 Make the debug window transient for whatever window created it.
Gary Kramlich <grim@reaperworld.com>
parents: 41642
diff changeset
857 application = g_application_get_default();
fb13b6986266 Make the debug window transient for whatever window created it.
Gary Kramlich <grim@reaperworld.com>
parents: 41642
diff changeset
858 pidgin_application = PIDGIN_APPLICATION(application);
fb13b6986266 Make the debug window transient for whatever window created it.
Gary Kramlich <grim@reaperworld.com>
parents: 41642
diff changeset
859 parent = pidgin_application_get_active_window(pidgin_application);
fb13b6986266 Make the debug window transient for whatever window created it.
Gary Kramlich <grim@reaperworld.com>
parents: 41642
diff changeset
860
39156
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
861 debug_win = PIDGIN_DEBUG_WINDOW(
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
862 g_object_new(PIDGIN_TYPE_DEBUG_WINDOW, NULL));
41748
fb13b6986266 Make the debug window transient for whatever window created it.
Gary Kramlich <grim@reaperworld.com>
parents: 41642
diff changeset
863
fb13b6986266 Make the debug window transient for whatever window created it.
Gary Kramlich <grim@reaperworld.com>
parents: 41642
diff changeset
864 gtk_window_set_transient_for(GTK_WINDOW(debug_win), parent);
39156
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
865 }
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
866
41748
fb13b6986266 Make the debug window transient for whatever window created it.
Gary Kramlich <grim@reaperworld.com>
parents: 41642
diff changeset
867 gtk_window_present_with_time(GTK_WINDOW(debug_win), GDK_CURRENT_TIME);
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
868
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
869 purple_prefs_set_bool(PIDGIN_PREFS_ROOT "/debug/enabled", TRUE);
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
870 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
871
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
872 void
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
873 pidgin_debug_window_hide(void)
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
874 {
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
875 if (debug_win != NULL) {
41540
cb35b9603c41 Convert debug window to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
876 gtk_window_destroy(GTK_WINDOW(debug_win));
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
877 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
878 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
879
41117
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
880 void
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
881 pidgin_debug_init_handler(void)
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
882 {
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
883 g_log_set_writer_func(pidgin_debug_g_log_handler, NULL, NULL);
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
884 }
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
885
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
886 void
41127
cd297cfc56f3 Move debug command-line option to the UIs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41120
diff changeset
887 pidgin_debug_set_print_enabled(gboolean enable)
cd297cfc56f3 Move debug command-line option to the UIs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41120
diff changeset
888 {
cd297cfc56f3 Move debug command-line option to the UIs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41120
diff changeset
889 debug_print_enabled = enable;
cd297cfc56f3 Move debug command-line option to the UIs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41120
diff changeset
890 }
cd297cfc56f3 Move debug command-line option to the UIs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41120
diff changeset
891
cd297cfc56f3 Move debug command-line option to the UIs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41120
diff changeset
892 void
41117
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
893 pidgin_debug_init(void)
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
894 {
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
895 /* Debug window preferences. */
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
896 /*
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
897 * NOTE: This must be set before prefs are loaded, and the callbacks
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
898 * set after they are loaded, since prefs sets the enabled
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
899 * preference here and that loads the window, which calls the
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
900 * configure event, which overrides the width and height! :P
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
901 */
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
902
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
903 purple_prefs_add_none(PIDGIN_PREFS_ROOT "/debug");
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
904
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
905 /* Controls printing to the debug window */
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
906 purple_prefs_add_bool(PIDGIN_PREFS_ROOT "/debug/enabled", FALSE);
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
907 purple_prefs_add_int(PIDGIN_PREFS_ROOT "/debug/filterlevel",
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
908 PURPLE_DEBUG_ALL);
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
909
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
910 purple_prefs_add_int(PIDGIN_PREFS_ROOT "/debug/width", 450);
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
911 purple_prefs_add_int(PIDGIN_PREFS_ROOT "/debug/height", 250);
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
912
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
913 purple_prefs_add_string(PIDGIN_PREFS_ROOT "/debug/regex", "");
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
914 purple_prefs_add_bool(PIDGIN_PREFS_ROOT "/debug/filter", FALSE);
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
915 purple_prefs_add_bool(PIDGIN_PREFS_ROOT "/debug/invert", FALSE);
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
916 purple_prefs_add_bool(PIDGIN_PREFS_ROOT "/debug/case_insensitive", FALSE);
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
917 purple_prefs_add_bool(PIDGIN_PREFS_ROOT "/debug/highlight", FALSE);
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
918
42109
27c84f0b3258 Fix leaks in debug window
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41947
diff changeset
919 pref_callback_id = purple_prefs_connect_callback(NULL,
27c84f0b3258 Fix leaks in debug window
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41947
diff changeset
920 PIDGIN_PREFS_ROOT "/debug/enabled",
27c84f0b3258 Fix leaks in debug window
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41947
diff changeset
921 debug_enabled_cb, NULL);
41117
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
922 }
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
923
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
924 void
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
925 pidgin_debug_uninit(void)
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
926 {
42175
4185b4043214 Use g_clear_handle_id everywhere
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42109
diff changeset
927 g_clear_handle_id(&pref_callback_id, purple_prefs_disconnect_callback);
4185b4043214 Use g_clear_handle_id everywhere
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42109
diff changeset
928 g_clear_handle_id(&debug_enabled_timer, g_source_remove);
41117
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
929 }
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
930
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
931 void *
41840
fe350460fb1c Remove C99-obsoleted constructs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41763
diff changeset
932 pidgin_debug_get_handle(void) {
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
933 static int handle;
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
934
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
935 return &handle;
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
936 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
937

mercurial