Mercurial > pidgin.yaz
annotate finch/gntdebug.c @ 27109:fdc0035bea5a
Change the way we parse messages on MySpace a little bit. This
fixes #8846: people using web myspaceIM can't respond to pidgin myspaceIM
For some reason IMs send using the myspace web site are sent so that
they won't become offline messages if the other person is offline.
I'm not really sure why that decision was made.
So now we treat messages with bm 1 the same as messages with bm 121. This means
we have to combine the function that parses out typing notification with
the function that parses IMs. And we check for typing notifications by
looking for %typing%. Which means if someone sends the IM "%typing%" with
no markup then we'll interpret it as a typing notification. And there's
nothing we can do to differentiate between the two. I asked.
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Thu, 04 Jun 2009 05:19:49 +0000 |
parents | e23a74d7c97c |
children | f7c5bb2f6623 |
rev | line source |
---|---|
15818 | 1 /** |
2 * @file gntdebug.c GNT Debug API | |
16194
0f0832c13fcb
Rename the Doxygen group from gntui to finch and define the finch group
Richard Laager <rlaager@wiktel.com>
parents:
16124
diff
changeset
|
3 * @ingroup finch |
20074
6bf32c9e15a7
remove gpl boilerplate from doxygen docs
Sean Egan <seanegan@gmail.com>
parents:
19680
diff
changeset
|
4 */ |
6bf32c9e15a7
remove gpl boilerplate from doxygen docs
Sean Egan <seanegan@gmail.com>
parents:
19680
diff
changeset
|
5 |
6bf32c9e15a7
remove gpl boilerplate from doxygen docs
Sean Egan <seanegan@gmail.com>
parents:
19680
diff
changeset
|
6 /* finch |
15818 | 7 * |
15871
66dff3dfdea6
Re-sed the copyright notices so they don't all talk about Purple.
Richard Laager <rlaager@wiktel.com>
parents:
15823
diff
changeset
|
8 * Finch is the legal property of its developers, whose names are too numerous |
15818 | 9 * to list here. Please refer to the COPYRIGHT file distributed with this |
10 * source distribution. | |
11 * | |
12 * This program is free software; you can redistribute it and/or modify | |
13 * it under the terms of the GNU General Public License as published by | |
14 * the Free Software Foundation; either version 2 of the License, or | |
15 * (at your option) any later version. | |
16 * | |
17 * This program is distributed in the hope that it will be useful, | |
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
20 * GNU General Public License for more details. | |
21 * | |
22 * You should have received a copy of the GNU General Public License | |
23 * along with this program; if not, write to the Free Software | |
19680
44b4e8bd759b
The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
18454
diff
changeset
|
24 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
15818 | 25 */ |
26 #include <gnt.h> | |
27 #include <gntbox.h> | |
28 #include <gntbutton.h> | |
29 #include <gntcheckbox.h> | |
17011
531a4585d437
Now that timestamps are gone, let's allow filter strings in the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16999
diff
changeset
|
30 #include <gntentry.h> |
20672
c8d4fe2cd0d7
Add save button to the debug window and alter some GROW_X for visual appeal
Richard Nelson <wabz@pidgin.im>
parents:
20074
diff
changeset
|
31 #include <gntfilesel.h> |
17011
531a4585d437
Now that timestamps are gone, let's allow filter strings in the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16999
diff
changeset
|
32 #include <gntlabel.h> |
15818 | 33 #include <gntline.h> |
17011
531a4585d437
Now that timestamps are gone, let's allow filter strings in the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16999
diff
changeset
|
34 #include <gnttextview.h> |
15818 | 35 |
36 #include "gntdebug.h" | |
15823 | 37 #include "finch.h" |
20672
c8d4fe2cd0d7
Add save button to the debug window and alter some GROW_X for visual appeal
Richard Nelson <wabz@pidgin.im>
parents:
20074
diff
changeset
|
38 #include "notify.h" |
26429
1c73d2ef9ddc
Remove some extra edits that snuck into Finch.
Mike Ruprecht <maiku@soc.pidgin.im>
parents:
26062
diff
changeset
|
39 #include "util.h" |
15818 | 40 |
41 #include <stdio.h> | |
42 #include <string.h> | |
43 | |
16427
4999bbc52881
Works for me! Renames prefs: /core to /purple, /gaim/gtk to /pidgin, /gaim/gnt to /finch
Sean Egan <seanegan@gmail.com>
parents:
16194
diff
changeset
|
44 #define PREF_ROOT "/finch/debug" |
15818 | 45 |
24851
bbcdb1786eda
Redirect stderr to the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24503
diff
changeset
|
46 static gboolean |
bbcdb1786eda
Redirect stderr to the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24503
diff
changeset
|
47 handle_fprintf_stderr_cb(GIOChannel *source, GIOCondition cond, gpointer null) |
bbcdb1786eda
Redirect stderr to the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24503
diff
changeset
|
48 { |
bbcdb1786eda
Redirect stderr to the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24503
diff
changeset
|
49 gssize size; |
bbcdb1786eda
Redirect stderr to the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24503
diff
changeset
|
50 char message[1024]; |
bbcdb1786eda
Redirect stderr to the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24503
diff
changeset
|
51 |
bbcdb1786eda
Redirect stderr to the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24503
diff
changeset
|
52 size = read(g_io_channel_unix_get_fd(source), message, sizeof(message) - 1); |
bbcdb1786eda
Redirect stderr to the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24503
diff
changeset
|
53 if (size <= 0) { |
bbcdb1786eda
Redirect stderr to the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24503
diff
changeset
|
54 /* Something bad probably happened elsewhere ... let's ignore */ |
bbcdb1786eda
Redirect stderr to the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24503
diff
changeset
|
55 } else { |
bbcdb1786eda
Redirect stderr to the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24503
diff
changeset
|
56 message[size] = '\0'; |
bbcdb1786eda
Redirect stderr to the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24503
diff
changeset
|
57 g_log("stderr", G_LOG_LEVEL_WARNING, "%s", message); |
bbcdb1786eda
Redirect stderr to the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24503
diff
changeset
|
58 } |
bbcdb1786eda
Redirect stderr to the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24503
diff
changeset
|
59 |
bbcdb1786eda
Redirect stderr to the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24503
diff
changeset
|
60 return TRUE; |
bbcdb1786eda
Redirect stderr to the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24503
diff
changeset
|
61 } |
bbcdb1786eda
Redirect stderr to the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24503
diff
changeset
|
62 |
bbcdb1786eda
Redirect stderr to the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24503
diff
changeset
|
63 static void |
bbcdb1786eda
Redirect stderr to the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24503
diff
changeset
|
64 handle_fprintf_stderr(gboolean stop) |
bbcdb1786eda
Redirect stderr to the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24503
diff
changeset
|
65 { |
bbcdb1786eda
Redirect stderr to the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24503
diff
changeset
|
66 GIOChannel *stderrch; |
bbcdb1786eda
Redirect stderr to the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24503
diff
changeset
|
67 static int readhandle = -1; |
bbcdb1786eda
Redirect stderr to the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24503
diff
changeset
|
68 int pipes[2]; |
bbcdb1786eda
Redirect stderr to the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24503
diff
changeset
|
69 |
bbcdb1786eda
Redirect stderr to the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24503
diff
changeset
|
70 if (stop) { |
bbcdb1786eda
Redirect stderr to the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24503
diff
changeset
|
71 if (readhandle >= 0) { |
bbcdb1786eda
Redirect stderr to the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24503
diff
changeset
|
72 g_source_remove(readhandle); |
bbcdb1786eda
Redirect stderr to the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24503
diff
changeset
|
73 readhandle = -1; |
bbcdb1786eda
Redirect stderr to the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24503
diff
changeset
|
74 } |
bbcdb1786eda
Redirect stderr to the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24503
diff
changeset
|
75 return; |
bbcdb1786eda
Redirect stderr to the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24503
diff
changeset
|
76 } |
bbcdb1786eda
Redirect stderr to the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24503
diff
changeset
|
77 pipe(pipes); |
bbcdb1786eda
Redirect stderr to the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24503
diff
changeset
|
78 dup2(pipes[1], STDERR_FILENO); |
bbcdb1786eda
Redirect stderr to the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24503
diff
changeset
|
79 |
bbcdb1786eda
Redirect stderr to the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24503
diff
changeset
|
80 stderrch = g_io_channel_unix_new(pipes[0]); |
bbcdb1786eda
Redirect stderr to the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24503
diff
changeset
|
81 g_io_channel_set_close_on_unref(stderrch, TRUE); |
bbcdb1786eda
Redirect stderr to the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24503
diff
changeset
|
82 readhandle = g_io_add_watch_full(stderrch, G_PRIORITY_HIGH, |
bbcdb1786eda
Redirect stderr to the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24503
diff
changeset
|
83 G_IO_IN | G_IO_ERR | G_IO_PRI, |
bbcdb1786eda
Redirect stderr to the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24503
diff
changeset
|
84 handle_fprintf_stderr_cb, NULL, NULL); |
bbcdb1786eda
Redirect stderr to the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24503
diff
changeset
|
85 g_io_channel_unref(stderrch); |
bbcdb1786eda
Redirect stderr to the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24503
diff
changeset
|
86 } |
bbcdb1786eda
Redirect stderr to the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24503
diff
changeset
|
87 |
15818 | 88 static struct |
89 { | |
90 GntWidget *window; | |
91 GntWidget *tview; | |
17011
531a4585d437
Now that timestamps are gone, let's allow filter strings in the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16999
diff
changeset
|
92 GntWidget *search; |
15818 | 93 gboolean paused; |
94 } debug; | |
95 | |
17011
531a4585d437
Now that timestamps are gone, let's allow filter strings in the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16999
diff
changeset
|
96 static gboolean |
531a4585d437
Now that timestamps are gone, let's allow filter strings in the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16999
diff
changeset
|
97 match_string(const char *category, const char *args) |
531a4585d437
Now that timestamps are gone, let's allow filter strings in the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16999
diff
changeset
|
98 { |
531a4585d437
Now that timestamps are gone, let's allow filter strings in the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16999
diff
changeset
|
99 const char *str = gnt_entry_get_text(GNT_ENTRY(debug.search)); |
531a4585d437
Now that timestamps are gone, let's allow filter strings in the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16999
diff
changeset
|
100 if (!str || !*str) |
531a4585d437
Now that timestamps are gone, let's allow filter strings in the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16999
diff
changeset
|
101 return TRUE; |
17026
47a9ba4f4373
Fix debug filtering.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17011
diff
changeset
|
102 if (g_strrstr(category, str) != NULL) |
17011
531a4585d437
Now that timestamps are gone, let's allow filter strings in the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16999
diff
changeset
|
103 return TRUE; |
17026
47a9ba4f4373
Fix debug filtering.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17011
diff
changeset
|
104 if (g_strrstr(args, str) != NULL) |
17011
531a4585d437
Now that timestamps are gone, let's allow filter strings in the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16999
diff
changeset
|
105 return TRUE; |
531a4585d437
Now that timestamps are gone, let's allow filter strings in the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16999
diff
changeset
|
106 return FALSE; |
531a4585d437
Now that timestamps are gone, let's allow filter strings in the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16999
diff
changeset
|
107 } |
531a4585d437
Now that timestamps are gone, let's allow filter strings in the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16999
diff
changeset
|
108 |
15818 | 109 static void |
15823 | 110 finch_debug_print(PurpleDebugLevel level, const char *category, |
15818 | 111 const char *args) |
112 { | |
17011
531a4585d437
Now that timestamps are gone, let's allow filter strings in the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16999
diff
changeset
|
113 if (debug.window && !debug.paused && match_string(category, args)) |
15818 | 114 { |
115 int pos = gnt_text_view_get_lines_below(GNT_TEXT_VIEW(debug.tview)); | |
116 GntTextFormatFlags flag = GNT_TEXT_FLAG_NORMAL; | |
16999
87748f771638
The timestamp pref has been removed. Update finch accordingly.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16677
diff
changeset
|
117 const char *mdate; |
87748f771638
The timestamp pref has been removed. Update finch accordingly.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16677
diff
changeset
|
118 time_t mtime = time(NULL); |
87748f771638
The timestamp pref has been removed. Update finch accordingly.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16677
diff
changeset
|
119 mdate = purple_utf8_strftime("%H:%M:%S ", localtime(&mtime)); |
87748f771638
The timestamp pref has been removed. Update finch accordingly.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16677
diff
changeset
|
120 gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(debug.tview), |
87748f771638
The timestamp pref has been removed. Update finch accordingly.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16677
diff
changeset
|
121 mdate, flag); |
15818 | 122 |
123 gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(debug.tview), | |
124 category, GNT_TEXT_FLAG_BOLD); | |
125 gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(debug.tview), | |
126 ": ", GNT_TEXT_FLAG_BOLD); | |
127 | |
128 switch (level) | |
129 { | |
15823 | 130 case PURPLE_DEBUG_WARNING: |
15818 | 131 flag |= GNT_TEXT_FLAG_UNDERLINE; |
15823 | 132 case PURPLE_DEBUG_ERROR: |
133 case PURPLE_DEBUG_FATAL: | |
15818 | 134 flag |= GNT_TEXT_FLAG_BOLD; |
135 break; | |
136 default: | |
137 break; | |
138 } | |
139 | |
140 gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(debug.tview), args, flag); | |
141 if (pos <= 1) | |
142 gnt_text_view_scroll(GNT_TEXT_VIEW(debug.tview), 0); | |
143 } | |
144 } | |
145 | |
15985
6dc5dc83a61b
Add a whimpy ui op to the debug API that returns TRUE if debugging
Mark Doliner <mark@kingant.net>
parents:
15871
diff
changeset
|
146 static gboolean |
6dc5dc83a61b
Add a whimpy ui op to the debug API that returns TRUE if debugging
Mark Doliner <mark@kingant.net>
parents:
15871
diff
changeset
|
147 finch_debug_is_enabled(PurpleDebugLevel level, const char *category) |
6dc5dc83a61b
Add a whimpy ui op to the debug API that returns TRUE if debugging
Mark Doliner <mark@kingant.net>
parents:
15871
diff
changeset
|
148 { |
6dc5dc83a61b
Add a whimpy ui op to the debug API that returns TRUE if debugging
Mark Doliner <mark@kingant.net>
parents:
15871
diff
changeset
|
149 return debug.window && !debug.paused; |
6dc5dc83a61b
Add a whimpy ui op to the debug API that returns TRUE if debugging
Mark Doliner <mark@kingant.net>
parents:
15871
diff
changeset
|
150 } |
6dc5dc83a61b
Add a whimpy ui op to the debug API that returns TRUE if debugging
Mark Doliner <mark@kingant.net>
parents:
15871
diff
changeset
|
151 |
15823 | 152 static PurpleDebugUiOps uiops = |
15818 | 153 { |
154 finch_debug_print, | |
16677
30829e806dae
And finch is up to date
Gary Kramlich <grim@reaperworld.com>
parents:
16427
diff
changeset
|
155 finch_debug_is_enabled, |
30829e806dae
And finch is up to date
Gary Kramlich <grim@reaperworld.com>
parents:
16427
diff
changeset
|
156 |
30829e806dae
And finch is up to date
Gary Kramlich <grim@reaperworld.com>
parents:
16427
diff
changeset
|
157 /* padding */ |
30829e806dae
And finch is up to date
Gary Kramlich <grim@reaperworld.com>
parents:
16427
diff
changeset
|
158 NULL, |
30829e806dae
And finch is up to date
Gary Kramlich <grim@reaperworld.com>
parents:
16427
diff
changeset
|
159 NULL, |
30829e806dae
And finch is up to date
Gary Kramlich <grim@reaperworld.com>
parents:
16427
diff
changeset
|
160 NULL, |
30829e806dae
And finch is up to date
Gary Kramlich <grim@reaperworld.com>
parents:
16427
diff
changeset
|
161 NULL |
15818 | 162 }; |
163 | |
15823 | 164 PurpleDebugUiOps *finch_debug_get_ui_ops() |
15818 | 165 { |
166 return &uiops; | |
167 } | |
168 | |
169 static void | |
170 reset_debug_win(GntWidget *w, gpointer null) | |
171 { | |
17011
531a4585d437
Now that timestamps are gone, let's allow filter strings in the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16999
diff
changeset
|
172 debug.window = debug.tview = debug.search = NULL; |
15818 | 173 } |
174 | |
175 static void | |
176 clear_debug_win(GntWidget *w, GntTextView *tv) | |
177 { | |
178 gnt_text_view_clear(tv); | |
179 } | |
180 | |
181 static void | |
182 print_stderr(const char *string) | |
183 { | |
184 g_printerr("%s", string); | |
185 } | |
186 | |
187 static void | |
188 toggle_pause(GntWidget *w, gpointer n) | |
189 { | |
190 debug.paused = !debug.paused; | |
191 } | |
192 | |
193 /* Xerox */ | |
194 static void | |
15823 | 195 purple_glib_log_handler(const gchar *domain, GLogLevelFlags flags, |
15818 | 196 const gchar *msg, gpointer user_data) |
197 { | |
15823 | 198 PurpleDebugLevel level; |
15818 | 199 char *new_msg = NULL; |
200 char *new_domain = NULL; | |
201 | |
202 if ((flags & G_LOG_LEVEL_ERROR) == G_LOG_LEVEL_ERROR) | |
15823 | 203 level = PURPLE_DEBUG_ERROR; |
15818 | 204 else if ((flags & G_LOG_LEVEL_CRITICAL) == G_LOG_LEVEL_CRITICAL) |
15823 | 205 level = PURPLE_DEBUG_FATAL; |
15818 | 206 else if ((flags & G_LOG_LEVEL_WARNING) == G_LOG_LEVEL_WARNING) |
15823 | 207 level = PURPLE_DEBUG_WARNING; |
15818 | 208 else if ((flags & G_LOG_LEVEL_MESSAGE) == G_LOG_LEVEL_MESSAGE) |
15823 | 209 level = PURPLE_DEBUG_INFO; |
15818 | 210 else if ((flags & G_LOG_LEVEL_INFO) == G_LOG_LEVEL_INFO) |
15823 | 211 level = PURPLE_DEBUG_INFO; |
15818 | 212 else if ((flags & G_LOG_LEVEL_DEBUG) == G_LOG_LEVEL_DEBUG) |
15823 | 213 level = PURPLE_DEBUG_MISC; |
15818 | 214 else |
215 { | |
15823 | 216 purple_debug_warning("gntdebug", |
15818 | 217 "Unknown glib logging level in %d\n", flags); |
218 | |
15823 | 219 level = PURPLE_DEBUG_MISC; /* This will never happen. */ |
15818 | 220 } |
221 | |
222 if (msg != NULL) | |
15823 | 223 new_msg = purple_utf8_try_convert(msg); |
15818 | 224 |
225 if (domain != NULL) | |
15823 | 226 new_domain = purple_utf8_try_convert(domain); |
15818 | 227 |
228 if (new_msg != NULL) | |
229 { | |
15823 | 230 purple_debug(level, (new_domain != NULL ? new_domain : "g_log"), |
15818 | 231 "%s\n", new_msg); |
232 | |
233 g_free(new_msg); | |
234 } | |
235 | |
236 g_free(new_domain); | |
237 } | |
238 | |
239 static void | |
240 size_changed_cb(GntWidget *widget, int oldw, int oldh) | |
241 { | |
242 int w, h; | |
243 gnt_widget_get_size(widget, &w, &h); | |
15823 | 244 purple_prefs_set_int(PREF_ROOT "/size/width", w); |
245 purple_prefs_set_int(PREF_ROOT "/size/height", h); | |
15818 | 246 } |
247 | |
17011
531a4585d437
Now that timestamps are gone, let's allow filter strings in the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16999
diff
changeset
|
248 static gboolean |
531a4585d437
Now that timestamps are gone, let's allow filter strings in the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16999
diff
changeset
|
249 for_real(gpointer entry) |
531a4585d437
Now that timestamps are gone, let's allow filter strings in the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16999
diff
changeset
|
250 { |
531a4585d437
Now that timestamps are gone, let's allow filter strings in the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16999
diff
changeset
|
251 purple_prefs_set_string(PREF_ROOT "/filter", gnt_entry_get_text(entry)); |
531a4585d437
Now that timestamps are gone, let's allow filter strings in the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16999
diff
changeset
|
252 return FALSE; |
531a4585d437
Now that timestamps are gone, let's allow filter strings in the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16999
diff
changeset
|
253 } |
531a4585d437
Now that timestamps are gone, let's allow filter strings in the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16999
diff
changeset
|
254 |
531a4585d437
Now that timestamps are gone, let's allow filter strings in the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16999
diff
changeset
|
255 static void |
531a4585d437
Now that timestamps are gone, let's allow filter strings in the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16999
diff
changeset
|
256 update_filter_string(GntEntry *entry, gpointer null) |
531a4585d437
Now that timestamps are gone, let's allow filter strings in the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16999
diff
changeset
|
257 { |
531a4585d437
Now that timestamps are gone, let's allow filter strings in the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16999
diff
changeset
|
258 int id = g_timeout_add(1000, for_real, entry); |
531a4585d437
Now that timestamps are gone, let's allow filter strings in the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16999
diff
changeset
|
259 g_object_set_data_full(G_OBJECT(entry), "update-filter", GINT_TO_POINTER(id), |
531a4585d437
Now that timestamps are gone, let's allow filter strings in the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16999
diff
changeset
|
260 (GDestroyNotify)g_source_remove); |
531a4585d437
Now that timestamps are gone, let's allow filter strings in the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16999
diff
changeset
|
261 } |
531a4585d437
Now that timestamps are gone, let's allow filter strings in the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16999
diff
changeset
|
262 |
20672
c8d4fe2cd0d7
Add save button to the debug window and alter some GROW_X for visual appeal
Richard Nelson <wabz@pidgin.im>
parents:
20074
diff
changeset
|
263 static void |
c8d4fe2cd0d7
Add save button to the debug window and alter some GROW_X for visual appeal
Richard Nelson <wabz@pidgin.im>
parents:
20074
diff
changeset
|
264 file_save(GntFileSel *fs, const char *path, const char *file, GntTextView *tv) |
c8d4fe2cd0d7
Add save button to the debug window and alter some GROW_X for visual appeal
Richard Nelson <wabz@pidgin.im>
parents:
20074
diff
changeset
|
265 { |
c8d4fe2cd0d7
Add save button to the debug window and alter some GROW_X for visual appeal
Richard Nelson <wabz@pidgin.im>
parents:
20074
diff
changeset
|
266 FILE *fp; |
c8d4fe2cd0d7
Add save button to the debug window and alter some GROW_X for visual appeal
Richard Nelson <wabz@pidgin.im>
parents:
20074
diff
changeset
|
267 |
c8d4fe2cd0d7
Add save button to the debug window and alter some GROW_X for visual appeal
Richard Nelson <wabz@pidgin.im>
parents:
20074
diff
changeset
|
268 if ((fp = g_fopen(path, "w+")) == NULL) { |
c8d4fe2cd0d7
Add save button to the debug window and alter some GROW_X for visual appeal
Richard Nelson <wabz@pidgin.im>
parents:
20074
diff
changeset
|
269 purple_notify_error(NULL, NULL, _("Unable to open file."), NULL); |
c8d4fe2cd0d7
Add save button to the debug window and alter some GROW_X for visual appeal
Richard Nelson <wabz@pidgin.im>
parents:
20074
diff
changeset
|
270 return; |
c8d4fe2cd0d7
Add save button to the debug window and alter some GROW_X for visual appeal
Richard Nelson <wabz@pidgin.im>
parents:
20074
diff
changeset
|
271 } |
c8d4fe2cd0d7
Add save button to the debug window and alter some GROW_X for visual appeal
Richard Nelson <wabz@pidgin.im>
parents:
20074
diff
changeset
|
272 |
c8d4fe2cd0d7
Add save button to the debug window and alter some GROW_X for visual appeal
Richard Nelson <wabz@pidgin.im>
parents:
20074
diff
changeset
|
273 fprintf(fp, "Finch Debug Log : %s\n", purple_date_format_full(NULL)); |
24398
0320b4a33432
Backport the 'purple_debug_*(msg)' -> 'purple_debug_*("%s", msg);' fixes.
Richard Laager <rlaager@wiktel.com>
parents:
21796
diff
changeset
|
274 fprintf(fp, "%s", tv->string->str); |
20672
c8d4fe2cd0d7
Add save button to the debug window and alter some GROW_X for visual appeal
Richard Nelson <wabz@pidgin.im>
parents:
20074
diff
changeset
|
275 fclose(fp); |
c8d4fe2cd0d7
Add save button to the debug window and alter some GROW_X for visual appeal
Richard Nelson <wabz@pidgin.im>
parents:
20074
diff
changeset
|
276 gnt_widget_destroy(GNT_WIDGET(fs)); |
c8d4fe2cd0d7
Add save button to the debug window and alter some GROW_X for visual appeal
Richard Nelson <wabz@pidgin.im>
parents:
20074
diff
changeset
|
277 } |
c8d4fe2cd0d7
Add save button to the debug window and alter some GROW_X for visual appeal
Richard Nelson <wabz@pidgin.im>
parents:
20074
diff
changeset
|
278 |
c8d4fe2cd0d7
Add save button to the debug window and alter some GROW_X for visual appeal
Richard Nelson <wabz@pidgin.im>
parents:
20074
diff
changeset
|
279 static void |
c8d4fe2cd0d7
Add save button to the debug window and alter some GROW_X for visual appeal
Richard Nelson <wabz@pidgin.im>
parents:
20074
diff
changeset
|
280 file_cancel(GntWidget *w, GntFileSel *fs) |
c8d4fe2cd0d7
Add save button to the debug window and alter some GROW_X for visual appeal
Richard Nelson <wabz@pidgin.im>
parents:
20074
diff
changeset
|
281 { |
c8d4fe2cd0d7
Add save button to the debug window and alter some GROW_X for visual appeal
Richard Nelson <wabz@pidgin.im>
parents:
20074
diff
changeset
|
282 gnt_widget_destroy(GNT_WIDGET(fs)); |
c8d4fe2cd0d7
Add save button to the debug window and alter some GROW_X for visual appeal
Richard Nelson <wabz@pidgin.im>
parents:
20074
diff
changeset
|
283 } |
c8d4fe2cd0d7
Add save button to the debug window and alter some GROW_X for visual appeal
Richard Nelson <wabz@pidgin.im>
parents:
20074
diff
changeset
|
284 |
c8d4fe2cd0d7
Add save button to the debug window and alter some GROW_X for visual appeal
Richard Nelson <wabz@pidgin.im>
parents:
20074
diff
changeset
|
285 static void |
c8d4fe2cd0d7
Add save button to the debug window and alter some GROW_X for visual appeal
Richard Nelson <wabz@pidgin.im>
parents:
20074
diff
changeset
|
286 save_debug_win(GntWidget *w, GntTextView *tv) |
c8d4fe2cd0d7
Add save button to the debug window and alter some GROW_X for visual appeal
Richard Nelson <wabz@pidgin.im>
parents:
20074
diff
changeset
|
287 { |
c8d4fe2cd0d7
Add save button to the debug window and alter some GROW_X for visual appeal
Richard Nelson <wabz@pidgin.im>
parents:
20074
diff
changeset
|
288 GntWidget *window = gnt_file_sel_new(); |
c8d4fe2cd0d7
Add save button to the debug window and alter some GROW_X for visual appeal
Richard Nelson <wabz@pidgin.im>
parents:
20074
diff
changeset
|
289 GntFileSel *sel = GNT_FILE_SEL(window); |
c8d4fe2cd0d7
Add save button to the debug window and alter some GROW_X for visual appeal
Richard Nelson <wabz@pidgin.im>
parents:
20074
diff
changeset
|
290 gnt_file_sel_set_current_location(sel, purple_home_dir()); |
c8d4fe2cd0d7
Add save button to the debug window and alter some GROW_X for visual appeal
Richard Nelson <wabz@pidgin.im>
parents:
20074
diff
changeset
|
291 gnt_file_sel_set_suggested_filename(sel, "debug.txt"); |
c8d4fe2cd0d7
Add save button to the debug window and alter some GROW_X for visual appeal
Richard Nelson <wabz@pidgin.im>
parents:
20074
diff
changeset
|
292 g_signal_connect(G_OBJECT(sel), "file_selected", G_CALLBACK(file_save), tv); |
c8d4fe2cd0d7
Add save button to the debug window and alter some GROW_X for visual appeal
Richard Nelson <wabz@pidgin.im>
parents:
20074
diff
changeset
|
293 g_signal_connect(G_OBJECT(sel->cancel), "activate", G_CALLBACK(file_cancel), sel); |
c8d4fe2cd0d7
Add save button to the debug window and alter some GROW_X for visual appeal
Richard Nelson <wabz@pidgin.im>
parents:
20074
diff
changeset
|
294 gnt_widget_show(window); |
c8d4fe2cd0d7
Add save button to the debug window and alter some GROW_X for visual appeal
Richard Nelson <wabz@pidgin.im>
parents:
20074
diff
changeset
|
295 } |
c8d4fe2cd0d7
Add save button to the debug window and alter some GROW_X for visual appeal
Richard Nelson <wabz@pidgin.im>
parents:
20074
diff
changeset
|
296 |
15818 | 297 void finch_debug_window_show() |
298 { | |
20672
c8d4fe2cd0d7
Add save button to the debug window and alter some GROW_X for visual appeal
Richard Nelson <wabz@pidgin.im>
parents:
20074
diff
changeset
|
299 GntWidget *wid, *box, *label; |
18345
2d4df5ef0090
If the action-windows are already there, then bring them to front when
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17026
diff
changeset
|
300 |
15818 | 301 debug.paused = FALSE; |
18345
2d4df5ef0090
If the action-windows are already there, then bring them to front when
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17026
diff
changeset
|
302 if (debug.window) { |
2d4df5ef0090
If the action-windows are already there, then bring them to front when
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17026
diff
changeset
|
303 gnt_window_present(debug.window); |
2d4df5ef0090
If the action-windows are already there, then bring them to front when
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17026
diff
changeset
|
304 return; |
2d4df5ef0090
If the action-windows are already there, then bring them to front when
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17026
diff
changeset
|
305 } |
15818 | 306 |
18345
2d4df5ef0090
If the action-windows are already there, then bring them to front when
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17026
diff
changeset
|
307 debug.window = gnt_vbox_new(FALSE); |
2d4df5ef0090
If the action-windows are already there, then bring them to front when
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17026
diff
changeset
|
308 gnt_box_set_toplevel(GNT_BOX(debug.window), TRUE); |
2d4df5ef0090
If the action-windows are already there, then bring them to front when
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17026
diff
changeset
|
309 gnt_box_set_title(GNT_BOX(debug.window), _("Debug Window")); |
2d4df5ef0090
If the action-windows are already there, then bring them to front when
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17026
diff
changeset
|
310 gnt_box_set_pad(GNT_BOX(debug.window), 0); |
2d4df5ef0090
If the action-windows are already there, then bring them to front when
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17026
diff
changeset
|
311 gnt_box_set_alignment(GNT_BOX(debug.window), GNT_ALIGN_MID); |
15818 | 312 |
18345
2d4df5ef0090
If the action-windows are already there, then bring them to front when
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17026
diff
changeset
|
313 debug.tview = gnt_text_view_new(); |
2d4df5ef0090
If the action-windows are already there, then bring them to front when
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17026
diff
changeset
|
314 gnt_box_add_widget(GNT_BOX(debug.window), debug.tview); |
2d4df5ef0090
If the action-windows are already there, then bring them to front when
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17026
diff
changeset
|
315 gnt_widget_set_size(debug.tview, |
2d4df5ef0090
If the action-windows are already there, then bring them to front when
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17026
diff
changeset
|
316 purple_prefs_get_int(PREF_ROOT "/size/width"), |
2d4df5ef0090
If the action-windows are already there, then bring them to front when
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17026
diff
changeset
|
317 purple_prefs_get_int(PREF_ROOT "/size/height")); |
2d4df5ef0090
If the action-windows are already there, then bring them to front when
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17026
diff
changeset
|
318 g_signal_connect(G_OBJECT(debug.tview), "size_changed", G_CALLBACK(size_changed_cb), NULL); |
15818 | 319 |
18345
2d4df5ef0090
If the action-windows are already there, then bring them to front when
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17026
diff
changeset
|
320 gnt_box_add_widget(GNT_BOX(debug.window), gnt_line_new(FALSE)); |
2d4df5ef0090
If the action-windows are already there, then bring them to front when
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17026
diff
changeset
|
321 |
2d4df5ef0090
If the action-windows are already there, then bring them to front when
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17026
diff
changeset
|
322 box = gnt_hbox_new(FALSE); |
2d4df5ef0090
If the action-windows are already there, then bring them to front when
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17026
diff
changeset
|
323 gnt_box_set_alignment(GNT_BOX(box), GNT_ALIGN_MID); |
2d4df5ef0090
If the action-windows are already there, then bring them to front when
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17026
diff
changeset
|
324 gnt_box_set_fill(GNT_BOX(box), FALSE); |
15818 | 325 |
18345
2d4df5ef0090
If the action-windows are already there, then bring them to front when
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17026
diff
changeset
|
326 /* XXX: Setting the GROW_Y for the following widgets don't make sense. But right now |
2d4df5ef0090
If the action-windows are already there, then bring them to front when
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17026
diff
changeset
|
327 * it's necessary to make the width of the debug window resizable ... like I said, |
2d4df5ef0090
If the action-windows are already there, then bring them to front when
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17026
diff
changeset
|
328 * it doesn't make sense. The bug is likely in the packing in gntbox.c. |
2d4df5ef0090
If the action-windows are already there, then bring them to front when
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17026
diff
changeset
|
329 */ |
2d4df5ef0090
If the action-windows are already there, then bring them to front when
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17026
diff
changeset
|
330 wid = gnt_button_new(_("Clear")); |
2d4df5ef0090
If the action-windows are already there, then bring them to front when
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17026
diff
changeset
|
331 g_signal_connect(G_OBJECT(wid), "activate", G_CALLBACK(clear_debug_win), debug.tview); |
2d4df5ef0090
If the action-windows are already there, then bring them to front when
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17026
diff
changeset
|
332 GNT_WIDGET_SET_FLAGS(wid, GNT_WIDGET_GROW_Y); |
2d4df5ef0090
If the action-windows are already there, then bring them to front when
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17026
diff
changeset
|
333 gnt_box_add_widget(GNT_BOX(box), wid); |
17011
531a4585d437
Now that timestamps are gone, let's allow filter strings in the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16999
diff
changeset
|
334 |
20672
c8d4fe2cd0d7
Add save button to the debug window and alter some GROW_X for visual appeal
Richard Nelson <wabz@pidgin.im>
parents:
20074
diff
changeset
|
335 wid = gnt_button_new(_("Save")); |
c8d4fe2cd0d7
Add save button to the debug window and alter some GROW_X for visual appeal
Richard Nelson <wabz@pidgin.im>
parents:
20074
diff
changeset
|
336 g_signal_connect(G_OBJECT(wid), "activate", G_CALLBACK(save_debug_win), debug.tview); |
c8d4fe2cd0d7
Add save button to the debug window and alter some GROW_X for visual appeal
Richard Nelson <wabz@pidgin.im>
parents:
20074
diff
changeset
|
337 GNT_WIDGET_SET_FLAGS(wid, GNT_WIDGET_GROW_Y); |
c8d4fe2cd0d7
Add save button to the debug window and alter some GROW_X for visual appeal
Richard Nelson <wabz@pidgin.im>
parents:
20074
diff
changeset
|
338 gnt_box_add_widget(GNT_BOX(box), wid); |
c8d4fe2cd0d7
Add save button to the debug window and alter some GROW_X for visual appeal
Richard Nelson <wabz@pidgin.im>
parents:
20074
diff
changeset
|
339 |
18345
2d4df5ef0090
If the action-windows are already there, then bring them to front when
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17026
diff
changeset
|
340 debug.search = gnt_entry_new(purple_prefs_get_string(PREF_ROOT "/filter")); |
20672
c8d4fe2cd0d7
Add save button to the debug window and alter some GROW_X for visual appeal
Richard Nelson <wabz@pidgin.im>
parents:
20074
diff
changeset
|
341 label = gnt_label_new(_("Filter:")); |
c8d4fe2cd0d7
Add save button to the debug window and alter some GROW_X for visual appeal
Richard Nelson <wabz@pidgin.im>
parents:
20074
diff
changeset
|
342 GNT_WIDGET_UNSET_FLAGS(label, GNT_WIDGET_GROW_X); |
c8d4fe2cd0d7
Add save button to the debug window and alter some GROW_X for visual appeal
Richard Nelson <wabz@pidgin.im>
parents:
20074
diff
changeset
|
343 gnt_box_add_widget(GNT_BOX(box), label); |
18345
2d4df5ef0090
If the action-windows are already there, then bring them to front when
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17026
diff
changeset
|
344 gnt_box_add_widget(GNT_BOX(box), debug.search); |
2d4df5ef0090
If the action-windows are already there, then bring them to front when
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17026
diff
changeset
|
345 g_signal_connect(G_OBJECT(debug.search), "text_changed", G_CALLBACK(update_filter_string), NULL); |
15818 | 346 |
18345
2d4df5ef0090
If the action-windows are already there, then bring them to front when
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17026
diff
changeset
|
347 wid = gnt_check_box_new(_("Pause")); |
2d4df5ef0090
If the action-windows are already there, then bring them to front when
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17026
diff
changeset
|
348 g_signal_connect(G_OBJECT(wid), "toggled", G_CALLBACK(toggle_pause), NULL); |
2d4df5ef0090
If the action-windows are already there, then bring them to front when
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17026
diff
changeset
|
349 GNT_WIDGET_SET_FLAGS(wid, GNT_WIDGET_GROW_Y); |
2d4df5ef0090
If the action-windows are already there, then bring them to front when
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17026
diff
changeset
|
350 gnt_box_add_widget(GNT_BOX(box), wid); |
15818 | 351 |
18345
2d4df5ef0090
If the action-windows are already there, then bring them to front when
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17026
diff
changeset
|
352 gnt_box_add_widget(GNT_BOX(debug.window), box); |
2d4df5ef0090
If the action-windows are already there, then bring them to front when
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17026
diff
changeset
|
353 GNT_WIDGET_SET_FLAGS(box, GNT_WIDGET_GROW_Y); |
15818 | 354 |
18345
2d4df5ef0090
If the action-windows are already there, then bring them to front when
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17026
diff
changeset
|
355 gnt_widget_set_name(debug.window, "debug-window"); |
2d4df5ef0090
If the action-windows are already there, then bring them to front when
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17026
diff
changeset
|
356 |
2d4df5ef0090
If the action-windows are already there, then bring them to front when
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17026
diff
changeset
|
357 g_signal_connect(G_OBJECT(debug.window), "destroy", G_CALLBACK(reset_debug_win), NULL); |
2d4df5ef0090
If the action-windows are already there, then bring them to front when
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
17026
diff
changeset
|
358 gnt_text_view_attach_scroll_widget(GNT_TEXT_VIEW(debug.tview), debug.window); |
18427
be8c4eba38f6
Use the utility function for the conversation and debug windows.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18345
diff
changeset
|
359 gnt_text_view_attach_pager_widget(GNT_TEXT_VIEW(debug.tview), debug.window); |
15818 | 360 |
361 gnt_widget_show(debug.window); | |
362 } | |
363 | |
364 static gboolean | |
365 start_with_debugwin(gpointer null) | |
366 { | |
367 finch_debug_window_show(); | |
368 return FALSE; | |
369 } | |
370 | |
371 void finch_debug_init() | |
372 { | |
373 /* Xerox */ | |
374 #define REGISTER_G_LOG_HANDLER(name) \ | |
375 g_log_set_handler((name), G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL \ | |
376 | G_LOG_FLAG_RECURSION, \ | |
15823 | 377 purple_glib_log_handler, NULL) |
15818 | 378 |
379 /* Register the glib log handlers. */ | |
380 REGISTER_G_LOG_HANDLER(NULL); | |
381 REGISTER_G_LOG_HANDLER("GLib"); | |
382 REGISTER_G_LOG_HANDLER("GModule"); | |
383 REGISTER_G_LOG_HANDLER("GLib-GObject"); | |
384 REGISTER_G_LOG_HANDLER("GThread"); | |
24503
e2e57d3c0578
Use glib log functions to show error messages.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24398
diff
changeset
|
385 REGISTER_G_LOG_HANDLER("Gnt"); |
21796
39e07c9ae0d7
Trap gstreamer error messages with our debug stuff so they don't get spewed
Stu Tomlinson <stu@nosnilmot.com>
parents:
20672
diff
changeset
|
386 #ifdef USE_GSTREAMER |
39e07c9ae0d7
Trap gstreamer error messages with our debug stuff so they don't get spewed
Stu Tomlinson <stu@nosnilmot.com>
parents:
20672
diff
changeset
|
387 REGISTER_G_LOG_HANDLER("GStreamer"); |
39e07c9ae0d7
Trap gstreamer error messages with our debug stuff so they don't get spewed
Stu Tomlinson <stu@nosnilmot.com>
parents:
20672
diff
changeset
|
388 #endif |
24851
bbcdb1786eda
Redirect stderr to the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24503
diff
changeset
|
389 REGISTER_G_LOG_HANDLER("stderr"); |
15818 | 390 |
391 g_set_print_handler(print_stderr); /* Redirect the debug messages to stderr */ | |
18454
6b623a59cec6
If debug is enabled using the -d argument, then do not suppress the outputs
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
18427
diff
changeset
|
392 if (!purple_debug_is_enabled()) |
24851
bbcdb1786eda
Redirect stderr to the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24503
diff
changeset
|
393 handle_fprintf_stderr(FALSE); |
15818 | 394 |
15823 | 395 purple_prefs_add_none(PREF_ROOT); |
17011
531a4585d437
Now that timestamps are gone, let's allow filter strings in the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
16999
diff
changeset
|
396 purple_prefs_add_string(PREF_ROOT "/filter", ""); |
15823 | 397 purple_prefs_add_none(PREF_ROOT "/size"); |
398 purple_prefs_add_int(PREF_ROOT "/size/width", 60); | |
399 purple_prefs_add_int(PREF_ROOT "/size/height", 15); | |
15818 | 400 |
15823 | 401 if (purple_debug_is_enabled()) |
15818 | 402 g_timeout_add(0, start_with_debugwin, NULL); |
403 } | |
404 | |
405 void finch_debug_uninit() | |
406 { | |
24851
bbcdb1786eda
Redirect stderr to the debug window.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
24503
diff
changeset
|
407 handle_fprintf_stderr(TRUE); |
15818 | 408 } |
409 |