pidgin/pidgindebug.c

Sat, 29 Oct 2022 01:14:13 -0500

author
Gary Kramlich <grim@reaperworld.com>
date
Sat, 29 Oct 2022 01:14:13 -0500
changeset 41859
ed82ab63d15a
parent 41840
fe350460fb1c
child 41947
7b3312d0760c
permissions
-rw-r--r--

Convert PidginProxyPrefs to Adwaita 1.2

Testing Done:
Set all the values via the ui and the config file and tested bad values in the port in both as well. Bad values in the ui will store whatever atoi returned, but bad values in the config file will fallback to the default.

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

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

mercurial