# HG changeset patch # User zas_ # Date 1228772072 0 # Node ID 404168a124aa21d149e2991bbd9c59132d68eb0c # Parent 931ff871799f9e5313082a9445ef6b58f646b6fd Display error dialog with appropriate message when user is trying to open an invalid collection file. diff -r 931ff871799f -r 404168a124aa src/collect-dlg.c --- a/src/collect-dlg.c Mon Dec 08 21:33:14 2008 +0000 +++ b/src/collect-dlg.c Mon Dec 08 21:34:32 2008 +0000 @@ -118,8 +118,33 @@ static void real_collection_button_pressed(FileDialog *fd, gpointer data, gint append) { CollectionData *cd = data; + gboolean err = FALSE; + gchar *text = NULL; - if (!fd->dest_path || isdir(fd->dest_path)) return; + if (!isname(fd->dest_path)) + { + err = TRUE; + text = g_strdup_printf(_("No such file '%s'."), fd->dest_path); + } + if (!err && isdir(fd->dest_path)) + { + err = TRUE; + text = g_strdup_printf(_("'%s' is a directory, not a collection file."), fd->dest_path); + } + if (!err && !access_file(fd->dest_path, R_OK)) + { + err = TRUE; + text = g_strdup_printf(_("You do not have read permissions on the file '%s'."), fd->dest_path); + } + + if (err) { + if (text) + { + file_util_warning_dialog(_("Can not open collection file"), text, GTK_STOCK_DIALOG_ERROR, NULL); + g_free(text); + } + return; + } if (append) {