Thu, 23 Mar 2023 23:11:59 -0500
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 |