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;