| 868 savelog_writefile_cb(conv, 1); |
868 savelog_writefile_cb(conv, 1); |
| 869 } |
869 } |
| 870 |
870 |
| 871 #if !GTK_CHECK_VERSION(2,4,0) /* FILECHOOSER */ |
871 #if !GTK_CHECK_VERSION(2,4,0) /* FILECHOOSER */ |
| 872 static void |
872 static void |
| 873 savelog_destroy_cb(GtkWidget *widget, GaimGtkConversation *gtkconv) |
873 savelog_destroy_cb(GtkWidget *widget, GaimConversation *conv) |
| 874 { |
874 { |
| |
875 GaimGtkConversation *gtkconv = GAIM_GTK_CONVERSATION(conv); |
| 875 if (gtkconv->dialogs.savelog != NULL) { |
876 if (gtkconv->dialogs.savelog != NULL) { |
| 876 gaim_notify_close_with_handle(gtkconv->dialogs.savelog); |
877 gaim_notify_close_with_handle(gtkconv->dialogs.savelog); |
| 877 gaim_request_close_with_handle(gtkconv->dialogs.savelog); |
878 gaim_request_close_with_handle(gtkconv->dialogs.savelog); |
| 878 gtk_widget_destroy(gtkconv->dialogs.savelog); |
879 gtk_widget_destroy(gtkconv->dialogs.savelog); |
| 879 gtkconv->dialogs.savelog = NULL; |
880 gtkconv->dialogs.savelog = NULL; |
| 886 { |
887 { |
| 887 GaimConvWindow *win = (GaimConvWindow *)data; |
888 GaimConvWindow *win = (GaimConvWindow *)data; |
| 888 GaimConversation *conv = gaim_conv_window_get_active_conversation(win); |
889 GaimConversation *conv = gaim_conv_window_get_active_conversation(win); |
| 889 GaimGtkConversation *gtkconv = GAIM_GTK_CONVERSATION(conv); |
890 GaimGtkConversation *gtkconv = GAIM_GTK_CONVERSATION(conv); |
| 890 gchar *buf; |
891 gchar *buf; |
| |
892 |
| |
893 if (gtkconv->dialogs.savelog != NULL) { |
| |
894 gtk_window_present(GTK_WINDOW(gtkconv->dialogs.savelog)); |
| |
895 return; |
| |
896 } |
| 891 |
897 |
| 892 #if GTK_CHECK_VERSION(2,4,0) /* FILECHOOSER */ |
898 #if GTK_CHECK_VERSION(2,4,0) /* FILECHOOSER */ |
| 893 buf = g_strdup_printf("%s.html", gaim_normalize(conv->account, conv->name)); |
899 buf = g_strdup_printf("%s.html", gaim_normalize(conv->account, conv->name)); |
| 894 gtkconv->dialogs.savelog = gtk_file_chooser_dialog_new(_("Save Conversation"), |
900 gtkconv->dialogs.savelog = gtk_file_chooser_dialog_new(_("Save Conversation"), |
| 895 GTK_WINDOW(GAIM_GTK_WINDOW(win)->window), |
901 GTK_WINDOW(GAIM_GTK_WINDOW(win)->window), |
| 911 g_signal_connect(G_OBJECT(GTK_FILE_SELECTION(gtkconv->dialogs.savelog)->ok_button), |
917 g_signal_connect(G_OBJECT(GTK_FILE_SELECTION(gtkconv->dialogs.savelog)->ok_button), |
| 912 "clicked", G_CALLBACK(savelog_checkfile_cb), conv); |
918 "clicked", G_CALLBACK(savelog_checkfile_cb), conv); |
| 913 g_signal_connect(G_OBJECT(GTK_FILE_SELECTION(gtkconv->dialogs.savelog)->cancel_button), |
919 g_signal_connect(G_OBJECT(GTK_FILE_SELECTION(gtkconv->dialogs.savelog)->cancel_button), |
| 914 "clicked", G_CALLBACK(savelog_destroy_cb), conv); |
920 "clicked", G_CALLBACK(savelog_destroy_cb), conv); |
| 915 g_signal_connect(G_OBJECT(gtkconv->dialogs.savelog), |
921 g_signal_connect(G_OBJECT(gtkconv->dialogs.savelog), |
| 916 "clicked", G_CALLBACK(savelog_destroy_cb), conv); |
922 "destroy", G_CALLBACK(savelog_destroy_cb), conv); |
| 917 #endif /* FILECHOOSER */ |
923 #endif /* FILECHOOSER */ |
| 918 |
924 |
| 919 g_free(buf); |
925 g_free(buf); |
| 920 |
926 |
| 921 gtk_widget_show_all(GTK_WIDGET(gtkconv->dialogs.savelog)); |
927 gtk_widget_show_all(GTK_WIDGET(gtkconv->dialogs.savelog)); |