[evolution-patches] patch for bug 48759
- From: Charles Zhang <Charles Zhang Sun Com>
- To: evolution-patches <evolution-patches lists ximian com>
- Subject: [evolution-patches] patch for bug 48759
- Date: Tue, 23 Sep 2003 21:24:56 +0800
Hi, everyone
When press the ok button on the dialog with no file selected, the file
select dialog return current work path as filename; such happened this bug.
I use a g_file_test function to see if a valid filename is inputted, and
stop the following process if not.
Tell me if this is ok, or some message should be prompted, or even we
should solve it with other method.
Best Regards
Charles Zhang
Index: composer/e-msg-composer-select-file.c
===================================================================
RCS file: /cvs/gnome/evolution/composer/e-msg-composer-select-file.c,v
retrieving revision 1.25
diff -u -p -r1.25 e-msg-composer-select-file.c
--- composer/e-msg-composer-select-file.c 2 Apr 2003 18:51:01 -0000 1.25
+++ composer/e-msg-composer-select-file.c 23 Sep 2003 13:12:17 -0000
@@ -38,6 +38,17 @@
#include "e-msg-composer-select-file.h"
+static gboolean
+ok_press_callback (GtkWidget *okbutton,
+ GdkEventButton *event,
+ GtkFileSelection *selection)
+{
+ char *filename = gtk_file_selection_get_filename (selection);
+ if (g_file_test (filename, G_FILE_TEST_IS_DIR))
+ return TRUE;
+ return FALSE;
+}
+
static GtkFileSelection *
run_selector(EMsgComposer *composer, const char *title, int multi, gboolean *showinline_p)
{
@@ -52,6 +63,10 @@ run_selector(EMsgComposer *composer, con
gnome_window_icon_set_from_file((GtkWindow *)selection, EVOLUTION_DATADIR "/images/evolution/compose-message.png");
gtk_file_selection_set_select_multiple((GtkFileSelection *)selection, multi);
+ g_signal_connect (((GtkFileSelection *) selection)->ok_button,
+ "button_press_event", G_CALLBACK (ok_press_callback),
+ (gpointer) selection);
+
/* restore last path used */
path = g_object_get_data((GObject *)composer, "attach_path");
if (path == NULL) {
@@ -99,6 +114,9 @@ e_msg_composer_select_file (EMsgComposer
GtkFileSelection *selection;
char *name = NULL;
+ /* FIXME: the next statement should be "run_selector(composer, title, FALSE, NULL)",
+ otherwise this dialog's title is wrong and more than one file can be selected. */
+
selection = run_selector(composer, _("Attach file(s)"), TRUE, NULL);
if (selection) {
name = g_strdup(gtk_file_selection_get_filename(selection));
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]