Mercurial > pidgin
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; |
