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