Mercurial > pidgin
comparison finch/gntdebug.c @ 20691:f1fe9b873b0b
propagate from branch 'im.pidgin.pidgin.2.2.1' (head 7494c5484079eedcf158172f4208be3f986c068f)
to branch 'im.pidgin.pidgin' (head ead56863984a2925621479326e71927d704eb22c)
author | Richard Laager <rlaager@wiktel.com> |
---|---|
date | Fri, 28 Sep 2007 18:23:54 +0000 |
parents | c8d4fe2cd0d7 |
children | 39e07c9ae0d7 |
comparison
equal
deleted
inserted
replaced
20266:014cc99647c0 | 20691:f1fe9b873b0b |
---|---|
26 #include <gnt.h> | 26 #include <gnt.h> |
27 #include <gntbox.h> | 27 #include <gntbox.h> |
28 #include <gntbutton.h> | 28 #include <gntbutton.h> |
29 #include <gntcheckbox.h> | 29 #include <gntcheckbox.h> |
30 #include <gntentry.h> | 30 #include <gntentry.h> |
31 #include <gntfilesel.h> | |
31 #include <gntlabel.h> | 32 #include <gntlabel.h> |
32 #include <gntline.h> | 33 #include <gntline.h> |
33 #include <gnttextview.h> | 34 #include <gnttextview.h> |
34 | 35 |
35 #include "gntdebug.h" | 36 #include "gntdebug.h" |
36 #include "finch.h" | 37 #include "finch.h" |
38 #include "notify.h" | |
37 #include "util.h" | 39 #include "util.h" |
38 | 40 |
39 #include <stdio.h> | 41 #include <stdio.h> |
40 #include <string.h> | 42 #include <string.h> |
41 | 43 |
218 int id = g_timeout_add(1000, for_real, entry); | 220 int id = g_timeout_add(1000, for_real, entry); |
219 g_object_set_data_full(G_OBJECT(entry), "update-filter", GINT_TO_POINTER(id), | 221 g_object_set_data_full(G_OBJECT(entry), "update-filter", GINT_TO_POINTER(id), |
220 (GDestroyNotify)g_source_remove); | 222 (GDestroyNotify)g_source_remove); |
221 } | 223 } |
222 | 224 |
225 static void | |
226 file_save(GntFileSel *fs, const char *path, const char *file, GntTextView *tv) | |
227 { | |
228 FILE *fp; | |
229 | |
230 if ((fp = g_fopen(path, "w+")) == NULL) { | |
231 purple_notify_error(NULL, NULL, _("Unable to open file."), NULL); | |
232 return; | |
233 } | |
234 | |
235 fprintf(fp, "Finch Debug Log : %s\n", purple_date_format_full(NULL)); | |
236 fprintf(fp, tv->string->str); | |
237 fclose(fp); | |
238 gnt_widget_destroy(GNT_WIDGET(fs)); | |
239 } | |
240 | |
241 static void | |
242 file_cancel(GntWidget *w, GntFileSel *fs) | |
243 { | |
244 gnt_widget_destroy(GNT_WIDGET(fs)); | |
245 } | |
246 | |
247 static void | |
248 save_debug_win(GntWidget *w, GntTextView *tv) | |
249 { | |
250 GntWidget *window = gnt_file_sel_new(); | |
251 GntFileSel *sel = GNT_FILE_SEL(window); | |
252 gnt_file_sel_set_current_location(sel, purple_home_dir()); | |
253 gnt_file_sel_set_suggested_filename(sel, "debug.txt"); | |
254 g_signal_connect(G_OBJECT(sel), "file_selected", G_CALLBACK(file_save), tv); | |
255 g_signal_connect(G_OBJECT(sel->cancel), "activate", G_CALLBACK(file_cancel), sel); | |
256 gnt_widget_show(window); | |
257 } | |
258 | |
223 void finch_debug_window_show() | 259 void finch_debug_window_show() |
224 { | 260 { |
225 GntWidget *wid, *box; | 261 GntWidget *wid, *box, *label; |
226 | 262 |
227 debug.paused = FALSE; | 263 debug.paused = FALSE; |
228 if (debug.window) { | 264 if (debug.window) { |
229 gnt_window_present(debug.window); | 265 gnt_window_present(debug.window); |
230 return; | 266 return; |
256 wid = gnt_button_new(_("Clear")); | 292 wid = gnt_button_new(_("Clear")); |
257 g_signal_connect(G_OBJECT(wid), "activate", G_CALLBACK(clear_debug_win), debug.tview); | 293 g_signal_connect(G_OBJECT(wid), "activate", G_CALLBACK(clear_debug_win), debug.tview); |
258 GNT_WIDGET_SET_FLAGS(wid, GNT_WIDGET_GROW_Y); | 294 GNT_WIDGET_SET_FLAGS(wid, GNT_WIDGET_GROW_Y); |
259 gnt_box_add_widget(GNT_BOX(box), wid); | 295 gnt_box_add_widget(GNT_BOX(box), wid); |
260 | 296 |
297 wid = gnt_button_new(_("Save")); | |
298 g_signal_connect(G_OBJECT(wid), "activate", G_CALLBACK(save_debug_win), debug.tview); | |
299 GNT_WIDGET_SET_FLAGS(wid, GNT_WIDGET_GROW_Y); | |
300 gnt_box_add_widget(GNT_BOX(box), wid); | |
301 | |
261 debug.search = gnt_entry_new(purple_prefs_get_string(PREF_ROOT "/filter")); | 302 debug.search = gnt_entry_new(purple_prefs_get_string(PREF_ROOT "/filter")); |
262 gnt_box_add_widget(GNT_BOX(box), gnt_label_new(_("Filter: "))); | 303 label = gnt_label_new(_("Filter:")); |
304 GNT_WIDGET_UNSET_FLAGS(label, GNT_WIDGET_GROW_X); | |
305 gnt_box_add_widget(GNT_BOX(box), label); | |
263 gnt_box_add_widget(GNT_BOX(box), debug.search); | 306 gnt_box_add_widget(GNT_BOX(box), debug.search); |
264 g_signal_connect(G_OBJECT(debug.search), "text_changed", G_CALLBACK(update_filter_string), NULL); | 307 g_signal_connect(G_OBJECT(debug.search), "text_changed", G_CALLBACK(update_filter_string), NULL); |
265 | 308 |
266 wid = gnt_check_box_new(_("Pause")); | 309 wid = gnt_check_box_new(_("Pause")); |
267 g_signal_connect(G_OBJECT(wid), "toggled", G_CALLBACK(toggle_pause), NULL); | 310 g_signal_connect(G_OBJECT(wid), "toggled", G_CALLBACK(toggle_pause), NULL); |