Mercurial > pidgin.yaz
comparison src/log.c @ 5934:91ee71a394be
[gaim-migrate @ 6374]
Moved save_convo() to gtkconv.c. Only gtkconv.c uses it.
committer: Tailor Script <tailor@pidgin.im>
author | Christian Hammond <chipx86@chipx86.com> |
---|---|
date | Sat, 21 Jun 2003 07:35:19 +0000 |
parents | a156d08e481e |
children | 8f94cce8faa5 |
comparison
equal
deleted
inserted
replaced
5933:44eb6d75a5c6 | 5934:91ee71a394be |
---|---|
82 else | 82 else |
83 gtk_widget_set_sensitive(GTK_WIDGET(gtkconv->toolbar.log), | 83 gtk_widget_set_sensitive(GTK_WIDGET(gtkconv->toolbar.log), |
84 !gaim_prefs_get_bool("/gaim/gtk/logging/log_ims")); | 84 !gaim_prefs_get_bool("/gaim/gtk/logging/log_ims")); |
85 } | 85 } |
86 } | 86 } |
87 } | |
88 | |
89 static void do_save_convo(GObject *obj, GtkWidget *wid) | |
90 { | |
91 GaimConversation *c = g_object_get_data(obj, "gaim_conversation"); | |
92 const char *filename = gtk_file_selection_get_filename(GTK_FILE_SELECTION(wid)); | |
93 FILE *f; | |
94 | |
95 if (file_is_dir(filename, wid)) | |
96 return; | |
97 | |
98 if (!((gaim_conversation_get_type(c) != GAIM_CONV_CHAT && | |
99 g_list_find(gaim_get_ims(), c)) || | |
100 (gaim_conversation_get_type(c) == GAIM_CONV_CHAT && | |
101 g_list_find(gaim_get_chats(), c)))) | |
102 filename = NULL; | |
103 | |
104 gtk_widget_destroy(wid); | |
105 | |
106 if (!filename) | |
107 return; | |
108 | |
109 f = fopen(filename, "w+"); | |
110 | |
111 if (!f) | |
112 return; | |
113 | |
114 fprintf(f, "%s", c->history->str); | |
115 fclose(f); | |
116 } | |
117 | |
118 | |
119 void save_convo(GtkWidget *save, GaimConversation *c) | |
120 { | |
121 char buf[BUF_LONG]; | |
122 GtkWidget *window = gtk_file_selection_new(_("Gaim - Save Conversation")); | |
123 g_snprintf(buf, sizeof(buf), "%s" G_DIR_SEPARATOR_S "%s.log", gaim_home_dir(), normalize(c->name)); | |
124 gtk_file_selection_set_filename(GTK_FILE_SELECTION(window), buf); | |
125 g_object_set_data(G_OBJECT(GTK_FILE_SELECTION(window)->ok_button), | |
126 "gaim_conversation", c); | |
127 g_signal_connect(G_OBJECT(GTK_FILE_SELECTION(window)->ok_button), | |
128 "clicked", G_CALLBACK(do_save_convo), window); | |
129 g_signal_connect_swapped(G_OBJECT(GTK_FILE_SELECTION(window)->cancel_button), | |
130 "clicked", G_CALLBACK(gtk_widget_destroy), (gpointer)window); | |
131 gtk_widget_show(window); | |
132 } | 87 } |
133 | 88 |
134 static FILE *open_gaim_log_file(const char *name, int *flag) | 89 static FILE *open_gaim_log_file(const char *name, int *flag) |
135 { | 90 { |
136 char *buf; | 91 char *buf; |