Revision 903 src/import.c
| import.c (revision 903) | ||
|---|---|---|
| 1 | 1 |
/* |
| 2 | 2 |
* Sylpheed -- a GTK+ based, lightweight, and fast e-mail client |
| 3 |
* Copyright (C) 1999-2005 Hiroyuki Yamamoto
|
|
| 3 |
* Copyright (C) 1999-2006 Hiroyuki Yamamoto
|
|
| 4 | 4 |
* |
| 5 | 5 |
* This program is free software; you can redistribute it and/or modify |
| 6 | 6 |
* it under the terms of the GNU General Public License as published by |
| ... | ... | |
| 56 | 56 |
static GtkWidget *dest_button; |
| 57 | 57 |
static GtkWidget *ok_button; |
| 58 | 58 |
static GtkWidget *cancel_button; |
| 59 |
static gboolean import_finished; |
|
| 59 | 60 |
static gboolean import_ack; |
| 60 | 61 |
|
| 61 |
static void import_create(void); |
|
| 62 |
static void import_ok_cb(GtkWidget *widget, gpointer data); |
|
| 63 |
static void import_cancel_cb(GtkWidget *widget, gpointer data); |
|
| 64 |
static void import_filesel_cb(GtkWidget *widget, gpointer data); |
|
| 65 |
static void import_destsel_cb(GtkWidget *widget, gpointer data); |
|
| 66 |
static gint delete_event(GtkWidget *widget, GdkEventAny *event, gpointer data); |
|
| 67 |
static gboolean key_pressed(GtkWidget *widget, GdkEventKey *event, gpointer data); |
|
| 62 |
static void import_create (void); |
|
| 63 |
static void import_ok_cb (GtkWidget *widget, |
|
| 64 |
gpointer data); |
|
| 65 |
static void import_cancel_cb (GtkWidget *widget, |
|
| 66 |
gpointer data); |
|
| 67 |
static void import_filesel_cb (GtkWidget *widget, |
|
| 68 |
gpointer data); |
|
| 69 |
static void import_destsel_cb (GtkWidget *widget, |
|
| 70 |
gpointer data); |
|
| 71 |
static gint delete_event (GtkWidget *widget, |
|
| 72 |
GdkEventAny *event, |
|
| 73 |
gpointer data); |
|
| 74 |
static gboolean key_pressed (GtkWidget *widget, |
|
| 75 |
GdkEventKey *event, |
|
| 76 |
gpointer data); |
|
| 68 | 77 |
|
| 69 | 78 |
gint import_mbox(FolderItem *default_dest) |
| 70 | 79 |
{
|
| 71 | 80 |
gint ok = 0; |
| 72 | 81 |
gchar *dest_id = NULL; |
| 73 | 82 |
|
| 74 |
if (!window) |
|
| 75 |
import_create(); |
|
| 76 |
else |
|
| 77 |
gtk_widget_show(window); |
|
| 83 |
import_create(); |
|
| 78 | 84 |
|
| 79 |
gtk_entry_set_text(GTK_ENTRY(file_entry), ""); |
|
| 80 | 85 |
if (default_dest && default_dest->path) |
| 81 | 86 |
dest_id = folder_item_get_identifier(default_dest); |
| 82 | 87 |
|
| 83 | 88 |
if (dest_id) {
|
| 84 | 89 |
gtk_entry_set_text(GTK_ENTRY(dest_entry), dest_id); |
| 85 | 90 |
g_free(dest_id); |
| 86 |
} else |
|
| 87 |
gtk_entry_set_text(GTK_ENTRY(dest_entry), ""); |
|
| 91 |
} |
|
| 88 | 92 |
gtk_widget_grab_focus(file_entry); |
| 89 | 93 |
|
| 90 | 94 |
manage_window_set_transient(GTK_WINDOW(window)); |
| 91 | 95 |
|
| 92 |
gtk_main(); |
|
| 96 |
import_finished = FALSE; |
|
| 97 |
import_ack = FALSE; |
|
| 93 | 98 |
|
| 99 |
while (!import_finished) |
|
| 100 |
gtk_main_iteration(); |
|
| 101 |
|
|
| 94 | 102 |
if (import_ack) {
|
| 95 | 103 |
const gchar *utf8filename, *destdir; |
| 96 | 104 |
FolderItem *dest; |
| ... | ... | |
| 125 | 133 |
} |
| 126 | 134 |
} |
| 127 | 135 |
|
| 128 |
gtk_widget_hide(window); |
|
| 136 |
gtk_widget_destroy(window); |
|
| 137 |
window = NULL; |
|
| 138 |
file_entry = dest_entry = NULL; |
|
| 139 |
file_button = dest_button = ok_button = cancel_button = NULL; |
|
| 129 | 140 |
|
| 130 | 141 |
return ok; |
| 131 | 142 |
} |
| ... | ... | |
| 217 | 228 |
|
| 218 | 229 |
static void import_ok_cb(GtkWidget *widget, gpointer data) |
| 219 | 230 |
{
|
| 231 |
import_finished = TRUE; |
|
| 220 | 232 |
import_ack = TRUE; |
| 221 |
if (gtk_main_level() > 1) |
|
| 222 |
gtk_main_quit(); |
|
| 223 | 233 |
} |
| 224 | 234 |
|
| 225 | 235 |
static void import_cancel_cb(GtkWidget *widget, gpointer data) |
| 226 | 236 |
{
|
| 237 |
import_finished = TRUE; |
|
| 227 | 238 |
import_ack = FALSE; |
| 228 |
if (gtk_main_level() > 1) |
|
| 229 |
gtk_main_quit(); |
|
| 230 | 239 |
} |
| 231 | 240 |
|
| 232 | 241 |
static void import_filesel_cb(GtkWidget *widget, gpointer data) |
Also available in: Unified diff