pidgin/pidgindebug.c

Sun, 03 Nov 2024 00:05:44 -0500

author
Gary Kramlich <grim@reaperworld.com>
date
Sun, 03 Nov 2024 00:05:44 -0500
changeset 43045
308e8d0ce68c
parent 43009
df1a36761198
child 43127
eae3279e871c
permissions
-rw-r--r--

remove purple3-url-handler.desktop.in.in

The application that did the launching was removed long ago. Also this should
be implemented by the user interfaces and they might provide separate files to
groups schemas as well.

Testing Done:
Called in the turtles.

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

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

mercurial