pidgin/pidgindebug.c

Sun, 03 Nov 2024 00:07:13 -0500

author
Gary Kramlich <grim@reaperworld.com>
date
Sun, 03 Nov 2024 00:07:13 -0500
changeset 43046
eeab15f4576e
parent 43009
df1a36761198
child 43127
eae3279e871c
permissions
-rw-r--r--

Call g_list_model_items_changed as necessary in Purple.ConversationManager

This was missed when implementing Gio.ListModel.

Testing Done:
Ran the tests under valgrind and called in the turtles for the rest.

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

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
42410
563e7a17c220 Fix possible clash of config headers
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42358
diff changeset
22 #include <purpleconfig.h>
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
23
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 #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
25 #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
26
40496
6941fece679b phase2 of pidgin.h: move existing file to pidgincore.h
Gary Kramlich <grim@reaperworld.com>
parents: 40439
diff changeset
27 #include <gtk/gtk.h>
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
28
40360
e21f3bbcc2a5 Update all of the pidgin code to include purple.h
Gary Kramlich <grim@reaperworld.com>
parents: 40197
diff changeset
29 #include <purple.h>
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
30
41748
fb13b6986266 Make the debug window transient for whatever window created it.
Gary Kramlich <grim@reaperworld.com>
parents: 41642
diff changeset
31 #include "pidginapplication.h"
40496
6941fece679b phase2 of pidgin.h: move existing file to pidgincore.h
Gary Kramlich <grim@reaperworld.com>
parents: 40439
diff changeset
32 #include "pidgincore.h"
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
33 #include "pidgindebug.h"
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
34
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
35 #include <gdk/gdkkeysyms.h>
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
36
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
37
39156
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
38 struct _PidginDebugWindow {
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
39 GtkWindow parent;
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
40
39157
5f00c06934cc Re-add autoscroll to debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39156
diff changeset
41 GtkWidget *textview;
39154
ac28e667a064 Convert debug window to GtkTextView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39153
diff changeset
42 GtkTextBuffer *buffer;
39160
709de61bd2d3 debugwin: Also filter new messages as they come in.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39159
diff changeset
43 GtkTextMark *start_mark;
39157
5f00c06934cc Re-add autoscroll to debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39156
diff changeset
44 GtkTextMark *end_mark;
39154
ac28e667a064 Convert debug window to GtkTextView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39153
diff changeset
45 struct {
ac28e667a064 Convert debug window to GtkTextView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39153
diff changeset
46 GtkTextTag *level[PURPLE_DEBUG_FATAL + 1];
ac28e667a064 Convert debug window to GtkTextView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39153
diff changeset
47 GtkTextTag *category;
39159
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
48 GtkTextTag *filtered_invisible;
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
49 GtkTextTag *filtered_visible;
39154
ac28e667a064 Convert debug window to GtkTextView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39153
diff changeset
50 GtkTextTag *match;
39159
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
51 GtkTextTag *paused;
39154
ac28e667a064 Convert debug window to GtkTextView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39153
diff changeset
52 } tags;
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
53 GtkWidget *filter;
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
54 GtkWidget *expression;
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
55 GtkWidget *filterlevel;
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
56
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
57 gboolean paused;
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
58
39163
c38b26076992 debugwin: Make filter options into popover when available.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39162
diff changeset
59 GtkWidget *popover;
39674
166671cecb8c Merge debug window Glade files.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39673
diff changeset
60 GtkWidget *popover_invert;
166671cecb8c Merge debug window Glade files.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39673
diff changeset
61 GtkWidget *popover_highlight;
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
62 GRegex *regex;
39156
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
63 };
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
64
41267
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
65 typedef struct {
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
66 GDateTime *timestamp;
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
67 PurpleDebugLevel level;
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
68 gchar *domain;
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
69 gchar *message;
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
70 } PidginDebugMessage;
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
71
41127
cd297cfc56f3 Move debug command-line option to the UIs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41120
diff changeset
72 static gboolean debug_print_enabled = FALSE;
43009
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
73 static GSettings *settings = NULL;
39156
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
74 static PidginDebugWindow *debug_win = NULL;
43009
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
75 static gulong pref_callback_id = 0;
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
76
42575
580339aa47cc Make sure all of the final types in pidgin are defined as such
Gary Kramlich <grim@reaperworld.com>
parents: 42410
diff changeset
77 G_DEFINE_FINAL_TYPE(PidginDebugWindow, pidgin_debug_window, GTK_TYPE_WINDOW)
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
78
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
79 static gboolean
39157
5f00c06934cc Re-add autoscroll to debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39156
diff changeset
80 view_near_bottom(PidginDebugWindow *win)
5f00c06934cc Re-add autoscroll to debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39156
diff changeset
81 {
5f00c06934cc Re-add autoscroll to debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39156
diff changeset
82 GtkAdjustment *adj = gtk_scrollable_get_vadjustment(
5f00c06934cc Re-add autoscroll to debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39156
diff changeset
83 GTK_SCROLLABLE(win->textview));
5f00c06934cc Re-add autoscroll to debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39156
diff changeset
84 return (gtk_adjustment_get_value(adj) >=
5f00c06934cc Re-add autoscroll to debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39156
diff changeset
85 (gtk_adjustment_get_upper(adj) -
5f00c06934cc Re-add autoscroll to debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39156
diff changeset
86 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
87 }
5f00c06934cc Re-add autoscroll to debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39156
diff changeset
88
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
89 static void
42352
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
90 save_response_cb(GObject *obj, GAsyncResult *result, gpointer data)
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
91 {
41604
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
92 PidginDebugWindow *win = (PidginDebugWindow *)data;
42352
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
93 GFile *file = NULL;
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
94 GFileOutputStream *output = NULL;
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
95 GtkTextIter start, end;
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
96 GDateTime *date = NULL;
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
97 char *date_str = NULL;
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
98 char *tmp = NULL;
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
99 GError *error = NULL;
41763
4a51008d3f64 Remove purple_date_format_full
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41748
diff changeset
100
42352
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
101 file = gtk_file_dialog_save_finish(GTK_FILE_DIALOG(obj), result, NULL);
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
102 if(file == NULL) {
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
103 return;
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
104 }
41604
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
105
42352
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
106 output = g_file_replace(file, NULL, FALSE, G_FILE_CREATE_NONE, NULL,
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
107 &error);
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
108 g_clear_object(&file);
41604
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
109
42352
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
110 if(output == NULL) {
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
111 purple_debug_error("debug",
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
112 "Unable to open file to save debug log: %s",
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
113 error->message);
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
114 g_error_free(error);
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
115 return;
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
116 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
117
42352
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
118 date = g_date_time_new_now_local();
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
119 date_str = g_date_time_format(date, "%c");
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
120 g_date_time_unref(date);
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
121
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
122 tmp = g_strdup_printf("Pidgin Debug Log : %s\n", date_str);
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
123 g_output_stream_write_all(G_OUTPUT_STREAM(output), tmp, strlen(tmp),
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
124 NULL, NULL, &error);
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
125 g_free(tmp);
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
126 g_free(date_str);
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
127
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
128 if(error != NULL) {
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
129 purple_debug_error("debug", "Unable to save debug log: %s",
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
130 error->message);
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
131 g_error_free(error);
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
132 g_object_unref(output);
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
133 return;
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
134 }
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
135
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
136 gtk_text_buffer_get_bounds(win->buffer, &start, &end);
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
137 tmp = gtk_text_buffer_get_text(win->buffer, &start, &end, TRUE);
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
138 g_output_stream_write_all(G_OUTPUT_STREAM(output), tmp, strlen(tmp),
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
139 NULL, NULL, &error);
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
140 g_free(tmp);
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
141
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
142 if(error != NULL) {
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
143 purple_debug_error("debug", "Unable to save debug log: %s",
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
144 error->message);
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
145 g_error_free(error);
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
146 g_object_unref(output);
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
147 return;
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
148 }
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
149
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
150 g_object_unref(output);
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
151 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
153 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
154 save_cb(G_GNUC_UNUSED GtkWidget *w, PidginDebugWindow *win)
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
155 {
42352
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
156 GtkFileDialog *dialog;
41604
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
157
42352
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
158 dialog = gtk_file_dialog_new();
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
159 gtk_file_dialog_set_title(dialog, _("Save Debug Log"));
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
160 gtk_file_dialog_set_modal(dialog, TRUE);
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
161 gtk_file_dialog_set_initial_name(dialog, "purple-debug.log");
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
162 gtk_file_dialog_save(dialog, GTK_WINDOW(win), NULL,
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
163 save_response_cb, win);
1c53950f9052 Migrate from GtkFileChooserNative to GtkFileDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42182
diff changeset
164 g_clear_object(&dialog);
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
165 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
166
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
167 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
168 clear_cb(G_GNUC_UNUSED GtkWidget *w, PidginDebugWindow *win)
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
169 {
39154
ac28e667a064 Convert debug window to GtkTextView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39153
diff changeset
170 gtk_text_buffer_set_text(win->buffer, "", 0);
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
171 }
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 static void
39156
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
174 pause_cb(GtkWidget *w, PidginDebugWindow *win)
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
175 {
41540
cb35b9603c41 Convert debug window to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
176 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
177
39154
ac28e667a064 Convert debug window to GtkTextView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39153
diff changeset
178 if (!win->paused) {
ac28e667a064 Convert debug window to GtkTextView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39153
diff changeset
179 GtkTextIter start, end;
ac28e667a064 Convert debug window to GtkTextView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39153
diff changeset
180 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
181 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
182 &start, &end);
39157
5f00c06934cc Re-add autoscroll to debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39156
diff changeset
183 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
184 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
185 }
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
186 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
187
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
188 /******************************************************************************
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
189 * regex stuff
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
190 *****************************************************************************/
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
191 static void
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
192 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
193 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
194 gtk_widget_remove_css_class(w, "success");
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
195 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
196
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
197 static void
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
198 regex_change_color(GtkWidget *w, gboolean success) {
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
199 if (success) {
41618
7e9ad20d503a Use success/error CSS for Public IP entry
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41617
diff changeset
200 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
201 gtk_widget_add_css_class(w, "success");
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
202 } else {
41618
7e9ad20d503a Use success/error CSS for Public IP entry
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41617
diff changeset
203 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
204 gtk_widget_add_css_class(w, "error");
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
205 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
206 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
207
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
208 static void
39159
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
209 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
210 {
43009
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
211 gboolean highlight, invert;
39159
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
212 GMatchInfo *match;
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
213 gint initial_position;
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
214 gint start_pos, end_pos;
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
215 GtkTextIter match_start, match_end;
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
216 gchar *text;
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
217
41642
eaf836c5f87b Modernize debug window a little
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
218 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
219 return;
41642
eaf836c5f87b Modernize debug window a little
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
220 }
39162
e84a120599f7 debugwin: Don't crash if no regex during message load.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39161
diff changeset
221
43009
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
222 highlight = g_settings_get_boolean(settings, "highlight");
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
223 invert = g_settings_get_boolean(settings, "invert");
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
224
39159
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
225 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
226
43009
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
227 if(!invert) {
39159
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
228 /* First hide everything. */
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
229 gtk_text_buffer_apply_tag(win->buffer,
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
230 win->tags.filtered_invisible, start, end);
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
231 }
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
232
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
233 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
234 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
235 while (g_match_info_matches(match)) {
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
236 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
237 start_pos += initial_position;
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
238 end_pos += initial_position;
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
239
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
240 /* Expand match to full line of message. */
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
241 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
242 &match_start, start_pos);
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
243 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
244 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
245 &match_end, end_pos);
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
246 gtk_text_iter_forward_line(&match_end);
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
247
43009
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
248 if(invert) {
39159
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
249 /* Make invisible. */
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
250 gtk_text_buffer_apply_tag(win->buffer,
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
251 win->tags.filtered_invisible,
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
252 &match_start, &match_end);
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
253 } else {
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
254 /* Make visible again (with higher priority.) */
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
255 gtk_text_buffer_apply_tag(win->buffer,
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
256 win->tags.filtered_visible,
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
257 &match_start, &match_end);
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
258
43009
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
259 if(highlight) {
39159
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
260 gtk_text_buffer_get_iter_at_offset(
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
261 win->buffer,
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
262 &match_start,
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
263 start_pos);
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
264 gtk_text_buffer_get_iter_at_offset(
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
265 win->buffer,
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
266 &match_end,
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
267 end_pos);
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
268 gtk_text_buffer_apply_tag(win->buffer,
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
269 win->tags.match,
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
270 &match_start,
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
271 &match_end);
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
272 }
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
273 }
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
274
42182
3fc2d2b7b7a8 Fix leaked errors
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42175
diff changeset
275 g_match_info_next(match, NULL);
39159
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
276 }
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
277
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
278 g_match_info_free(match);
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
279 g_free(text);
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
280 }
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
281
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
282 static void
39156
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
283 regex_toggle_filter(PidginDebugWindow *win, gboolean filter)
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
284 {
39154
ac28e667a064 Convert debug window to GtkTextView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39153
diff changeset
285 GtkTextIter start, end;
ac28e667a064 Convert debug window to GtkTextView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39153
diff changeset
286
ac28e667a064 Convert debug window to GtkTextView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39153
diff changeset
287 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
288 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
289 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
290 &start, &end);
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
291 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
292 &start, &end);
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
293
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
294 if (filter) {
39159
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
295 do_regex(win, &start, &end);
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
296 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
297 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
298
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
299 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
300 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
301 const gchar *text;
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
302
41540
cb35b9603c41 Convert debug window to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
303 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
304 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
305 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
306
41531
2b86501d13fe Replace gtk_entry_[gs]et_text with gtk_editable_[gs]et_text
Gary Kramlich <grim@reaperworld.com>
parents: 41275
diff changeset
307 text = gtk_editable_get_text(GTK_EDITABLE(win->expression));
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
308
43009
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
309 if(purple_strempty(text)) {
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
310 regex_clear_color(win->expression);
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
311 gtk_widget_set_sensitive(win->filter, FALSE);
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
312 return;
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
313 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
314
41642
eaf836c5f87b Modernize debug window a little
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
315 g_clear_pointer(&win->regex, g_regex_unref);
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
316
42358
5cde734cf63d Remove the deprecated G_REGEX_JAVASCRIPT_COMPAT
Gary Kramlich <grim@reaperworld.com>
parents: 42352
diff changeset
317 win->regex = g_regex_new(text, G_REGEX_CASELESS, 0, NULL);
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
318
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
319 if (win->regex == NULL) {
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
320 /* failed to compile */
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
321 regex_change_color(win->expression, FALSE);
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
322 gtk_widget_set_sensitive(win->filter, FALSE);
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
323 } else {
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
324 /* compiled successfully */
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
325 regex_change_color(win->expression, TRUE);
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
326 gtk_widget_set_sensitive(win->filter, TRUE);
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
327 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
328 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
329
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
330 static void
41540
cb35b9603c41 Convert debug window to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
331 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
332 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
333 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
334 {
cb35b9603c41 Convert debug window to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
335 PidginDebugWindow *win = data;
cb35b9603c41 Convert debug window to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
336
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
337 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
338 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
339 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
340 !gtk_toggle_button_get_active(tb))
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
341 {
41540
cb35b9603c41 Convert debug window to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
342 gtk_toggle_button_set_active(tb, TRUE);
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
343 }
41540
cb35b9603c41 Convert debug window to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
344 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
345 gtk_toggle_button_set_active(tb, FALSE);
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
346 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
347 }
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
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
350 static void
41604
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
351 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
352 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
353 {
41604
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
354 PidginDebugWindow *win = data;
39674
166671cecb8c Merge debug window Glade files.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39673
diff changeset
355
41604
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
356 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
357 &(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
358 gtk_popover_popup(GTK_POPOVER(win->popover));
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
359 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
360
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
361 static void
39156
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
362 debug_window_set_filter_level(PidginDebugWindow *win, int level)
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
363 {
39157
5f00c06934cc Re-add autoscroll to debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39156
diff changeset
364 gboolean scroll;
39154
ac28e667a064 Convert debug window to GtkTextView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39153
diff changeset
365 int i;
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
366
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
367 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
368 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
369 }
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
370
39157
5f00c06934cc Re-add autoscroll to debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39156
diff changeset
371 scroll = view_near_bottom(win);
39154
ac28e667a064 Convert debug window to GtkTextView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39153
diff changeset
372 for (i = 0; i <= PURPLE_DEBUG_FATAL; i++) {
42592
6b65c0e4ba15 Remove unnecessary casts for GObject methods
Gary Kramlich <grim@reaperworld.com>
parents: 42575
diff changeset
373 g_object_set(win->tags.level[i], "invisible", i < level, NULL);
39154
ac28e667a064 Convert debug window to GtkTextView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39153
diff changeset
374 }
39157
5f00c06934cc Re-add autoscroll to debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39156
diff changeset
375 if (scroll) {
5f00c06934cc Re-add autoscroll to debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39156
diff changeset
376 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
377 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
378 }
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
379 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
380
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
381 static void
41642
eaf836c5f87b Modernize debug window a little
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
382 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
383 {
41642
eaf836c5f87b Modernize debug window a little
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
384 GtkDropDown *dropdown = GTK_DROP_DOWN(obj);
eaf836c5f87b Modernize debug window a little
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
385
43009
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
386 g_settings_set_enum(settings, "filterlevel",
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
387 gtk_drop_down_get_selected(dropdown));
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
388 }
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
389
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
390 static void
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
391 pidgin_debug_settings_changed_cb(GSettings *settings, char *key, gpointer data)
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
392 {
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
393 PidginDebugWindow *win = data;
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
394
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
395 if(purple_strequal(key, "active")) {
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
396 gboolean active = g_settings_get_boolean(settings, key);
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
397
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
398 regex_toggle_filter(win, active);
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
399
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
400 } else if(purple_strequal(key, "highlight") ||
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
401 purple_strequal(key, "invert")) {
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
402 if(g_settings_get_boolean(settings, "active")) {
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
403 regex_toggle_filter(win, TRUE);
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
404 }
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
405
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
406 } else if(purple_strequal(key, "filterlevel")) {
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
407 int level = g_settings_get_enum(settings, key);
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
408
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
409 debug_window_set_filter_level(win, level);
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
410 }
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
411 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
412
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
413 static void
41604
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
414 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
415 {
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
416 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
417
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
418 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
419
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
420 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
421 }
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
422
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
423 static void
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
424 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
425 {
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
426 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
427
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
428 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
429
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
430 debug_win = NULL;
43009
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
431 g_settings_set_boolean(settings, "visible", FALSE);
41604
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
432
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
433 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
434 }
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
435
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
436 static void
39156
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
437 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
438 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
439 GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass);
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
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 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
442 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
443
39156
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
444 gtk_widget_class_set_template_from_resource(
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
445 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
446 "/im/pidgin/Pidgin3/Debug/debug.ui"
39156
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
447 );
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
448
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
449 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
450 widget_class, PidginDebugWindow, textview);
5f00c06934cc Re-add autoscroll to debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39156
diff changeset
451 gtk_widget_class_bind_template_child(
39156
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
452 widget_class, PidginDebugWindow, buffer);
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
453 gtk_widget_class_bind_template_child(
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
454 widget_class, PidginDebugWindow, tags.category);
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
455 gtk_widget_class_bind_template_child(
39159
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
456 widget_class, PidginDebugWindow, tags.filtered_invisible);
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
457 gtk_widget_class_bind_template_child(
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
458 widget_class, PidginDebugWindow, tags.filtered_visible);
39156
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
459 gtk_widget_class_bind_template_child(
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
460 widget_class, PidginDebugWindow, tags.level[0]);
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
461 gtk_widget_class_bind_template_child(
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
462 widget_class, PidginDebugWindow, tags.level[1]);
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
463 gtk_widget_class_bind_template_child(
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
464 widget_class, PidginDebugWindow, tags.level[2]);
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
465 gtk_widget_class_bind_template_child(
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
466 widget_class, PidginDebugWindow, tags.level[3]);
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
467 gtk_widget_class_bind_template_child(
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
468 widget_class, PidginDebugWindow, tags.level[4]);
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
469 gtk_widget_class_bind_template_child(
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
470 widget_class, PidginDebugWindow, tags.level[5]);
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
471 gtk_widget_class_bind_template_child(
39159
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
472 widget_class, PidginDebugWindow, tags.paused);
75af993b9ccb debugwin: Apply filtering from regex.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39158
diff changeset
473 gtk_widget_class_bind_template_child(
39156
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
474 widget_class, PidginDebugWindow, filter);
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
475 gtk_widget_class_bind_template_child(
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
476 widget_class, PidginDebugWindow, filterlevel);
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
477 gtk_widget_class_bind_template_child(
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
478 widget_class, PidginDebugWindow, expression);
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
479 gtk_widget_class_bind_template_child(
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
480 widget_class, PidginDebugWindow, tags.match);
39674
166671cecb8c Merge debug window Glade files.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39673
diff changeset
481 gtk_widget_class_bind_template_child(
166671cecb8c Merge debug window Glade files.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39673
diff changeset
482 widget_class, PidginDebugWindow, popover);
166671cecb8c Merge debug window Glade files.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39673
diff changeset
483 gtk_widget_class_bind_template_child(
166671cecb8c Merge debug window Glade files.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39673
diff changeset
484 widget_class, PidginDebugWindow, popover_invert);
166671cecb8c Merge debug window Glade files.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39673
diff changeset
485 gtk_widget_class_bind_template_child(
166671cecb8c Merge debug window Glade files.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39673
diff changeset
486 widget_class, PidginDebugWindow, popover_highlight);
39156
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
487 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
488 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
489 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
490 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
491 regex_changed_cb);
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
492 gtk_widget_class_bind_template_callback(widget_class, regex_popup_cb);
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
493 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
494 regex_key_released_cb);
39156
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
495 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
496 filter_level_changed_cb);
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
497 }
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
498
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
499 static void
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
500 pidgin_debug_window_init(PidginDebugWindow *win)
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
501 {
39157
5f00c06934cc Re-add autoscroll to debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39156
diff changeset
502 GtkTextIter end;
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
503
39156
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
504 gtk_widget_init_template(GTK_WIDGET(win));
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
505
41604
ca2d6ea565a6 Fix debug window on GTK4, plus other issues.
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41540
diff changeset
506 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
507
43009
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
508 g_settings_bind(settings, "width", win, "default-width",
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
509 G_SETTINGS_BIND_DEFAULT);
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
510 g_settings_bind(settings, "height", win, "default-height",
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
511 G_SETTINGS_BIND_DEFAULT);
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
512
43009
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
513 /* We purposely disable the toggle button here in case the regex setting
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
514 * has an empty string. If it does not have an empty string, the change
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
515 * signal will get called and make the toggle button sensitive.
41642
eaf836c5f87b Modernize debug window a little
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
516 */
eaf836c5f87b Modernize debug window a little
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
517 gtk_widget_set_sensitive(win->filter, FALSE);
43009
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
518 g_settings_bind(settings, "active", win->filter, "active",
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
519 G_SETTINGS_BIND_DEFAULT);
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
520 g_settings_bind(settings, "regex", win->expression, "text",
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
521 G_SETTINGS_BIND_DEFAULT);
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
522
43009
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
523 /* This setting doesn't use binding because the uint-typed "selected"
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
524 * property, and the enum-typed setting don't have a mapping. Since we have
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
525 * to do some processing in these cases, just use manual setting instead.
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
526 */
41642
eaf836c5f87b Modernize debug window a little
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
527 gtk_drop_down_set_selected(GTK_DROP_DOWN(win->filterlevel),
43009
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
528 g_settings_get_enum(settings, "filterlevel"));
39163
c38b26076992 debugwin: Make filter options into popover when available.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39162
diff changeset
529
43009
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
530 g_settings_bind(settings, "invert", win->popover_invert, "active",
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
531 G_SETTINGS_BIND_DEFAULT);
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
532 g_settings_bind(settings, "highlight", win->popover_highlight, "active",
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
533 G_SETTINGS_BIND_DEFAULT);
41642
eaf836c5f87b Modernize debug window a little
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41618
diff changeset
534
43009
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
535 g_signal_connect(settings, "changed",
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
536 G_CALLBACK(pidgin_debug_settings_changed_cb), win);
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
537
39160
709de61bd2d3 debugwin: Also filter new messages as they come in.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39159
diff changeset
538 /* 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
539 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
540 auto-scrolling. */
39157
5f00c06934cc Re-add autoscroll to debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39156
diff changeset
541 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
542 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
543 "start", &end, TRUE);
709de61bd2d3 debugwin: Also filter new messages as they come in.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39159
diff changeset
544 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
545 "end", &end, FALSE);
709de61bd2d3 debugwin: Also filter new messages as they come in.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39159
diff changeset
546
39154
ac28e667a064 Convert debug window to GtkTextView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39153
diff changeset
547 /* Set active filter level in textview */
ac28e667a064 Convert debug window to GtkTextView.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39153
diff changeset
548 debug_window_set_filter_level(win,
43009
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
549 g_settings_get_enum(settings, "filterlevel"));
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
550
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
551 clear_cb(NULL, win);
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
552 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
553
43009
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
554 static void
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
555 debug_visible_cb(GSettings *settings, char *key, G_GNUC_UNUSED gpointer data)
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
556 {
43009
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
557 gboolean visible = g_settings_get_boolean(settings, key);
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
558
43009
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
559 g_signal_handler_block(settings, pref_callback_id);
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
560 if(visible) {
41117
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
561 pidgin_debug_window_show();
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
562 } else {
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
563 pidgin_debug_window_hide();
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
564 }
43009
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
565 g_signal_handler_unblock(settings, pref_callback_id);
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
566 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
567
41267
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
568 static gboolean
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
569 pidgin_debug_g_log_handler_cb(gpointer data)
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
570 {
41267
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
571 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
572 GtkTextTag *level_tag = NULL;
41250
e82d07ed6862 Remove purple_utf8_strftime
Gary Kramlich <grim@reaperworld.com>
parents: 41127
diff changeset
573 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
574 GtkTextIter end;
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
575 gboolean scroll;
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
576
43009
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
577 if(debug_win == NULL || !g_settings_get_boolean(settings, "visible")) {
41267
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
578 /* 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
579 * sent this message. */
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
580 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
581 g_free(message->domain);
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
582 g_free(message->message);
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
583 g_free(message);
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
584 return FALSE;
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
585 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
586
41110
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
587 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
588 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
589 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
590
41267
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
591 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
592 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
593
41110
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
594 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
595 debug_win->buffer,
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
596 &end,
41250
e82d07ed6862 Remove purple_utf8_strftime
Gary Kramlich <grim@reaperworld.com>
parents: 41127
diff changeset
597 local_time,
41110
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
598 -1,
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
599 level_tag,
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
600 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
601 NULL);
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
602
43009
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
603 if(!purple_strempty(message->domain)) {
41110
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
604 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
605 debug_win->buffer,
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
606 &end,
41267
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
607 message->domain,
41110
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
608 -1,
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
609 level_tag,
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
610 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
611 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
612 NULL);
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
613 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
614 debug_win->buffer,
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
615 &end,
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
616 ": ",
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
617 2,
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
618 level_tag,
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
619 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
620 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
621 NULL);
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
622 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
623
41110
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
624 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
625 debug_win->buffer,
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
626 &end,
41267
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
627 message->message,
41110
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
628 -1,
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
629 level_tag,
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
630 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
631 NULL);
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
632 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
633 debug_win->buffer,
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
634 &end,
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
635 "\n",
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
636 1,
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
637 level_tag,
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
638 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
639 NULL);
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
640
43009
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
641 if(g_settings_get_boolean(settings, "active") && debug_win->regex) {
41110
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
642 /* 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
643 GtkTextIter start;
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
644
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
645 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
646 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
647 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
648 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
649
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
650 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
651 }
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
652
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
653 if (scroll) {
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
654 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
655 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
656 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
657 }
cbfcefb3a34d Route GLib logging directly to the Pidgin debug window
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 41030
diff changeset
658
41267
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
659 g_free(local_time);
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
660 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
661 g_free(message->domain);
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
662 g_free(message->message);
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
663 g_free(message);
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
664
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
665 return FALSE;
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
666 }
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
667
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
668 static GLogWriterOutput
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
669 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
670 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
671 {
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
672 PidginDebugMessage *message = NULL;
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
673 gsize i;
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
674
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
675 if (debug_win == NULL) {
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
676 if (debug_print_enabled) {
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
677 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
678 } else {
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
679 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
680 }
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
681 }
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
682
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
683 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
684 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
685
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
686 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
687 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
688 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
689 } 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
690 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
691 }
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
692 }
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
693
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
694 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
695 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
696 } 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
697 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
698 } 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
699 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
700 } 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
701 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
702 } 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
703 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
704 } 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
705 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
706 } else {
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
707 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
708 }
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
709
330cfcc1404d Fix Pidgin debug window with threaded logging
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41250
diff changeset
710 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
711
41127
cd297cfc56f3 Move debug command-line option to the UIs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41120
diff changeset
712 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
713 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
714 } else {
cd297cfc56f3 Move debug command-line option to the UIs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41120
diff changeset
715 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
716 }
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
717 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
718
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
719 void
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
720 pidgin_debug_window_show(void)
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
721 {
39156
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
722 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
723 GApplication *application = NULL;
fb13b6986266 Make the debug window transient for whatever window created it.
Gary Kramlich <grim@reaperworld.com>
parents: 41642
diff changeset
724 PidginApplication *pidgin_application = NULL;
fb13b6986266 Make the debug window transient for whatever window created it.
Gary Kramlich <grim@reaperworld.com>
parents: 41642
diff changeset
725 GtkWindow *parent = NULL;
fb13b6986266 Make the debug window transient for whatever window created it.
Gary Kramlich <grim@reaperworld.com>
parents: 41642
diff changeset
726
fb13b6986266 Make the debug window transient for whatever window created it.
Gary Kramlich <grim@reaperworld.com>
parents: 41642
diff changeset
727 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
728 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
729 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
730
39156
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
731 debug_win = PIDGIN_DEBUG_WINDOW(
b081408dc69d Convert debug window to glade.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39155
diff changeset
732 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
733
fb13b6986266 Make the debug window transient for whatever window created it.
Gary Kramlich <grim@reaperworld.com>
parents: 41642
diff changeset
734 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
735 }
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
736
42858
a227c1f6c299 Use gtk_window_present instead of gtk_window_present_with_time
Gary Kramlich <grim@reaperworld.com>
parents: 42836
diff changeset
737 gtk_window_present(GTK_WINDOW(debug_win));
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
738
43009
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
739 g_settings_set_boolean(settings, "visible", TRUE);
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
740 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
741
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
742 void
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
743 pidgin_debug_window_hide(void)
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
744 {
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
745 if (debug_win != NULL) {
41540
cb35b9603c41 Convert debug window to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
746 gtk_window_destroy(GTK_WINDOW(debug_win));
39152
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
747 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
748 }
37144ff35a91 Rename gtkdebug -> pidgindebug.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff changeset
749
43009
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
750 GSettings *
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
751 pidgin_debug_get_settings(void)
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
752 {
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
753 return settings;
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
754 }
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
755
41117
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
756 void
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
757 pidgin_debug_init_handler(void)
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
758 {
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
759 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
760 }
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
761
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
762 void
41127
cd297cfc56f3 Move debug command-line option to the UIs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41120
diff changeset
763 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
764 {
cd297cfc56f3 Move debug command-line option to the UIs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41120
diff changeset
765 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
766 }
cd297cfc56f3 Move debug command-line option to the UIs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41120
diff changeset
767
cd297cfc56f3 Move debug command-line option to the UIs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41120
diff changeset
768 void
41117
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
769 pidgin_debug_init(void)
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
770 {
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
771 /* Debug window preferences. */
43009
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
772 GSettingsBackend *backend = purple_core_get_settings_backend();
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
773 settings = g_settings_new_with_backend("im.pidgin.Pidgin3.Debug", backend);
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
774 pref_callback_id = g_signal_connect(settings, "changed::visible",
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
775 G_CALLBACK(debug_visible_cb), NULL);
41117
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
776 }
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
777
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
778 void
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
779 pidgin_debug_uninit(void)
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
780 {
43009
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
781 g_clear_signal_handler(&pref_callback_id, settings);
df1a36761198 Port Debug Window to GSettings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 42858
diff changeset
782 g_clear_object(&settings);
41117
6dc7e403f8f2 Initialize Pidgin GLib logging handler earlier
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41110
diff changeset
783 }

mercurial