aboutsummaryrefslogtreecommitdiffstats
path: root/shell/e-shell-folder-creation-dialog.c
diff options
context:
space:
mode:
Diffstat (limited to 'shell/e-shell-folder-creation-dialog.c')
-rw-r--r--shell/e-shell-folder-creation-dialog.c42
1 files changed, 5 insertions, 37 deletions
diff --git a/shell/e-shell-folder-creation-dialog.c b/shell/e-shell-folder-creation-dialog.c
index d46002a410..04487d5560 100644
--- a/shell/e-shell-folder-creation-dialog.c
+++ b/shell/e-shell-folder-creation-dialog.c
@@ -39,6 +39,7 @@
#include "e-storage-set.h"
#include "e-storage-set-view.h"
+#include "e-shell-utils.h"
#include "e-shell-folder-creation-dialog.h"
@@ -112,40 +113,6 @@ async_create_cb (EStorageSet *storage_set,
e_storage_result_to_string (result));
}
-
-/* Sanity check for the user-specified folder name. */
-/* FIXME in the future we would like not to have the `G_DIR_SEPARATOR' limitation. */
-static gboolean
-entry_name_is_valid (GtkEntry *entry, char **reason)
-{
- const char *name;
-
- name = gtk_entry_get_text (entry);
-
- if (name == NULL || *name == '\0') {
- *reason = _("No folder name specified.");
- return FALSE;
- }
-
- /* GtkEntry is broken - if you hit KP_ENTER you get a \r inserted... */
- if (strchr (name, '\r')) {
- *reason = _("Folder name cannot contain the Return character.");
- return FALSE;
- }
-
- if (strchr (name, G_DIR_SEPARATOR) != NULL) {
- *reason = _("Folder cannot contain the directory separator.");
- return FALSE;
- }
-
- if (strcmp (name, ".") == 0 || strcmp (name, "..") == 0) {
- *reason = _("'.' and '..' are reserved folder names.");
- return FALSE;
- }
-
- return TRUE;
-}
-
/* Dialog signal callbacks. */
@@ -159,8 +126,8 @@ dialog_clicked_cb (GnomeDialog *dialog,
GtkWidget *folder_type_menu_item;
const char *folder_type;
const char *parent_path;
+ const char *reason;
char *folder_name;
- char *reason;
char *path;
dialog_data = (DialogData *) data;
@@ -175,7 +142,9 @@ dialog_clicked_cb (GnomeDialog *dialog,
return;
}
- if (!entry_name_is_valid (GTK_ENTRY (dialog_data->folder_name_entry), &reason)) {
+ folder_name = e_utf8_gtk_entry_get_text (GTK_ENTRY (dialog_data->folder_name_entry));
+
+ if (! e_shell_folder_name_is_valid (folder_name, &reason)) {
e_notice (GTK_WINDOW (dialog), GNOME_MESSAGE_BOX_ERROR,
_("The specified folder name is not valid: %s"), reason);
return;
@@ -193,7 +162,6 @@ dialog_clicked_cb (GnomeDialog *dialog,
return;
}
- folder_name = e_utf8_gtk_entry_get_text (GTK_ENTRY (dialog_data->folder_name_entry));
path = g_concat_dir_and_file (parent_path, folder_name);
g_free (folder_name);